┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings')
-rw-r--r--src/settings/contextmenu/contextmenusettingspage.cpp36
-rw-r--r--src/settings/contextmenu/servicemenuinstaller/CMakeLists.txt4
-rw-r--r--src/settings/contextmenu/servicemenuinstaller/servicemenuinstaller.cpp2
-rw-r--r--src/settings/dolphinsettingsdialog.cpp4
-rw-r--r--src/settings/interface/configurepreviewplugindialog.cpp73
-rw-r--r--src/settings/interface/configurepreviewplugindialog.h36
-rw-r--r--src/settings/interface/folderstabssettingspage.cpp2
-rw-r--r--src/settings/interface/interfacesettingspage.cpp4
-rw-r--r--src/settings/interface/previewssettingspage.cpp30
-rw-r--r--src/settings/interface/previewssettingspage.h3
-rw-r--r--src/settings/kcm/kcmdolphingeneral.cpp12
-rw-r--r--src/settings/kcm/kcmdolphingeneral.h2
-rw-r--r--src/settings/kcm/kcmdolphinnavigation.cpp48
-rw-r--r--src/settings/kcm/kcmdolphinnavigation.h32
-rw-r--r--src/settings/kcm/kcmdolphinviewmodes.cpp13
-rw-r--r--src/settings/kcm/kcmdolphinviewmodes.h2
-rw-r--r--src/settings/serviceitemdelegate.cpp109
-rw-r--r--src/settings/serviceitemdelegate.h42
-rw-r--r--src/settings/servicemodel.cpp19
-rw-r--r--src/settings/servicemodel.h6
-rw-r--r--src/settings/trash/trashsettingspage.cpp16
-rw-r--r--src/settings/trash/trashsettingspage.h4
-rw-r--r--src/settings/userfeedback/userfeedbacksettingspage.cpp4
-rw-r--r--src/settings/viewmodes/viewsettingspage.cpp4
24 files changed, 139 insertions, 368 deletions
diff --git a/src/settings/contextmenu/contextmenusettingspage.cpp b/src/settings/contextmenu/contextmenusettingspage.cpp
index 23ddfba31..1c83e477e 100644
--- a/src/settings/contextmenu/contextmenusettingspage.cpp
+++ b/src/settings/contextmenu/contextmenusettingspage.cpp
@@ -9,7 +9,6 @@
#include "dolphin_contextmenusettings.h"
#include "dolphin_versioncontrolsettings.h"
#include "global.h"
-#include "settings/serviceitemdelegate.h"
#include "settings/servicemodel.h"
#include <KDesktopFile>
@@ -19,8 +18,6 @@
#include <KMessageBox>
#include <KPluginMetaData>
#include <KService>
-#include <KServiceTypeTrader>
-#include <kio_version.h>
#include <kiocore_export.h>
#include <kservice_export.h>
#include <kwidgetsaddons_version.h>
@@ -73,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);
@@ -82,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);
@@ -180,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::CheckState>() == Qt::Checked;
if (service.startsWith(VersionControlServicePrefix)) {
if (checked) {
@@ -236,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);
}
}
@@ -263,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));
}
}
}
@@ -284,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<KServiceAction> serviceActions = KDesktopFileActions::userDefinedServices(KService(file), true);
const KDesktopFile desktopFile(file);
@@ -309,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();
@@ -372,7 +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"
diff --git a/src/settings/contextmenu/servicemenuinstaller/CMakeLists.txt b/src/settings/contextmenu/servicemenuinstaller/CMakeLists.txt
index 74576ad20..603e5c2e5 100644
--- a/src/settings/contextmenu/servicemenuinstaller/CMakeLists.txt
+++ b/src/settings/contextmenu/servicemenuinstaller/CMakeLists.txt
@@ -5,8 +5,8 @@ add_executable(servicemenuinstaller servicemenuinstaller.cpp)
target_link_libraries(servicemenuinstaller PRIVATE
Qt${QT_MAJOR_VERSION}::Core
Qt${QT_MAJOR_VERSION}::Gui
- KF5::I18n
- KF5::CoreAddons
+ KF6::I18n
+ KF6::CoreAddons
)
if(HAVE_PACKAGEKIT)
diff --git a/src/settings/contextmenu/servicemenuinstaller/servicemenuinstaller.cpp b/src/settings/contextmenu/servicemenuinstaller/servicemenuinstaller.cpp
index acee97cf1..fa7369e06 100644
--- a/src/settings/contextmenu/servicemenuinstaller/servicemenuinstaller.cpp
+++ b/src/settings/contextmenu/servicemenuinstaller/servicemenuinstaller.cpp
@@ -172,7 +172,7 @@ void runUncompress(const QString &inputPath, const QString &outputPath)
const auto mime = QMimeDatabase().mimeTypeForFile(inputPath).name();
UncompressCommand command{};
- for (const auto &pair : qAsConst(mimeTypeToCommand)) {
+ for (const auto &pair : std::as_const(mimeTypeToCommand)) {
if (pair.first.contains(mime)) {
command = pair.second;
break;
diff --git a/src/settings/dolphinsettingsdialog.cpp b/src/settings/dolphinsettingsdialog.cpp
index d05d5a814..8c41794e9 100644
--- a/src/settings/dolphinsettingsdialog.cpp
+++ b/src/settings/dolphinsettingsdialog.cpp
@@ -130,7 +130,7 @@ void DolphinSettingsDialog::enableApply()
void DolphinSettingsDialog::applySettings()
{
- for (SettingsPageBase *page : qAsConst(m_pages)) {
+ for (SettingsPageBase *page : std::as_const(m_pages)) {
page->applySettings();
}
@@ -149,7 +149,7 @@ void DolphinSettingsDialog::applySettings()
void DolphinSettingsDialog::restoreDefaults()
{
- for (SettingsPageBase *page : qAsConst(m_pages)) {
+ for (SettingsPageBase *page : std::as_const(m_pages)) {
page->restoreDefaults();
}
}
diff --git a/src/settings/interface/configurepreviewplugindialog.cpp b/src/settings/interface/configurepreviewplugindialog.cpp
deleted file mode 100644
index 8846d8261..000000000
--- a/src/settings/interface/configurepreviewplugindialog.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2011 Peter Penz <[email protected]>
- *
- * SPDX-License-Identifier: GPL-2.0-or-later
- */
-
-#include "configurepreviewplugindialog.h"
-
-#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 87)
-
-#include <KIO/DeleteJob>
-#include <KIO/JobUiDelegate>
-#include <KIO/ThumbCreator>
-#include <KJobWidgets>
-#include <KLocalizedString>
-#include <QPluginLoader>
-
-#include <QDialogButtonBox>
-#include <QPushButton>
-#include <QStandardPaths>
-#include <QUrl>
-#include <QVBoxLayout>
-
-ConfigurePreviewPluginDialog::ConfigurePreviewPluginDialog(const QString &pluginName, const QString &desktopEntryName, QWidget *parent)
- : QDialog(parent)
-{
- QSharedPointer<ThumbCreator> previewPlugin;
- const QString pluginPath = QPluginLoader(desktopEntryName).fileName();
- if (!pluginPath.isEmpty()) {
- newCreator create = (newCreator)QLibrary::resolve(pluginPath, "new_creator");
- if (create) {
- previewPlugin.reset(dynamic_cast<ThumbCreator *>(create()));
- }
- }
-
- setWindowTitle(i18nc("@title:window", "Configure Preview for %1", pluginName));
- setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
- setMinimumWidth(400);
-
- auto layout = new QVBoxLayout(this);
-
- if (previewPlugin) {
- auto configurationWidget = previewPlugin->createConfigurationWidget();
- configurationWidget->setParent(this);
- layout->addWidget(configurationWidget);
-
- layout->addStretch();
-
- connect(this, &ConfigurePreviewPluginDialog::accepted, this, [=] {
- // TODO: It would be great having a mechanism to tell PreviewJob that only previews
- // for a specific MIME-type should be regenerated. As this is not available yet we
- // delete the whole thumbnails directory.
- previewPlugin->writeConfiguration(configurationWidget);
-
- // https://specifications.freedesktop.org/thumbnail-spec/thumbnail-spec-latest.html#DIRECTORY
- const QString thumbnailsPath = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation) + QLatin1String("/thumbnails/");
- KIO::del(QUrl::fromLocalFile(thumbnailsPath), KIO::HideProgressInfo);
- });
- }
-
- auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
- connect(buttonBox, &QDialogButtonBox::accepted, this, &ConfigurePreviewPluginDialog::accept);
- connect(buttonBox, &QDialogButtonBox::rejected, this, &ConfigurePreviewPluginDialog::reject);
- layout->addWidget(buttonBox);
-
- auto okButton = buttonBox->button(QDialogButtonBox::Ok);
- okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
- okButton->setDefault(true);
-}
-
-#include "moc_configurepreviewplugindialog.cpp"
-
-#endif // KIO_VERSION
diff --git a/src/settings/interface/configurepreviewplugindialog.h b/src/settings/interface/configurepreviewplugindialog.h
deleted file mode 100644
index 66504cce2..000000000
--- a/src/settings/interface/configurepreviewplugindialog.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2011 Peter Penz <[email protected]>
- *
- * SPDX-License-Identifier: GPL-2.0-or-later
- */
-
-#ifndef CONFIGUREPREVIEWPLUGINDIALOG_H
-#define CONFIGUREPREVIEWPLUGINDIALOG_H
-
-#include <kiowidgets_export.h>
-
-#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 87)
-
-#include <QDialog>
-
-/**
- * @brief Dialog for configuring preview-plugins.
- */
-class ConfigurePreviewPluginDialog : public QDialog
-{
- Q_OBJECT
-
-public:
- /**
- * @param pluginName User visible name of the plugin
- * @param desktopEntryName The name of the plugin that is noted in the desktopentry.
- * Is used to instantiate the plugin to get the configuration
- * widget.
- * @param parent Parent widget.
- */
- ConfigurePreviewPluginDialog(const QString &pluginName, const QString &desktopEntryName, QWidget *parent);
- ~ConfigurePreviewPluginDialog() override = default;
-};
-#endif // KIOWIDGETS_BUILD_DEPRECATED_SINCE
-
-#endif
diff --git a/src/settings/interface/folderstabssettingspage.cpp b/src/settings/interface/folderstabssettingspage.cpp
index d71ad2d96..85a0e8e13 100644
--- a/src/settings/interface/folderstabssettingspage.cpp
+++ b/src/settings/interface/folderstabssettingspage.cpp
@@ -160,7 +160,7 @@ void FoldersTabsSettingsPage::applySettings()
settings->setCloseActiveSplitView(m_closeActiveSplitView->isChecked());
const QUrl url(QUrl::fromUserInput(m_homeUrl->text(), QString(), QUrl::AssumeLocalFile));
if (url.isValid() && KProtocolManager::supportsListing(url)) {
- KIO::StatJob *job = KIO::statDetails(url, KIO::StatJob::SourceSide, KIO::StatDetail::StatBasic, KIO::JobFlag::HideProgressInfo);
+ KIO::StatJob *job = KIO::stat(url, KIO::StatJob::SourceSide, KIO::StatDetail::StatBasic, KIO::JobFlag::HideProgressInfo);
connect(job, &KJob::result, this, [this, settings, url](KJob *job) {
if (job->error() == 0 && qobject_cast<KIO::StatJob *>(job)->statResult().isDir()) {
settings->setHomeUrl(url.toDisplayString(QUrl::PreferLocalFile));
diff --git a/src/settings/interface/interfacesettingspage.cpp b/src/settings/interface/interfacesettingspage.cpp
index e941cf467..6a3fc8c90 100644
--- a/src/settings/interface/interfacesettingspage.cpp
+++ b/src/settings/interface/interfacesettingspage.cpp
@@ -59,14 +59,14 @@ InterfaceSettingsPage::~InterfaceSettingsPage()
void InterfaceSettingsPage::applySettings()
{
- for (SettingsPageBase *page : qAsConst(m_pages)) {
+ for (SettingsPageBase *page : std::as_const(m_pages)) {
page->applySettings();
}
}
void InterfaceSettingsPage::restoreDefaults()
{
- for (SettingsPageBase *page : qAsConst(m_pages)) {
+ for (SettingsPageBase *page : std::as_const(m_pages)) {
page->restoreDefaults();
}
}
diff --git a/src/settings/interface/previewssettingspage.cpp b/src/settings/interface/previewssettingspage.cpp
index ef98d0f8d..dd1ce942e 100644
--- a/src/settings/interface/previewssettingspage.cpp
+++ b/src/settings/interface/previewssettingspage.cpp
@@ -6,9 +6,7 @@
#include "previewssettingspage.h"
-#include "configurepreviewplugindialog.h"
#include "dolphin_generalsettings.h"
-#include "settings/serviceitemdelegate.h"
#include "settings/servicemodel.h"
#include <KIO/PreviewJob>
@@ -45,12 +43,6 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget *parent)
m_listView = new QListView(this);
QScroller::grabGesture(m_listView->viewport(), QScroller::TouchGesture);
-#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 87)
- ServiceItemDelegate *delegate = new ServiceItemDelegate(m_listView, m_listView);
- connect(delegate, &ServiceItemDelegate::requestServiceConfiguration, this, &PreviewsSettingsPage::configureService);
- m_listView->setItemDelegate(delegate);
-#endif
-
ServiceModel *serviceModel = new ServiceModel(this);
QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this);
proxyModel->setSourceModel(serviceModel);
@@ -111,7 +103,7 @@ void PreviewsSettingsPage::applySettings()
m_enabledPreviewPlugins.clear();
for (int i = 0; i < rowCount; ++i) {
const QModelIndex index = model->index(i, 0);
- const bool checked = model->data(index, Qt::CheckStateRole).toBool();
+ const bool checked = model->data(index, Qt::CheckStateRole).value<Qt::CheckState>() == Qt::Checked;
if (checked) {
const QString enabledPlugin = model->data(index, Qt::UserRole).toString();
m_enabledPreviewPlugins.append(enabledPlugin);
@@ -150,19 +142,6 @@ void PreviewsSettingsPage::showEvent(QShowEvent *event)
SettingsPageBase::showEvent(event);
}
-#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 87)
-void PreviewsSettingsPage::configureService(const QModelIndex &index)
-{
- const QAbstractItemModel *model = index.model();
- const QString pluginName = model->data(index).toString();
- const QString desktopEntryName = model->data(index, ServiceModel::DesktopEntryNameRole).toString();
-
- ConfigurePreviewPluginDialog *dialog = new ConfigurePreviewPluginDialog(pluginName, desktopEntryName, this);
- dialog->setAttribute(Qt::WA_DeleteOnClose);
- dialog->show();
-}
-#endif
-
void PreviewsSettingsPage::loadPreviewPlugins()
{
QAbstractItemModel *model = m_listView->model();
@@ -173,14 +152,9 @@ void PreviewsSettingsPage::loadPreviewPlugins()
model->insertRow(0);
const QModelIndex index = model->index(0, 0);
- model->setData(index, show, Qt::CheckStateRole);
+ model->setData(index, show ? Qt::Checked : Qt::Unchecked, Qt::CheckStateRole);
model->setData(index, plugin.name(), Qt::DisplayRole);
model->setData(index, plugin.pluginId(), ServiceModel::DesktopEntryNameRole);
-
-#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 87)
- const bool configurable = plugin.value(QStringLiteral("Configurable"), false);
- model->setData(index, configurable, ServiceModel::ConfigurableRole);
-#endif
}
model->sort(Qt::DisplayRole);
diff --git a/src/settings/interface/previewssettingspage.h b/src/settings/interface/previewssettingspage.h
index 2c3e4dfef..d6d22ae21 100644
--- a/src/settings/interface/previewssettingspage.h
+++ b/src/settings/interface/previewssettingspage.h
@@ -40,9 +40,6 @@ protected:
void showEvent(QShowEvent *event) override;
private Q_SLOTS:
-#if KIOWIDGETS_BUILD_DEPRECATED_SINCE(5, 87)
- void configureService(const QModelIndex &index);
-#endif
private:
void loadPreviewPlugins();
diff --git a/src/settings/kcm/kcmdolphingeneral.cpp b/src/settings/kcm/kcmdolphingeneral.cpp
index 32241d112..b98eb86a1 100644
--- a/src/settings/kcm/kcmdolphingeneral.cpp
+++ b/src/settings/kcm/kcmdolphingeneral.cpp
@@ -20,16 +20,16 @@
K_PLUGIN_CLASS_WITH_JSON(DolphinGeneralConfigModule, "kcmdolphingeneral.json")
-DolphinGeneralConfigModule::DolphinGeneralConfigModule(QWidget *parent, const QVariantList &args)
- : KCModule(parent, args)
+DolphinGeneralConfigModule::DolphinGeneralConfigModule(QObject *parent, const KPluginMetaData &data)
+ : KCModule(parent, data)
, m_pages()
{
setButtons(KCModule::Default | KCModule::Help | KCModule::Apply);
- QVBoxLayout *topLayout = new QVBoxLayout(this);
+ QVBoxLayout *topLayout = new QVBoxLayout(widget());
topLayout->setContentsMargins(0, 0, 0, 0);
- QTabWidget *tabWidget = new QTabWidget(this);
+ QTabWidget *tabWidget = new QTabWidget(widget());
// initialize 'Folders & Tabs' tab
FoldersTabsSettingsPage *foldersTabsPage = new FoldersTabsSettingsPage(tabWidget);
@@ -58,14 +58,14 @@ DolphinGeneralConfigModule::~DolphinGeneralConfigModule()
void DolphinGeneralConfigModule::save()
{
- for (SettingsPageBase *page : qAsConst(m_pages)) {
+ for (SettingsPageBase *page : std::as_const(m_pages)) {
page->applySettings();
}
}
void DolphinGeneralConfigModule::defaults()
{
- for (SettingsPageBase *page : qAsConst(m_pages)) {
+ for (SettingsPageBase *page : std::as_const(m_pages)) {
page->applySettings();
}
}
diff --git a/src/settings/kcm/kcmdolphingeneral.h b/src/settings/kcm/kcmdolphingeneral.h
index 889317738..828332539 100644
--- a/src/settings/kcm/kcmdolphingeneral.h
+++ b/src/settings/kcm/kcmdolphingeneral.h
@@ -21,7 +21,7 @@ class DolphinGeneralConfigModule : public KCModule
Q_OBJECT
public:
- DolphinGeneralConfigModule(QWidget *parent, const QVariantList &args);
+ DolphinGeneralConfigModule(QObject *parent, const KPluginMetaData &data);
~DolphinGeneralConfigModule() override;
void save() override;
diff --git a/src/settings/kcm/kcmdolphinnavigation.cpp b/src/settings/kcm/kcmdolphinnavigation.cpp
new file mode 100644
index 000000000..6f699f82d
--- /dev/null
+++ b/src/settings/kcm/kcmdolphinnavigation.cpp
@@ -0,0 +1,48 @@
+/*
+ * SPDX-FileCopyrightText: 2009 Peter Penz <[email protected]>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "kcmdolphinnavigation.h"
+
+#include "settings/navigation/navigationsettingspage.h"
+#include <kconfigwidgets_version.h>
+
+#include <KPluginFactory>
+
+#include <QVBoxLayout>
+
+K_PLUGIN_CLASS_WITH_JSON(DolphinNavigationConfigModule, "kcmdolphinnavigation.json")
+
+DolphinNavigationConfigModule::DolphinNavigationConfigModule(QObject *parent)
+ : KCModule(parent)
+ , m_navigation(nullptr)
+{
+ setButtons(KCModule::Default | KCModule::Help | KCModule::Apply);
+
+ QVBoxLayout *topLayout = new QVBoxLayout(widget());
+ topLayout->setContentsMargins(0, 0, 0, 0);
+
+ m_navigation = new NavigationSettingsPage(widget());
+ connect(m_navigation, &NavigationSettingsPage::changed, this, &DolphinNavigationConfigModule::markAsChanged);
+ topLayout->addWidget(m_navigation, 0, {});
+}
+
+DolphinNavigationConfigModule::~DolphinNavigationConfigModule()
+{
+}
+
+void DolphinNavigationConfigModule::save()
+{
+ m_navigation->applySettings();
+}
+
+void DolphinNavigationConfigModule::defaults()
+{
+ m_navigation->restoreDefaults();
+}
+
+#include "kcmdolphinnavigation.moc"
+
+#include "moc_kcmdolphinnavigation.cpp"
diff --git a/src/settings/kcm/kcmdolphinnavigation.h b/src/settings/kcm/kcmdolphinnavigation.h
new file mode 100644
index 000000000..a25405155
--- /dev/null
+++ b/src/settings/kcm/kcmdolphinnavigation.h
@@ -0,0 +1,32 @@
+/*
+ * SPDX-FileCopyrightText: 2009 Peter Penz <[email protected]>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef KCMDOLPHINNAVIGATION_H
+#define KCMDOLPHINNAVIGATION_H
+
+#include <KCModule>
+
+class NavigationSettingsPage;
+
+/**
+ * @brief Allow to configure the Dolphin navigation.
+ */
+class DolphinNavigationConfigModule : public KCModule
+{
+ Q_OBJECT
+
+public:
+ DolphinNavigationConfigModule(QObject *parent);
+ ~DolphinNavigationConfigModule() override;
+
+ void save() override;
+ void defaults() override;
+
+private:
+ NavigationSettingsPage *m_navigation;
+};
+
+#endif
diff --git a/src/settings/kcm/kcmdolphinviewmodes.cpp b/src/settings/kcm/kcmdolphinviewmodes.cpp
index 962f0f112..e4755a1c5 100644
--- a/src/settings/kcm/kcmdolphinviewmodes.cpp
+++ b/src/settings/kcm/kcmdolphinviewmodes.cpp
@@ -8,6 +8,7 @@
#include "settings/viewmodes/viewsettingstab.h"
+#include <KCModule>
#include <KLocalizedString>
#include <KPluginFactory>
@@ -19,16 +20,16 @@
K_PLUGIN_CLASS_WITH_JSON(DolphinViewModesConfigModule, "kcmdolphinviewmodes.json")
-DolphinViewModesConfigModule::DolphinViewModesConfigModule(QWidget *parent, const QVariantList &args)
- : KCModule(parent, args)
+DolphinViewModesConfigModule::DolphinViewModesConfigModule(QObject *parent, const KPluginMetaData &data)
+ : KCModule(parent, data)
, m_tabs()
{
setButtons(KCModule::Default | KCModule::Help | KCModule::Apply);
- QVBoxLayout *topLayout = new QVBoxLayout(this);
+ QVBoxLayout *topLayout = new QVBoxLayout(widget());
topLayout->setContentsMargins(0, 0, 0, 0);
- QTabWidget *tabWidget = new QTabWidget(this);
+ QTabWidget *tabWidget = new QTabWidget(widget());
// Initialize 'Icons' tab
ViewSettingsTab *iconsTab = new ViewSettingsTab(ViewSettingsTab::IconsMode, tabWidget);
@@ -58,7 +59,7 @@ DolphinViewModesConfigModule::~DolphinViewModesConfigModule()
void DolphinViewModesConfigModule::save()
{
- for (ViewSettingsTab *tab : qAsConst(m_tabs)) {
+ for (ViewSettingsTab *tab : std::as_const(m_tabs)) {
tab->applySettings();
}
reparseConfiguration();
@@ -66,7 +67,7 @@ void DolphinViewModesConfigModule::save()
void DolphinViewModesConfigModule::defaults()
{
- for (ViewSettingsTab *tab : qAsConst(m_tabs)) {
+ for (ViewSettingsTab *tab : std::as_const(m_tabs)) {
tab->restoreDefaults();
}
reparseConfiguration();
diff --git a/src/settings/kcm/kcmdolphinviewmodes.h b/src/settings/kcm/kcmdolphinviewmodes.h
index 33c0b77a5..59cbca314 100644
--- a/src/settings/kcm/kcmdolphinviewmodes.h
+++ b/src/settings/kcm/kcmdolphinviewmodes.h
@@ -19,7 +19,7 @@ class DolphinViewModesConfigModule : public KCModule
Q_OBJECT
public:
- DolphinViewModesConfigModule(QWidget *parent, const QVariantList &args);
+ DolphinViewModesConfigModule(QObject *parent, const KPluginMetaData &data);
~DolphinViewModesConfigModule() override;
void save() override;
diff --git a/src/settings/serviceitemdelegate.cpp b/src/settings/serviceitemdelegate.cpp
deleted file mode 100644
index ea3a5fe52..000000000
--- a/src/settings/serviceitemdelegate.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2011 Peter Penz <[email protected]>
- *
- * SPDX-License-Identifier: GPL-2.0-or-later
- */
-
-#include "serviceitemdelegate.h"
-
-#include "servicemodel.h"
-
-#include <QAbstractItemView>
-#include <QCheckBox>
-#include <QPainter>
-#include <QPushButton>
-
-ServiceItemDelegate::ServiceItemDelegate(QAbstractItemView *itemView, QObject *parent)
- : KWidgetItemDelegate(itemView, parent)
-{
-}
-
-ServiceItemDelegate::~ServiceItemDelegate()
-{
-}
-
-QSize ServiceItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
-{
- Q_UNUSED(index)
-
- const QStyle *style = itemView()->style();
- const int buttonHeight = style->pixelMetric(QStyle::PM_ButtonMargin) * 2 + style->pixelMetric(QStyle::PM_ButtonIconSize);
- const int fontHeight = option.fontMetrics.height();
- return QSize(100, qMax(buttonHeight, fontHeight));
-}
-
-void ServiceItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
-{
- Q_UNUSED(index)
- painter->save();
-
- itemView()->style()->drawPrimitive(QStyle::PE_PanelItemViewItem, &option, painter);
-
- if (option.state & QStyle::State_Selected) {
- painter->setPen(option.palette.highlightedText().color());
- }
-
- painter->restore();
-}
-
-QList<QWidget *> ServiceItemDelegate::createItemWidgets(const QModelIndex &) const
-{
- QCheckBox *checkBox = new QCheckBox();
- QPalette palette = checkBox->palette();
- palette.setColor(QPalette::WindowText, palette.color(QPalette::Text));
- checkBox->setPalette(palette);
- connect(checkBox, &QCheckBox::clicked, this, &ServiceItemDelegate::slotCheckBoxClicked);
-
- QPushButton *configureButton = new QPushButton();
- connect(configureButton, &QPushButton::clicked, this, &ServiceItemDelegate::slotConfigureButtonClicked);
-
- return {checkBox, configureButton};
-}
-
-void ServiceItemDelegate::updateItemWidgets(const QList<QWidget *> widgets, const QStyleOptionViewItem &option, const QPersistentModelIndex &index) const
-{
- QCheckBox *checkBox = static_cast<QCheckBox *>(widgets[0]);
- QPushButton *configureButton = static_cast<QPushButton *>(widgets[1]);
-
- const int itemHeight = sizeHint(option, index).height();
-
- // Update the checkbox showing the service name and icon
- const QAbstractItemModel *model = index.model();
- checkBox->setText(model->data(index).toString());
- const QString iconName = model->data(index, Qt::DecorationRole).toString();
- if (!iconName.isEmpty()) {
- checkBox->setIcon(QIcon::fromTheme(iconName));
- }
- checkBox->setChecked(model->data(index, Qt::CheckStateRole).toBool());
-
- const bool configurable = model->data(index, ServiceModel::ConfigurableRole).toBool();
-
- int checkBoxWidth = option.rect.width();
- if (configurable) {
- checkBoxWidth -= configureButton->sizeHint().width();
- }
- checkBox->resize(checkBoxWidth, checkBox->sizeHint().height());
- checkBox->move(0, (itemHeight - checkBox->height()) / 2);
-
- // Update the configuration button
- if (configurable) {
- configureButton->setEnabled(checkBox->isChecked());
- configureButton->setIcon(QIcon::fromTheme(QStringLiteral("configure")));
- configureButton->resize(configureButton->sizeHint());
- configureButton->move(option.rect.right() - configureButton->width(), (itemHeight - configureButton->height()) / 2);
- }
- configureButton->setVisible(configurable);
-}
-
-void ServiceItemDelegate::slotCheckBoxClicked(bool checked)
-{
- QAbstractItemModel *model = const_cast<QAbstractItemModel *>(focusedIndex().model());
- model->setData(focusedIndex(), checked, Qt::CheckStateRole);
-}
-
-void ServiceItemDelegate::slotConfigureButtonClicked()
-{
- Q_EMIT requestServiceConfiguration(focusedIndex());
-}
-
-#include "moc_serviceitemdelegate.cpp"
diff --git a/src/settings/serviceitemdelegate.h b/src/settings/serviceitemdelegate.h
deleted file mode 100644
index 74f7dfd6a..000000000
--- a/src/settings/serviceitemdelegate.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2011 Peter Penz <[email protected]>
- *
- * SPDX-License-Identifier: GPL-2.0-or-later
- */
-
-#ifndef SERVICEITEMDELEGATE_H
-#define SERVICEITEMDELEGATE_H
-
-#include <KWidgetItemDelegate>
-
-/**
- * @brief Widget item delegate for a service that can be enabled or disabled.
- *
- * Additionally it is possible to configure a service.
- * @see ServiceModel
- */
-class ServiceItemDelegate : public KWidgetItemDelegate
-{
- Q_OBJECT
-
-public:
- explicit ServiceItemDelegate(QAbstractItemView *itemView, QObject *parent = nullptr);
- ~ServiceItemDelegate() override;
-
- QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
-
- void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
-
- QList<QWidget *> createItemWidgets(const QModelIndex &) const override;
-
- void updateItemWidgets(const QList<QWidget *> widgets, const QStyleOptionViewItem &option, const QPersistentModelIndex &index) const override;
-
-Q_SIGNALS:
- void requestServiceConfiguration(const QModelIndex &index);
-
-private Q_SLOTS:
- void slotCheckBoxClicked(bool checked);
- void slotConfigureButtonClicked();
-};
-
-#endif
diff --git a/src/settings/servicemodel.cpp b/src/settings/servicemodel.cpp
index 07a804e33..c2ebda7c1 100644
--- a/src/settings/servicemodel.cpp
+++ b/src/settings/servicemodel.cpp
@@ -6,6 +6,8 @@
#include "servicemodel.h"
+#include <QIcon>
+
ServiceModel::ServiceModel(QObject *parent)
: QAbstractListModel(parent)
, m_items()
@@ -29,8 +31,7 @@ bool ServiceModel::insertRows(int row, int count, const QModelIndex &parent)
beginInsertRows(parent, row, row + count - 1);
for (int i = 0; i < count; ++i) {
ServiceItem item;
- item.checked = false;
- item.configurable = false;
+ item.checked = Qt::Unchecked;
m_items.insert(row, item);
}
endInsertRows();
@@ -47,10 +48,7 @@ bool ServiceModel::setData(const QModelIndex &index, const QVariant &value, int
switch (role) {
case Qt::CheckStateRole:
- m_items[row].checked = value.toBool();
- break;
- case ConfigurableRole:
- m_items[row].configurable = value.toBool();
+ m_items[row].checked = value.value<Qt::CheckState>();
break;
case Qt::DecorationRole:
m_items[row].icon = value.toString();
@@ -74,12 +72,10 @@ QVariant ServiceModel::data(const QModelIndex &index, int role) const
const int row = index.row();
if (row < rowCount()) {
switch (role) {
- case ConfigurableRole:
- return m_items[row].configurable;
case Qt::CheckStateRole:
return m_items[row].checked;
case Qt::DecorationRole:
- return m_items[row].icon;
+ return QIcon::fromTheme(m_items[row].icon);
case Qt::DisplayRole:
return m_items[row].text;
case DesktopEntryNameRole:
@@ -105,4 +101,9 @@ void ServiceModel::clear()
endRemoveRows();
}
+Qt::ItemFlags ServiceModel::flags(const QModelIndex &index) const
+{
+ return QAbstractListModel::flags(index) | Qt::ItemIsUserCheckable;
+}
+
#include "moc_servicemodel.cpp"
diff --git a/src/settings/servicemodel.h b/src/settings/servicemodel.h
index 23c752e93..0abe1fe46 100644
--- a/src/settings/servicemodel.h
+++ b/src/settings/servicemodel.h
@@ -25,7 +25,7 @@ class ServiceModel : public QAbstractListModel
Q_OBJECT
public:
- enum Role { DesktopEntryNameRole = Qt::UserRole, ConfigurableRole };
+ enum Role { DesktopEntryNameRole = Qt::UserRole };
explicit ServiceModel(QObject *parent = nullptr);
~ServiceModel() override;
@@ -35,11 +35,11 @@ public:
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
void clear();
+ Qt::ItemFlags flags(const QModelIndex &index) const override;
private:
struct ServiceItem {
- bool checked;
- bool configurable;
+ Qt::CheckState checked;
QString icon;
QString text;
QString desktopEntryName;
diff --git a/src/settings/trash/trashsettingspage.cpp b/src/settings/trash/trashsettingspage.cpp
index 1920cd904..38a3d0865 100644
--- a/src/settings/trash/trashsettingspage.cpp
+++ b/src/settings/trash/trashsettingspage.cpp
@@ -6,7 +6,8 @@
#include "trashsettingspage.h"
-#include <KCModuleProxy>
+#include <KCModuleLoader>
+#include <KCModule>
#include <KPluginMetaData>
#include <QFormLayout>
@@ -16,12 +17,13 @@ TrashSettingsPage::TrashSettingsPage(QWidget *parent)
{
QFormLayout *topLayout = new QFormLayout(this);
- m_proxy = new KCModuleProxy(KPluginMetaData(QStringLiteral("kcm_trash")));
- topLayout->addRow(m_proxy);
+ m_kcm = KCModuleLoader::loadModule(KPluginMetaData(QStringLiteral("kcm_trash")));
+
+ topLayout->addRow(m_kcm->widget());
loadSettings();
- connect(m_proxy, &KCModuleProxy::changed, this, &TrashSettingsPage::changed);
+ connect(m_kcm, &KCModule::needsSaveChanged, this, &TrashSettingsPage::changed);
}
TrashSettingsPage::~TrashSettingsPage()
@@ -30,17 +32,17 @@ TrashSettingsPage::~TrashSettingsPage()
void TrashSettingsPage::applySettings()
{
- m_proxy->save();
+ m_kcm->save();
}
void TrashSettingsPage::restoreDefaults()
{
- m_proxy->defaults();
+ m_kcm->defaults();
}
void TrashSettingsPage::loadSettings()
{
- m_proxy->load();
+ m_kcm->load();
}
#include "moc_trashsettingspage.cpp"
diff --git a/src/settings/trash/trashsettingspage.h b/src/settings/trash/trashsettingspage.h
index b0e48a018..a5253774c 100644
--- a/src/settings/trash/trashsettingspage.h
+++ b/src/settings/trash/trashsettingspage.h
@@ -8,7 +8,7 @@
#include "settings/settingspagebase.h"
-class KCModuleProxy;
+class KCModule;
/**
* @brief Tab page for the 'Trash' settings of the Dolphin settings dialog, it uses the KCM.
@@ -29,7 +29,7 @@ public:
private:
void loadSettings();
- KCModuleProxy *m_proxy;
+ KCModule *m_kcm;
};
#endif
diff --git a/src/settings/userfeedback/userfeedbacksettingspage.cpp b/src/settings/userfeedback/userfeedbacksettingspage.cpp
index 6c205acee..7d87cb2fc 100644
--- a/src/settings/userfeedback/userfeedbacksettingspage.cpp
+++ b/src/settings/userfeedback/userfeedbacksettingspage.cpp
@@ -7,8 +7,8 @@
#include "userfeedbacksettingspage.h"
#include "userfeedback/dolphinfeedbackprovider.h"
-#include <KUserFeedback/FeedbackConfigWidget>
-#include <KUserFeedback/Provider>
+#include <KUserFeedbackQt6/FeedbackConfigWidget>
+#include <KUserFeedbackQt6/Provider>
#include <QVBoxLayout>
diff --git a/src/settings/viewmodes/viewsettingspage.cpp b/src/settings/viewmodes/viewsettingspage.cpp
index 5e740640d..7fccfc24a 100644
--- a/src/settings/viewmodes/viewsettingspage.cpp
+++ b/src/settings/viewmodes/viewsettingspage.cpp
@@ -65,14 +65,14 @@ ViewSettingsPage::~ViewSettingsPage()
void ViewSettingsPage::applySettings()
{
- for (SettingsPageBase *tab : qAsConst(m_tabs)) {
+ for (SettingsPageBase *tab : std::as_const(m_tabs)) {
tab->applySettings();
}
}
void ViewSettingsPage::restoreDefaults()
{
- for (SettingsPageBase *tab : qAsConst(m_tabs)) {
+ for (SettingsPageBase *tab : std::as_const(m_tabs)) {
if (tabWidget->currentWidget() == tab) {
tab->restoreDefaults();
return;