+void DolphinSettingsDialog::closeEvent(QCloseEvent *event)
+{
+ if (!m_unsavedChanges) {
+ event->accept();
+ return;
+ }
+
+#if KWIDGETSADDONS_VERSION >= QT_VERSION_CHECK(5, 100, 0)
+ const auto response = KMessageBox::warningTwoActionsCancel(this,
+#else
+ const auto response = KMessageBox::warningYesNoCancel(this,
+#endif
+ i18n("You have unsaved changes. Do you want to apply the changes or discard them?"),
+ i18n("Warning"),
+ KStandardGuiItem::save(),
+ KStandardGuiItem::discard(),
+ KStandardGuiItem::cancel());
+ switch (response) {
+#if KWIDGETSADDONS_VERSION >= QT_VERSION_CHECK(5, 100, 0)
+ case KMessageBox::PrimaryAction:
+#else
+ case KMessageBox::Yes:
+#endif
+ applySettings();
+ Q_FALLTHROUGH();
+#if KWIDGETSADDONS_VERSION >= QT_VERSION_CHECK(5, 100, 0)
+ case KMessageBox::SecondaryAction:
+#else
+ case KMessageBox::No:
+#endif
+ event->accept();
+ break;
+ case KMessageBox::Cancel:
+ event->ignore();
+ break;
+ default:
+ break;
+ }
+}
+
+SettingsPageBase *DolphinSettingsDialog::createTrashSettingsPage(QWidget *parent)
+{
+ if (!KAuthorized::authorizeControlModule(QStringLiteral("kcmtrash.desktop"))) {
+ return nullptr;
+ }
+
+ return new TrashSettingsPage(parent);
+}