From 9782bd32807ad99e649fa396c2ee8b398b27f992 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Thu, 19 Mar 2015 14:34:03 -0400 Subject: [PATCH] Tracker: Fix FilePanel menu bar initialization. It appears I was a bit too hasty in hrev48850, as if I had looked more closely I would have noticied that this code depended on the menu bar being initialized to function correctly. Fixes #11914. --- src/kits/tracker/FilePanelPriv.cpp | 98 +++++++++++++++--------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/src/kits/tracker/FilePanelPriv.cpp b/src/kits/tracker/FilePanelPriv.cpp index 2d18862446..28909eefac 100644 --- a/src/kits/tracker/FilePanelPriv.cpp +++ b/src/kits/tracker/FilePanelPriv.cpp @@ -661,55 +661,6 @@ TFilePanel::Init(const BMessage*) fMenuBar->SetBorder(B_BORDER_FRAME); fBackView->AddChild(fMenuBar); - FavoritesMenu* favorites = new FavoritesMenu(B_TRANSLATE("Favorites"), - new BMessage(kSwitchDirectory), new BMessage(B_REFS_RECEIVED), - BMessenger(this), IsSavePanel(), fPoseView->RefFilter()); - favorites->AddItem(new BMenuItem(B_TRANSLATE("Add current folder"), - new BMessage(kAddCurrentDir))); - favorites->AddItem(new BMenuItem( - B_TRANSLATE("Edit favorites" B_UTF8_ELLIPSIS), - new BMessage(kEditFavorites))); - - fMenuBar->AddItem(favorites); - - // configure menus - BMenuItem* item = fMenuBar->FindItem(B_TRANSLATE("Window")); - if (item) { - fMenuBar->RemoveItem(item); - delete item; - } - - item = fMenuBar->FindItem(B_TRANSLATE("File")); - if (item) { - BMenu* menu = item->Submenu(); - if (menu) { - item = menu->FindItem(kOpenSelection); - if (item && menu->RemoveItem(item)) - delete item; - - item = menu->FindItem(kDuplicateSelection); - if (item && menu->RemoveItem(item)) - delete item; - - // remove add-ons menu, identifier menu, separator - item = menu->FindItem(B_TRANSLATE("Add-ons")); - if (item) { - int32 index = menu->IndexOf(item); - delete menu->RemoveItem(index); - delete menu->RemoveItem(--index); - delete menu->RemoveItem(--index); - } - - // remove separator - item = menu->FindItem(B_CUT); - if (item) { - item = menu->ItemAt(menu->IndexOf(item)-1); - if (item && menu->RemoveItem(item)) - delete item; - } - } - } - // add directory menu and menufield fDirMenu = new BDirMenu(0, this, kSwitchDirectory, "refs"); @@ -856,6 +807,55 @@ TFilePanel::Init(const BMessage*) AddMenus(); AddContextMenus(); + FavoritesMenu* favorites = new FavoritesMenu(B_TRANSLATE("Favorites"), + new BMessage(kSwitchDirectory), new BMessage(B_REFS_RECEIVED), + BMessenger(this), IsSavePanel(), fPoseView->RefFilter()); + favorites->AddItem(new BMenuItem(B_TRANSLATE("Add current folder"), + new BMessage(kAddCurrentDir))); + favorites->AddItem(new BMenuItem( + B_TRANSLATE("Edit favorites" B_UTF8_ELLIPSIS), + new BMessage(kEditFavorites))); + + fMenuBar->AddItem(favorites); + + // configure menus + BMenuItem* item = fMenuBar->FindItem(B_TRANSLATE("Window")); + if (item) { + fMenuBar->RemoveItem(item); + delete item; + } + + item = fMenuBar->FindItem(B_TRANSLATE("File")); + if (item) { + BMenu* menu = item->Submenu(); + if (menu) { + item = menu->FindItem(kOpenSelection); + if (item && menu->RemoveItem(item)) + delete item; + + item = menu->FindItem(kDuplicateSelection); + if (item && menu->RemoveItem(item)) + delete item; + + // remove add-ons menu, identifier menu, separator + item = menu->FindItem(B_TRANSLATE("Add-ons")); + if (item) { + int32 index = menu->IndexOf(item); + delete menu->RemoveItem(index); + delete menu->RemoveItem(--index); + delete menu->RemoveItem(--index); + } + + // remove separator + item = menu->FindItem(B_CUT); + if (item) { + item = menu->ItemAt(menu->IndexOf(item)-1); + if (item && menu->RemoveItem(item)) + delete item; + } + } + } + PoseView()->ScrollTo(B_ORIGIN); PoseView()->UpdateScrollRange(); PoseView()->ScrollTo(B_ORIGIN);