Open Target Folder: style and other minor fixes
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
SubDir HAIKU_TOP src add-ons tracker opentargetfolder ;
|
SubDir HAIKU_TOP src add-ons tracker opentargetfolder ;
|
||||||
|
|
||||||
|
UsePrivateHeaders tracker ;
|
||||||
|
|
||||||
Application Open\ Target\ Folder :
|
Application Open\ Target\ Folder :
|
||||||
opentargetfolder.cpp
|
opentargetfolder.cpp
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2003-2008, Axel Dörfler, [email protected].
|
* Copyright 2003-2008, Axel Dörfler, [email protected].
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* Axel Dörfler, [email protected]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
//! Open Target Folder - opens the folder of the link target in Tracker
|
//! Open Target Folder - opens the folder of the link target in Tracker
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@@ -15,18 +20,20 @@
|
|||||||
#include <Path.h>
|
#include <Path.h>
|
||||||
#include <SymLink.h>
|
#include <SymLink.h>
|
||||||
|
|
||||||
|
#include <tracker_private.h>
|
||||||
|
|
||||||
|
|
||||||
extern "C" void
|
extern "C" void
|
||||||
process_refs(entry_ref directoryRef, BMessage *msg, void *)
|
process_refs(entry_ref directoryRef, BMessage* message, void*)
|
||||||
{
|
{
|
||||||
BDirectory directory(&directoryRef);
|
BDirectory directory(&directoryRef);
|
||||||
if (directory.InitCheck() != B_OK)
|
if (directory.InitCheck() != B_OK)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int32 errors = 0;
|
uint32 errors = 0;
|
||||||
entry_ref ref;
|
entry_ref ref;
|
||||||
int32 index;
|
|
||||||
for (index = 0; msg->FindRef("refs", index, &ref) == B_OK; index ++) {
|
for (int32 i = 0; message->FindRef("refs", i, &ref) == B_OK; i++) {
|
||||||
BSymLink link(&ref);
|
BSymLink link(&ref);
|
||||||
if (link.InitCheck() != B_OK || !link.IsSymLink()) {
|
if (link.InitCheck() != B_OK || !link.IsSymLink()) {
|
||||||
errors++;
|
errors++;
|
||||||
@@ -50,17 +57,17 @@ process_refs(entry_ref directoryRef, BMessage *msg, void *)
|
|||||||
entry_ref target;
|
entry_ref target;
|
||||||
targetEntry.GetRef(&target);
|
targetEntry.GetRef(&target);
|
||||||
|
|
||||||
BMessage message(B_REFS_RECEIVED);
|
BMessage trackerMessage(B_REFS_RECEIVED);
|
||||||
message.AddRef("refs", &target);
|
trackerMessage.AddRef("refs", &target);
|
||||||
|
|
||||||
// ...and send it
|
// ...and send it
|
||||||
BMessenger messenger("application/x-vnd.Be-TRAK");
|
BMessenger messenger(kTrackerSignature);
|
||||||
messenger.SendMessage(&message);
|
messenger.SendMessage(&trackerMessage);
|
||||||
|
|
||||||
// TODO: select entry via scripting?
|
// TODO: select entry via scripting?
|
||||||
}
|
}
|
||||||
|
|
||||||
if (errors) {
|
if (errors > 0) {
|
||||||
BAlert* alert = new BAlert("Open Target Folder",
|
BAlert* alert = new BAlert("Open Target Folder",
|
||||||
"This add-on can only be used on symbolic links.\n"
|
"This add-on can only be used on symbolic links.\n"
|
||||||
"It opens the folder of the link target in Tracker.",
|
"It opens the folder of the link target in Tracker.",
|
||||||
@@ -72,7 +79,7 @@ process_refs(entry_ref directoryRef, BMessage *msg, void *)
|
|||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int /*argc*/, char **/*argv*/)
|
main(int /*argc*/, char** /*argv*/)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "This can only be used as a Tracker add-on.\n");
|
fprintf(stderr, "This can only be used as a Tracker add-on.\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ resource app_version {
|
|||||||
variety = B_APPV_FINAL,
|
variety = B_APPV_FINAL,
|
||||||
internal = 1,
|
internal = 1,
|
||||||
|
|
||||||
short_info = "Opens the Link Target's Folder",
|
short_info = "Opens the link target's folder",
|
||||||
long_info = "Open Target Folder, Copyright 2008 Haiku Inc."
|
long_info = "Open Target Folder, Copyright 2003-2008 Axel Dörfler"
|
||||||
};
|
};
|
||||||
|
|
||||||
resource file_types message {
|
resource file_types message {
|
||||||
|
|||||||
Reference in New Issue
Block a user