]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/dolphinsettingsdialog.cpp
[Settings Dialog] Show Trash settings only if authorized
[dolphin.git] / src / settings / dolphinsettingsdialog.cpp
index 9eb57f10b109e724c4d33cb0a9fc9fd9c8e9f5d3..5314c24ed845727b16d086629b2d02eacc1d70f4 100644 (file)
@@ -29,6 +29,7 @@
 #include "viewmodes/viewsettingspage.h"
 #include "trash/trashsettingspage.h"
 
+#include <KAuthorized>
 #include <KWindowConfig>
 #include <KLocalizedString>
 #include <QIcon>
@@ -85,11 +86,13 @@ DolphinSettingsDialog::DolphinSettingsDialog(const QUrl& url, QWidget* parent) :
     connect(servicesSettingsPage, &ServicesSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
 
     // Trash
-    TrashSettingsPage* trashSettingsPage = new TrashSettingsPage(this);
-    KPageWidgetItem* trashSettingsFrame = addPage(trashSettingsPage,
-                                                   i18nc("@title:group", "Trash"));
-    trashSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("trash-empty")));
-    connect(trashSettingsPage, &TrashSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
+    auto* trashSettingsPage = createTrashSettingsPage(this);
+    if (trashSettingsPage) {
+        KPageWidgetItem* trashSettingsFrame = addPage(trashSettingsPage,
+                                                     i18nc("@title:group", "Trash"));
+        trashSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("trash-empty")));
+        connect(trashSettingsPage, &TrashSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
+    }
 
     // General
     GeneralSettingsPage* generalSettingsPage = new GeneralSettingsPage(url, this);
@@ -145,3 +148,11 @@ void DolphinSettingsDialog::restoreDefaults()
     }
 }
 
+SettingsPageBase *DolphinSettingsDialog::createTrashSettingsPage(QWidget *parent)
+{
+    if (!KAuthorized::authorizeControlModule(QStringLiteral("kcmtrash.desktop"))) {
+        return nullptr;
+    }
+
+    return new TrashSettingsPage(parent);
+}