Open Target Folder: style and other minor fixes

This commit is contained in:
John Scipione
2015-03-03 18:47:04 -05:00
parent 02b72520b6
commit ff8afc9b64
3 changed files with 21 additions and 12 deletions
@@ -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 {