[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
This commit is contained in:
Kai Uwe Broulik 2017-02-08 16:07:19 +01:00
parent 4eea1dc5a1
commit 333e2ae031
2 changed files with 18 additions and 5 deletions

View 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);
}

View file

@ -49,6 +49,8 @@ private slots:
void restoreDefaults();
private:
static SettingsPageBase *createTrashSettingsPage(QWidget *parent);
QList<SettingsPageBase*> m_pages;
};