mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-12 12:54:29 +00:00
use KSycoca for updating OpenPreferredSearchTool action
Summary: Remove all random updates of OpenPreferredSearchTool action, and use KSycoca for updating it as discussed in https://phabricator.kde.org/D22594#663847 Enhancement for D29441 for bug #420911 caused by D22594. The bug was fixed by D29442. CCBUG: 420911 Test Plan: ``` $ cd ${KDE_INSTALL_DIR}/usr/share/applications $ sudo mv org.kde.kfind.desktop org.kde.kfind.desktop_ $ kbuildsycoca5 $ sudo mv org.kde.kfind.desktop_ org.kde.kfind.desktop $ kbuildsycoca5 ``` Reviewers: broulik, elvisangelaccio, ngraham, #dolphin Reviewed By: elvisangelaccio, #dolphin Subscribers: anthonyfieroni, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D29568
This commit is contained in:
parent
99cf24c03d
commit
29e6cf01df
|
@ -65,6 +65,7 @@
|
|||
#include <KShell>
|
||||
#include <KStandardAction>
|
||||
#include <KStartupInfo>
|
||||
#include <KSycoca>
|
||||
#include <KToggleAction>
|
||||
#include <KToolBar>
|
||||
#include <KToolBarPopupAction>
|
||||
|
@ -203,7 +204,9 @@ DolphinMainWindow::DolphinMainWindow() :
|
|||
|
||||
setupWhatsThis();
|
||||
|
||||
QTimer::singleShot(0, this, &DolphinMainWindow::setupUpdateOpenPreferredSearchToolAction);
|
||||
connect(KSycoca::self(), QOverload<>::of(&KSycoca::databaseChanged), this, &DolphinMainWindow::updateOpenPreferredSearchToolAction);
|
||||
|
||||
QTimer::singleShot(0, this, &DolphinMainWindow::updateOpenPreferredSearchToolAction);
|
||||
}
|
||||
|
||||
DolphinMainWindow::~DolphinMainWindow()
|
||||
|
@ -969,29 +972,6 @@ QPointer<QAction> DolphinMainWindow::preferredSearchTool()
|
|||
return action;
|
||||
}
|
||||
|
||||
void DolphinMainWindow::setupUpdateOpenPreferredSearchToolAction()
|
||||
{
|
||||
QAction* openPreferredSearchTool = actionCollection()->action(QStringLiteral("open_preferred_search_tool"));
|
||||
const QList<QWidget*> widgets = openPreferredSearchTool->associatedWidgets();
|
||||
for (QWidget* widget : widgets) {
|
||||
QMenu* menu = qobject_cast<QMenu*>(widget);
|
||||
if (menu) {
|
||||
connect(menu, &QMenu::aboutToShow, this, &DolphinMainWindow::updateOpenPreferredSearchToolAction);
|
||||
}
|
||||
}
|
||||
|
||||
// Update the open_preferred_search_tool action *before* the Configure Shortcuts window is shown,
|
||||
// since this action is then listed in that window and it should be up-to-date when it is displayed.
|
||||
// This update is instantaneous if user made no changes to the search tools in the meantime.
|
||||
// Maybe all KStandardActions should defer calls to their slots, so that we could simply connect() to trigger()?
|
||||
connect(
|
||||
actionCollection()->action(KStandardAction::name(KStandardAction::KeyBindings)), &QAction::hovered,
|
||||
this, &DolphinMainWindow::updateOpenPreferredSearchToolAction
|
||||
);
|
||||
|
||||
updateOpenPreferredSearchToolAction();
|
||||
}
|
||||
|
||||
void DolphinMainWindow::updateOpenPreferredSearchToolAction()
|
||||
{
|
||||
QAction* openPreferredSearchTool = actionCollection()->action(QStringLiteral("open_preferred_search_tool"));
|
||||
|
@ -1165,7 +1145,6 @@ void DolphinMainWindow::updateControlMenu()
|
|||
addActionToMenu(ac->action(QStringLiteral("show_filter_bar")), menu);
|
||||
addActionToMenu(ac->action(QStringLiteral("open_preferred_search_tool")), menu);
|
||||
addActionToMenu(ac->action(QStringLiteral("open_terminal")), menu);
|
||||
connect(menu, &QMenu::aboutToShow, this, &DolphinMainWindow::updateOpenPreferredSearchToolAction);
|
||||
|
||||
menu->addSeparator();
|
||||
|
||||
|
|
|
@ -353,9 +353,6 @@ private slots:
|
|||
*/
|
||||
void toggleShowMenuBar();
|
||||
|
||||
/** Sets up updates for "Open Preferred Search Tool" action. */
|
||||
void setupUpdateOpenPreferredSearchToolAction();
|
||||
|
||||
/** Updates "Open Preferred Search Tool" action. */
|
||||
void updateOpenPreferredSearchToolAction();
|
||||
|
||||
|
|
Loading…
Reference in a new issue