[haiku-commits] haiku: hrev45291 - src/apps/launchbox

  • From: mattmadia@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 17 Feb 2013 17:55:24 +0100 (CET)

hrev45291 adds 1 changeset to branch 'master'
old head: c4d175c590ea3df03a8dad12877ff3b0a93bda6b
new head: ac966d59413e7f0f7395d42d499725f8d6414c3a
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=ac966d5+%5Ec4d175c

----------------------------------------------------------------------------

ac966d5: LaunchBox: add Open containing folder option.
  
  Contributed by abhiin1947. Fixes #7951.

                                        [ Matt Madia <mattmadia@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev45291
Commit:      ac966d59413e7f0f7395d42d499725f8d6414c3a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=ac966d5
Author:      Matt Madia <mattmadia@xxxxxxxxx>
Date:        Sun Feb 17 16:53:23 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/7951

----------------------------------------------------------------------------

3 files changed, 36 insertions(+), 6 deletions(-)
src/apps/launchbox/LaunchButton.h |  1 +
src/apps/launchbox/MainWindow.cpp | 33 +++++++++++++++++++++++++++------
src/apps/launchbox/PadView.cpp    |  8 ++++++++

----------------------------------------------------------------------------

diff --git a/src/apps/launchbox/LaunchButton.h 
b/src/apps/launchbox/LaunchButton.h
index 30af199..e1d0953 100644
--- a/src/apps/launchbox/LaunchButton.h
+++ b/src/apps/launchbox/LaunchButton.h
@@ -16,6 +16,7 @@ enum {
        MSG_CLEAR_SLOT                          = 'clsl',
        MSG_REMOVE_SLOT                         = 'rmsl',
        MSG_LAUNCH                                      = 'lnch',
+       MSG_OPEN_CONTAINING_FOLDER              = 'opcf',
 };
 
 
diff --git a/src/apps/launchbox/MainWindow.cpp 
b/src/apps/launchbox/MainWindow.cpp
index 18b9316..c300db0 100644
--- a/src/apps/launchbox/MainWindow.cpp
+++ b/src/apps/launchbox/MainWindow.cpp
@@ -112,7 +112,8 @@ void
 MainWindow::MessageReceived(BMessage* message)
 {
        switch (message->what) {
-               case MSG_LAUNCH: {
+               case MSG_LAUNCH: 
+               {
                        BView* pointer;
                        if (message->FindPointer("be:source", (void**)&pointer) 
< B_OK)
                                break;
@@ -180,7 +181,8 @@ MainWindow::MessageReceived(BMessage* message)
                        }
                        break;
                }
-               case MSG_ADD_SLOT: {
+               case MSG_ADD_SLOT: 
+               {
                        LaunchButton* button;
                        if (message->FindPointer("be:source", (void**)&button) 
>= B_OK) {
                                fPadView->AddButton(new LaunchButton("launch 
button",
@@ -188,13 +190,15 @@ MainWindow::MessageReceived(BMessage* message)
                        }
                        break;
                }
-               case MSG_CLEAR_SLOT: {
+               case MSG_CLEAR_SLOT: 
+               {
                        LaunchButton* button;
                        if (message->FindPointer("be:source", (void**)&button) 
>= B_OK)
                                button->SetTo((entry_ref*)NULL);
                        break;
                }
-               case MSG_REMOVE_SLOT: {
+               case MSG_REMOVE_SLOT: 
+               {
                        LaunchButton* button;
                        if (message->FindPointer("be:source", (void**)&button) 
>= B_OK) {
                                if (fPadView->RemoveButton(button))
@@ -202,7 +206,8 @@ MainWindow::MessageReceived(BMessage* message)
                        }
                        break;
                }
-               case MSG_SET_DESCRIPTION: {
+               case MSG_SET_DESCRIPTION: 
+               {
                        LaunchButton* button;
                        if (message->FindPointer("be:source", (void**)&button) 
>= B_OK) {
                                const char* name;
@@ -260,7 +265,8 @@ MainWindow::MessageReceived(BMessage* message)
                        }
                        break;
                }
-               case MSG_ADD_WINDOW: {
+               case MSG_ADD_WINDOW: 
+               {
                        BMessage settings('sett');
                        SaveSettings(&settings);
                        message->AddMessage("window", &settings);
@@ -283,6 +289,21 @@ MainWindow::MessageReceived(BMessage* message)
                        else
                                SetWorkspaces(1L << current_workspace());
                        break;
+               case MSG_OPEN_CONTAINING_FOLDER: 
+               {
+                       LaunchButton* button;
+                       if (message->FindPointer("be:source", (void**)&button) 
== B_OK && button->Ref() != NULL) {
+                               entry_ref target = *button->Ref();
+                               BEntry openTarget(&target);
+                               BMessage openMsg(B_REFS_RECEIVED);
+                               BMessenger tracker("application/x-vnd.Be-TRAK");
+                               openTarget.GetParent(&openTarget);
+                               openTarget.GetRef(&target);
+                               openMsg.AddRef("refs",&target);
+                               tracker.SendMessage(&openMsg);
+                       }
+               }
+               break;
                case B_SIMPLE_DATA:
                case B_REFS_RECEIVED:
                case B_PASTE:
diff --git a/src/apps/launchbox/PadView.cpp b/src/apps/launchbox/PadView.cpp
index eb80d10..0a22c87 100644
--- a/src/apps/launchbox/PadView.cpp
+++ b/src/apps/launchbox/PadView.cpp
@@ -341,6 +341,14 @@ PadView::DisplayMenu(BPoint where, LaunchButton* button) 
const
                item = new BMenuItem(B_TRANSLATE("Remove button"), message);
                item->SetTarget(window);
                menu->AddItem(item);
+               // Open containing folder button
+               if (button->Ref() != NULL) {    
+                       message = new BMessage(MSG_OPEN_CONTAINING_FOLDER);
+                       message->AddPointer("be:source", (void*)button);
+                       item = new BMenuItem(B_TRANSLATE("Open containing 
folder"), message);
+                       item->SetTarget(window);
+                       menu->AddItem(item);
+               }
                // set button description
                if (button->Ref()) {
                        message = new BMessage(MSG_SET_DESCRIPTION);


Other related posts:

  • » [haiku-commits] haiku: hrev45291 - src/apps/launchbox - mattmadia