X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/793ad44cb82c69de89a128f2bd41dd9bede5130f..4f1d8fef9216d6ae7b5b9bd1fa5523103ccf419a:/src/settings/contextmenu/contextmenusettingspage.cpp diff --git a/src/settings/contextmenu/contextmenusettingspage.cpp b/src/settings/contextmenu/contextmenusettingspage.cpp index cec1f9649..974ddb531 100644 --- a/src/settings/contextmenu/contextmenusettingspage.cpp +++ b/src/settings/contextmenu/contextmenusettingspage.cpp @@ -18,12 +18,16 @@ #include #include #include -#include #include #include #include - #include +#include +#include +#include + +#include +#include #include #include @@ -84,25 +88,23 @@ ContextMenuSettingsPage::ContextMenuSettingsPage(QWidget* parent, m_listView->setVerticalScrollMode(QListView::ScrollPerPixel); connect(m_listView, &QListView::clicked, this, &ContextMenuSettingsPage::changed); + topLayout->addWidget(label); + topLayout->addWidget(m_searchLineEdit); + topLayout->addWidget(m_listView); + #ifndef Q_OS_WIN - auto *downloadButton = new KNS3::Button(i18nc("@action:button", "Download New Services..."), - QStringLiteral("servicemenu.knsrc"), - this); - connect(downloadButton, &KNS3::Button::dialogFinished, this, [this](const KNS3::Entry::List &changedEntries) { + using NewStuffButton = KNSWidgets::Button; + auto *downloadButton = new NewStuffButton(i18nc("@action:button", "Download New Services..."), + QStringLiteral("servicemenu.knsrc"), + this); + connect(downloadButton, &NewStuffButton::dialogFinished, this, [this](const auto &changedEntries) { if (!changedEntries.isEmpty()) { m_serviceModel->clear(); loadServices(); } }); - -#endif - - topLayout->addWidget(label); - topLayout->addWidget(m_searchLineEdit); - topLayout->addWidget(m_listView); -#ifndef Q_OS_WIN topLayout->addWidget(downloadButton); -#endif +#endif // Q_OS_WIN m_enabledVcsPlugins = VersionControlSettings::enabledPlugins(); std::sort(m_enabledVcsPlugins.begin(), m_enabledVcsPlugins.end()); @@ -127,7 +129,7 @@ bool ContextMenuSettingsPage::entryVisible(const QString& id) return ContextMenuSettings::showCopyLocation(); } else if (id == "duplicate") { return ContextMenuSettings::showDuplicateHere(); - } else if (id == "open_terminal") { + } else if (id == "open_terminal_here") { return ContextMenuSettings::showOpenTerminal(); } return false; @@ -149,7 +151,7 @@ void ContextMenuSettingsPage::setEntryVisible(const QString& id, bool visible) ContextMenuSettings::setShowCopyLocation(visible); } else if (id == "duplicate") { ContextMenuSettings::setShowDuplicateHere(visible); - } else if (id == "open_terminal") { + } else if (id == "open_terminal_here") { ContextMenuSettings::setShowOpenTerminal(visible); } } @@ -198,14 +200,22 @@ void ContextMenuSettingsPage::applySettings() VersionControlSettings::self()->save(); if (!laterSelected) { +#if KWIDGETSADDONS_VERSION >= QT_VERSION_CHECK(5, 100, 0) + KMessageBox::ButtonCode promptRestart = KMessageBox::questionTwoActions(window(), +#else KMessageBox::ButtonCode promptRestart = KMessageBox::questionYesNo(window(), +#endif i18nc("@info", "Dolphin must be restarted to apply the " "updated version control system settings."), i18nc("@info", "Restart now?"), KGuiItem(QApplication::translate("KStandardGuiItem", "&Restart"), QStringLiteral("dialog-restart")), KGuiItem(QApplication::translate("KStandardGuiItem", "&Later"), QStringLiteral("dialog-later")) ); +#if KWIDGETSADDONS_VERSION >= QT_VERSION_CHECK(5, 100, 0) + if (promptRestart == KMessageBox::ButtonCode::PrimaryAction) { +#else if (promptRestart == KMessageBox::ButtonCode::Yes) { +#endif Dolphin::openNewWindow(); qApp->quit(); } else { @@ -275,10 +285,14 @@ void ContextMenuSettingsPage::loadServices() // Load generic services const auto locations = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("kio/servicemenus"), QStandardPaths::LocateDirectory); QStringList files = KFileUtils::findAllUniqueFiles(locations); + +#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 90) const KService::List services = KServiceTypeTrader::self()->query(QStringLiteral("KonqPopupMenu/Plugin")); for (const KService::Ptr &service : services) { files << QStandardPaths::locate(QStandardPaths::GenericDataLocation, "kservices5/" % service->entryPath()); } +#endif + for (const auto &file : qAsConst(files)) { const QList serviceActions = KDesktopFileActions::userDefinedServices(KService(file), true); @@ -300,7 +314,7 @@ void ContextMenuSettingsPage::loadServices() } // Load service plugins, this is deprecated in KIO 5.82 -#if KIO_VERSION < QT_VERSION_CHECK(6, 0, 0) +#if KIOCORE_BUILD_DEPRECATED_SINCE(5, 82) const KService::List pluginServices = KServiceTypeTrader::self()->query(QStringLiteral("KFileItemAction/Plugin")); for (const KService::Ptr &service : pluginServices) { const QString desktopEntryName = service->desktopEntryName(); @@ -312,7 +326,7 @@ void ContextMenuSettingsPage::loadServices() #endif // Load JSON-based plugins that implement the KFileItemActionPlugin interface - const auto jsonPlugins = KPluginMetaData::findPlugins(QStringLiteral("kf5/kfileitemaction")); + const auto jsonPlugins = KPluginMetaData::findPlugins(QStringLiteral("kf" QT_STRINGIFY(QT_VERSION_MAJOR)) + QStringLiteral("/kfileitemaction")); for (const auto &jsonMetadata : jsonPlugins) { const QString desktopEntryName = jsonMetadata.pluginId();