From b339ac1b5f22efb57619c738eb39268c3e00948d Mon Sep 17 00:00:00 2001 From: Eike Hein Date: Mon, 28 Dec 2020 17:57:44 +0100 Subject: [PATCH] Use a faster way to determine kio-stash isn't installed Summary: Dolphin needs to figure out whether or not kio-stash is installed to set the enabled state of a UI action. When KProtocolInfo::isKnownProtocol can't find a protocol it gets worried its protocol cache might be out of date, so it rebuilds it (doing plenty of disk I/O) and looks again. kio-stash is currently not yet installed on many systems, so this means most Dolphin startups out there. This patch switches to using QDBusConnectionInterface::isServiceRegistered instead to determine whether the stash notifier daemon is running, which should be faster than doing disk I/O. Reviewers: davidedmundson, elvisangelaccio, shortstheory Subscribers: emmanuelp, alexeymin, ngraham, #dolphin Differential Revision: https://phabricator.kde.org/D9094 --- src/dolphinmainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 96ca3d448e..096429f732 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -1523,7 +1523,7 @@ void DolphinMainWindow::setupActions() stashSplit->setToolTip(i18nc("@info", "Opens the stash virtual directory in a split window")); stashSplit->setIcon(QIcon::fromTheme(QStringLiteral("folder-stash"))); stashSplit->setCheckable(false); - stashSplit->setVisible(KProtocolInfo::isKnownProtocol("stash")); + stashSplit->setVisible(QDBusConnection::sessionBus().interface()->isServiceRegistered(QStringLiteral("org.kde.kio.StashNotifier"))); connect(stashSplit, &QAction::triggered, this, &DolphinMainWindow::toggleSplitStash); KStandardAction::redisplay(this, &DolphinMainWindow::reloadView, actionCollection());