diff --git a/krusader/BookMan/krbookmarkbutton.cpp b/krusader/BookMan/krbookmarkbutton.cpp --- a/krusader/BookMan/krbookmarkbutton.cpp +++ b/krusader/BookMan/krbookmarkbutton.cpp @@ -48,7 +48,6 @@ setMenu(acmBookmarks->menu()); connect(acmBookmarks->menu(), SIGNAL(aboutToShow()), this, SLOT(populate())); connect(acmBookmarks->menu(), SIGNAL(aboutToShow()), this, SIGNAL(aboutToShow())); - populate(); } void KrBookmarkButton::populate() diff --git a/krusader/BookMan/krbookmarkhandler.cpp b/krusader/BookMan/krbookmarkhandler.cpp --- a/krusader/BookMan/krbookmarkhandler.cpp +++ b/krusader/BookMan/krbookmarkhandler.cpp @@ -65,10 +65,15 @@ // load bookmarks importFromFile(); - // hack + // create bookmark manager QString filename = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QLatin1Char('/') + BOOKMARKS_FILE; manager = KBookmarkManager::managerForFile(filename, QStringLiteral("krusader")); connect(manager, SIGNAL(changed(QString,QString)), this, SLOT(bookmarksChanged(QString,QString))); + + // fill a dummy menu to properly init actions (allows toolbar bookmark buttons to work properly) + auto menu = new QMenu(mainWindow->widget()); + populate(menu); + menu->deleteLater(); } KrBookmarkHandler::~KrBookmarkHandler() @@ -422,11 +427,13 @@ if (hasJumpback) { // add the jump-back button ListPanelActions *actions = _mainWindow->listPanelActions(); - menu->addAction(actions->actJumpBack); - _specialBookmarks.append(actions->actJumpBack); - menu->addSeparator(); - menu->addAction(actions->actSetJumpBack); - _specialBookmarks.append(actions->actSetJumpBack); + if (actions) { + menu->addAction(actions->actJumpBack); + _specialBookmarks.append(actions->actJumpBack); + menu->addSeparator(); + menu->addAction(actions->actSetJumpBack); + _specialBookmarks.append(actions->actSetJumpBack); + } } }