Ticket #9039: Tracker-RestartDeskbar.diff

File Tracker-RestartDeskbar.diff, 4.3 KB (added by kallisti5, 12 years ago)
  • src/kits/tracker/Commands.h

    diff --git a/src/kits/tracker/Commands.h b/src/kits/tracker/Commands.h
    index 208cbb6..869270b 100644
    a b const uint32 kLoadAddOn = 'Tlda';  
    7878const uint32 kEmptyTrash = 'Tetr';
    7979const uint32 kAddPrinter = 'Tadp';
    8080const uint32 kMakeActivePrinter = 'Tmap';
     81const uint32 kRestartDeskbar = 'DBar';
    8182
    8283const uint32 kRunAutomounterSettings = 'Tram';
    8384
  • src/kits/tracker/ContainerWindow.cpp

    diff --git a/src/kits/tracker/ContainerWindow.cpp b/src/kits/tracker/ContainerWindow.cpp
    index fe16183..574cc23 100644
    a b BContainerWindow::RepopulateMenus()  
    873873    fWindowContextMenu->SetFont(be_plain_font);
    874874    AddWindowContextMenus(fWindowContextMenu);
    875875
    876     fMenuBar->RemoveItem(fFileMenu);
    877     delete fFileMenu;
    878     fFileMenu = new BMenu(B_TRANSLATE("File"));
    879     AddFileMenu(fFileMenu);
    880     fMenuBar->AddItem(fFileMenu);
    881 
    882     fMenuBar->RemoveItem(fWindowMenu);
    883     delete fWindowMenu;
    884     fWindowMenu = new BMenu(B_TRANSLATE("Window"));
    885     fMenuBar->AddItem(fWindowMenu);
    886     AddWindowMenu(fWindowMenu);
    887 
    888     // just create the attribute, decide to add it later
    889     fMenuBar->RemoveItem(fAttrMenu);
    890     delete fAttrMenu;
    891     fAttrMenu = new BMenu(B_TRANSLATE("Attributes"));
    892     NewAttributeMenu(fAttrMenu);
    893     if (PoseView()->ViewMode() == kListMode)
    894         ShowAttributeMenu();
     876    if (fMenuBar != NULL) {
     877        fMenuBar->RemoveItem(fFileMenu);
     878        delete fFileMenu;
     879        fFileMenu = new BMenu(B_TRANSLATE("File"));
     880        AddFileMenu(fFileMenu);
     881        fMenuBar->AddItem(fFileMenu);
     882
     883        fMenuBar->RemoveItem(fWindowMenu);
     884        delete fWindowMenu;
     885        fWindowMenu = new BMenu(B_TRANSLATE("Window"));
     886        fMenuBar->AddItem(fWindowMenu);
     887        AddWindowMenu(fWindowMenu);
     888
     889        // just create the attribute, decide to add it later
     890        fMenuBar->RemoveItem(fAttrMenu);
     891        delete fAttrMenu;
     892        fAttrMenu = new BMenu(B_TRANSLATE("Attributes"));
     893        NewAttributeMenu(fAttrMenu);
     894        if (PoseView()->ViewMode() == kListMode)
     895            ShowAttributeMenu();
    895896
    896     PopulateArrangeByMenu(fArrangeByMenu);
     897        PopulateArrangeByMenu(fArrangeByMenu);
    897898
    898     int32 selectCount = PoseView()->SelectionList()->CountItems();
     899        int32 selectCount = PoseView()->SelectionList()->CountItems();
    899900
    900     SetupOpenWithMenu(fFileMenu);
    901     SetupMoveCopyMenus(selectCount ? PoseView()->SelectionList()->
    902             FirstItem()->TargetModel()->EntryRef() : NULL,
    903         fFileMenu);
     901        SetupOpenWithMenu(fFileMenu);
     902        SetupMoveCopyMenus(selectCount ? PoseView()->SelectionList()
     903                ->FirstItem()->TargetModel()->EntryRef() : NULL,
     904            fFileMenu);
     905    }
    904906}
    905907
    906908
    BContainerWindow::MessageReceived(BMessage* message)  
    15261528            (new FindWindow())->Show();
    15271529            break;
    15281530
     1531        case kRestartDeskbar:
     1532        {
     1533            BRoster roster;
     1534            roster.Launch(kDeskbarSignature);
     1535            break;
     1536        }
     1537
    15291538        case kQuitTracker:
    15301539            be_app->PostMessage(B_QUIT_REQUESTED);
    15311540            break;
    BContainerWindow::ShowContextMenu(BPoint loc, const entry_ref* ref, BView*)  
    27132722        if (fWindowContextMenu->Window())
    27142723            return;
    27152724
     2725        // Repopulate desktop menu if IsDesktop
     2726        if (dynamic_cast<BDeskWindow*>(this))
     2727            RepopulateMenus();
     2728
    27162729        MenusEnded();
    27172730
    27182731        // clicked on a window, show window context menu
  • src/kits/tracker/DeskWindow.cpp

    diff --git a/src/kits/tracker/DeskWindow.cpp b/src/kits/tracker/DeskWindow.cpp
    index a4ac775..5ad22a8 100644
    a b All rights reserved.  
    3939#include <NodeMonitor.h>
    4040#include <Path.h>
    4141#include <PopUpMenu.h>
     42#include <Roster.h>
    4243#include <Screen.h>
    4344#include <Volume.h>
    4445#include <VolumeRoster.h>
    BDeskWindow::CreatePoseView(Model* model)  
    274275void
    275276BDeskWindow::AddWindowContextMenus(BMenu* menu)
    276277{
     278    BMenuItem* item;
     279
     280    BRoster roster;
     281    if (!roster.IsRunning(kDeskbarSignature)) {
     282        item = new BMenuItem(B_TRANSLATE("Restart Deskbar"),
     283            new BMessage(kRestartDeskbar));
     284        menu->AddItem(item);
     285        menu->AddSeparatorItem();
     286    }
     287
    277288    TemplatesMenu* tempateMenu = new TemplatesMenu(PoseView(),
    278289        B_TRANSLATE("New"));
    279290
    BDeskWindow::AddWindowContextMenus(BMenu* menu)  
    287298
    288299    BMessage* message = new BMessage(kIconMode);
    289300    message->AddInt32("size", 32);
    290     BMenuItem* item = new BMenuItem(B_TRANSLATE("32 x 32"), message);
     301    item = new BMenuItem(B_TRANSLATE("32 x 32"), message);
    291302    item->SetMarked(PoseView()->IconSizeInt() == 32);
    292303    item->SetTarget(PoseView());
    293304    iconSizeMenu->AddItem(item);