]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Don't show "Add network folder" button if knetattach is not available
authorAntonio Rojas <arojas@archlinux.org>
Fri, 15 Jan 2021 17:02:03 +0000 (18:02 +0100)
committerAntonio Rojas <arojas@archlinux.org>
Fri, 15 Jan 2021 17:02:03 +0000 (18:02 +0100)
knetattach is part of plasma-desktop, so it doesn't necessarily have to be installed.
In that case, instead of showing a button that doesn't do anything, don't show it at all.

src/dolphinnavigatorswidgetaction.cpp

index e42e9c3eedb37997efba06d1364e7d9e74086063..be88b61af4328ec8511df24bea5dc636e65a9498 100644 (file)
@@ -260,9 +260,9 @@ QPushButton *DolphinNavigatorsWidgetAction::newNetworkFolderButton(const Dolphin
     auto networkFolderButton = new QPushButton(QIcon::fromTheme(QStringLiteral("folder-add")),
                                         i18nc("@action:button", "Add Network Folder"), parent);
     networkFolderButton->setFlat(true);
+    KService::Ptr service = KService::serviceByDesktopName(QStringLiteral("org.kde.knetattach"));
     connect(networkFolderButton, &QPushButton::clicked,
-            this, [networkFolderButton]() {
-                KService::Ptr service = KService::serviceByDesktopName(QStringLiteral("org.kde.knetattach"));
+            this, [networkFolderButton, service]() {
                 auto *job = new KIO::ApplicationLauncherJob(service, networkFolderButton);
                 auto *delegate = new KNotificationJobUiDelegate;
                 delegate->setAutoErrorHandlingEnabled(true);
@@ -270,8 +270,8 @@ QPushButton *DolphinNavigatorsWidgetAction::newNetworkFolderButton(const Dolphin
                 job->start();
             });
     networkFolderButton->hide();
-    connect(urlNavigator, &KUrlNavigator::urlChanged, this, [networkFolderButton, urlNavigator]() {
-        networkFolderButton->setVisible(urlNavigator->locationUrl().scheme() == QLatin1String("remote"));
+    connect(urlNavigator, &KUrlNavigator::urlChanged, this, [networkFolderButton, urlNavigator, service]() {
+        networkFolderButton->setVisible(service && urlNavigator->locationUrl().scheme() == QLatin1String("remote"));
     });
     return networkFolderButton;
 }