Don't show "Add network folder" button if knetattach is not available

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.
This commit is contained in:
Antonio Rojas 2021-01-15 18:02:03 +01:00
parent 9fde9035a8
commit 4683c03be6

View file

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