diff options
| author | Kai Uwe Broulik <[email protected]> | 2017-02-08 16:07:19 +0100 |
|---|---|---|
| committer | Kai Uwe Broulik <[email protected]> | 2017-02-08 16:07:19 +0100 |
| commit | 333e2ae031fec6139a712f15283f0fffb23f2dc6 (patch) | |
| tree | 9b31336ab1ab30b54356e1d4f4bfee77f964f8d6 /src/settings | |
| parent | 4eea1dc5a15f7b8acc3f0f0c2313c7ff2c029b27 (diff) | |
[Settings Dialog] Show Trash settings only if authorized
If this KCM is disabled through KIOSK restriction opening it would result in an error message.
Hide the entry altogether in this case.
Differential Revision: https://phabricator.kde.org/D4502
Diffstat (limited to 'src/settings')
| -rw-r--r-- | src/settings/dolphinsettingsdialog.cpp | 21 | ||||
| -rw-r--r-- | src/settings/dolphinsettingsdialog.h | 2 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/settings/dolphinsettingsdialog.cpp b/src/settings/dolphinsettingsdialog.cpp index 9eb57f10b..5314c24ed 100644 --- a/src/settings/dolphinsettingsdialog.cpp +++ b/src/settings/dolphinsettingsdialog.cpp @@ -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); +} diff --git a/src/settings/dolphinsettingsdialog.h b/src/settings/dolphinsettingsdialog.h index 93f714799..194af28fc 100644 --- a/src/settings/dolphinsettingsdialog.h +++ b/src/settings/dolphinsettingsdialog.h @@ -49,6 +49,8 @@ private slots: void restoreDefaults(); private: + static SettingsPageBase *createTrashSettingsPage(QWidget *parent); + QList<SettingsPageBase*> m_pages; }; |
