X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9061b22a0d0bc6bd7b9a1c31a5296bd00af60d0b..4cbeb81b2b8e2d37c93cda4d88787e08e0658291:/src/settings/contextmenu/contextmenusettingspage.cpp diff --git a/src/settings/contextmenu/contextmenusettingspage.cpp b/src/settings/contextmenu/contextmenusettingspage.cpp index c363914d0..1c83e477e 100644 --- a/src/settings/contextmenu/contextmenusettingspage.cpp +++ b/src/settings/contextmenu/contextmenusettingspage.cpp @@ -7,10 +7,8 @@ #include "contextmenusettingspage.h" #include "dolphin_contextmenusettings.h" -#include "dolphin_generalsettings.h" #include "dolphin_versioncontrolsettings.h" #include "global.h" -#include "settings/serviceitemdelegate.h" #include "settings/servicemodel.h" #include @@ -20,8 +18,6 @@ #include #include #include -#include -#include #include #include #include @@ -66,7 +62,7 @@ ContextMenuSettingsPage::ContextMenuSettingsPage(QWidget *parent, const KActionC this); label->setWordWrap(true); m_searchLineEdit = new QLineEdit(this); - m_searchLineEdit->setPlaceholderText(i18nc("@label:textbox", "Search...")); + m_searchLineEdit->setPlaceholderText(i18nc("@label:textbox", "Search…")); connect(m_searchLineEdit, &QLineEdit::textChanged, this, [this](const QString &filter) { m_sortModel->setFilterFixedString(filter); }); @@ -74,7 +70,6 @@ ContextMenuSettingsPage::ContextMenuSettingsPage(QWidget *parent, const KActionC m_listView = new QListView(this); QScroller::grabGesture(m_listView->viewport(), QScroller::TouchGesture); - auto *delegate = new ServiceItemDelegate(m_listView, m_listView); m_serviceModel = new ServiceModel(this); m_sortModel = new QSortFilterProxyModel(this); m_sortModel->setSourceModel(m_serviceModel); @@ -83,7 +78,6 @@ ContextMenuSettingsPage::ContextMenuSettingsPage(QWidget *parent, const KActionC m_sortModel->setFilterRole(Qt::DisplayRole); m_sortModel->setFilterCaseSensitivity(Qt::CaseInsensitive); m_listView->setModel(m_sortModel); - m_listView->setItemDelegate(delegate); m_listView->setVerticalScrollMode(QListView::ScrollPerPixel); connect(m_listView, &QListView::clicked, this, &ContextMenuSettingsPage::changed); @@ -93,7 +87,7 @@ ContextMenuSettingsPage::ContextMenuSettingsPage(QWidget *parent, const KActionC #ifndef Q_OS_WIN using NewStuffButton = KNSWidgets::Button; - auto *downloadButton = new NewStuffButton(i18nc("@action:button", "Download New Services..."), QStringLiteral("servicemenu.knsrc"), this); + 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(); @@ -123,6 +117,8 @@ bool ContextMenuSettingsPage::entryVisible(const QString &id) return ContextMenuSettings::showOpenInNewTab(); } else if (id == "open_in_new_window") { return ContextMenuSettings::showOpenInNewWindow(); + } else if (id == "open_in_split_view") { + return ContextMenuSettings::showOpenInSplitView(); } else if (id == "copy_location") { return ContextMenuSettings::showCopyLocation(); } else if (id == "duplicate") { @@ -149,6 +145,8 @@ void ContextMenuSettingsPage::setEntryVisible(const QString &id, bool visible) ContextMenuSettings::setShowOpenInNewTab(visible); } else if (id == "open_in_new_window") { ContextMenuSettings::setShowOpenInNewWindow(visible); + } else if (id == "open_in_split_view") { + return ContextMenuSettings::setShowOpenInSplitView(visible); } else if (id == "copy_location") { ContextMenuSettings::setShowCopyLocation(visible); } else if (id == "duplicate") { @@ -177,7 +175,7 @@ void ContextMenuSettingsPage::applySettings() for (int i = 0; i < model->rowCount(); ++i) { const QModelIndex index = model->index(i, 0); const QString service = model->data(index, ServiceModel::DesktopEntryNameRole).toString(); - const bool checked = model->data(index, Qt::CheckStateRole).toBool(); + const bool checked = model->data(index, Qt::CheckStateRole).value() == Qt::Checked; if (service.startsWith(VersionControlServicePrefix)) { if (checked) { @@ -206,24 +204,15 @@ 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 { @@ -242,7 +231,7 @@ void ContextMenuSettingsPage::restoreDefaults() const bool checked = !service.startsWith(VersionControlServicePrefix) && service != QLatin1String(DeleteService) && service != QLatin1String(CopyToMoveToService); - model->setData(index, checked, Qt::CheckStateRole); + model->setData(index, checked ? Qt::Checked : Qt::Unchecked, Qt::CheckStateRole); } } @@ -269,7 +258,7 @@ void ContextMenuSettingsPage::showEvent(QShowEvent *event) for (const QString &id : m_actionIds) { const QAction *action = m_actions->action(id); if (action) { - addRow(action->icon().name(), action->text(), id, entryVisible(id)); + addRow(action->icon().name(), KLocalizedString::removeAcceleratorMarker(action->text()), id, entryVisible(id)); } } } @@ -290,14 +279,7 @@ void ContextMenuSettingsPage::loadServices() 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)) { + for (const auto &file : std::as_const(files)) { const QList serviceActions = KDesktopFileActions::userDefinedServices(KService(file), true); const KDesktopFile desktopFile(file); @@ -315,20 +297,8 @@ void ContextMenuSettingsPage::loadServices() } } - // Load service plugins, this is deprecated in KIO 5.82 -#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(); - if (!isInServicesList(desktopEntryName)) { - const bool checked = showGroup.readEntry(desktopEntryName, true); - addRow(service->icon(), service->name(), desktopEntryName, checked); - } - } -#endif - // Load JSON-based plugins that implement the KFileItemActionPlugin interface - const auto jsonPlugins = KPluginMetaData::findPlugins(QStringLiteral("kf" QT_STRINGIFY(QT_VERSION_MAJOR)) + QStringLiteral("/kfileitemaction")); + const auto jsonPlugins = KPluginMetaData::findPlugins(QStringLiteral("kf6/kfileitemaction")); for (const auto &jsonMetadata : jsonPlugins) { const QString desktopEntryName = jsonMetadata.pluginId(); @@ -378,5 +348,7 @@ void ContextMenuSettingsPage::addRow(const QString &icon, const QString &text, c m_serviceModel->setData(index, icon, Qt::DecorationRole); m_serviceModel->setData(index, text, Qt::DisplayRole); m_serviceModel->setData(index, value, ServiceModel::DesktopEntryNameRole); - m_serviceModel->setData(index, checked, Qt::CheckStateRole); + m_serviceModel->setData(index, checked ? Qt::Checked : Qt::Unchecked, Qt::CheckStateRole); } + +#include "moc_contextmenusettingspage.cpp"