- connect(urlNavigator, &KUrlNavigator::urlChanged, this, [networkFolderButton, urlNavigator, service]() {
- networkFolderButton->setVisible(service && urlNavigator->locationUrl().scheme() == QLatin1String("remote"));
+ connect(urlNavigator, &KUrlNavigator::urlChanged, this, [networkFolderButton, urlNavigator]() {
+ if (urlNavigator->locationUrl().scheme() == QLatin1String("remote")) {
+ // Looking up a service can be a bit slow, so we only do it now when it becomes necessary.
+ const KService::Ptr service = KService::serviceByDesktopName(QStringLiteral("org.kde.knetattach"));
+ networkFolderButton->setVisible(service);
+ } else {
+ networkFolderButton->setVisible(false);
+ }