#include "contextmenu/contextmenusettingspage.h"
#include "dolphin_generalsettings.h"
#include "dolphinmainwindow.h"
-#include "general/generalsettingspage.h"
-#include "navigation/navigationsettingspage.h"
-#include "startup/startupsettingspage.h"
+#include "interface/interfacesettingspage.h"
#include "trash/trashsettingspage.h"
#include "viewmodes/viewsettingspage.h"
#if HAVE_KUSERFEEDBACK
#include <KAuthorized>
#include <KLocalizedString>
#include <KMessageBox>
+#include <KRuntimePlatform>
#include <KWindowConfig>
#include <kwidgetsaddons_version.h>
const QSize minSize = minimumSize();
setMinimumSize(QSize(540, minSize.height()));
- setFaceType(List);
+ setFaceType(KRuntimePlatform::runtimePlatform().contains(QLatin1String("phone")) ? Tabbed : List);
setWindowTitle(i18nc("@title:window", "Configure"));
- QDialogButtonBox *box = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Apply | QDialogButtonBox::Cancel | QDialogButtonBox::RestoreDefaults);
- box->button(QDialogButtonBox::Apply)->setEnabled(false);
- box->button(QDialogButtonBox::Ok)->setDefault(true);
- setButtonBox(box);
- connect(box->button(QDialogButtonBox::Ok), &QAbstractButton::clicked, this, &DolphinSettingsDialog::applySettings);
- connect(box->button(QDialogButtonBox::Apply), &QAbstractButton::clicked, this, &DolphinSettingsDialog::applySettings);
- connect(box->button(QDialogButtonBox::RestoreDefaults), &QAbstractButton::clicked, this, &DolphinSettingsDialog::restoreDefaults);
+ // Interface
+ InterfaceSettingsPage *interfaceSettingsPage = new InterfaceSettingsPage(this);
+ KPageWidgetItem *interfaceSettingsFrame = addPage(interfaceSettingsPage, i18nc("@title:group Interface settings", "Interface"));
+ interfaceSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("org.kde.dolphin")));
+ connect(interfaceSettingsPage, &InterfaceSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
- // General
- GeneralSettingsPage *generalSettingsPage = new GeneralSettingsPage(url, this);
- KPageWidgetItem *generalSettingsFrame = addPage(generalSettingsPage, i18nc("@title:group General settings", "General"));
- generalSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("system-file-manager")));
- connect(generalSettingsPage, &GeneralSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
-
- // Startup
- StartupSettingsPage *startupSettingsPage = new StartupSettingsPage(url, this);
- KPageWidgetItem *startupSettingsFrame = addPage(startupSettingsPage, i18nc("@title:group", "Startup"));
- startupSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("preferences-desktop-launch-feedback")));
- connect(startupSettingsPage, &StartupSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
-
- // View Modes
- ViewSettingsPage *viewSettingsPage = new ViewSettingsPage(this);
- KPageWidgetItem *viewSettingsFrame = addPage(viewSettingsPage, i18nc("@title:group", "View Modes"));
+ // View
+ ViewSettingsPage *viewSettingsPage = new ViewSettingsPage(url, this);
+ KPageWidgetItem *viewSettingsFrame = addPage(viewSettingsPage, i18nc("@title:group", "View"));
viewSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("preferences-desktop-icons")));
connect(viewSettingsPage, &ViewSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
- // Navigation
- NavigationSettingsPage *navigationSettingsPage = new NavigationSettingsPage(this);
- KPageWidgetItem *navigationSettingsFrame = addPage(navigationSettingsPage, i18nc("@title:group", "Navigation"));
- navigationSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("preferences-desktop-navigation")));
- connect(navigationSettingsPage, &NavigationSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
-
// Context Menu
auto contextMenuSettingsPage = new ContextMenuSettingsPage(this,
actions,
{QStringLiteral("add_to_places"),
QStringLiteral("sort"),
+ QStringLiteral("group"),
QStringLiteral("view_mode"),
QStringLiteral("open_in_new_tab"),
QStringLiteral("open_in_new_window"),
+ QStringLiteral("open_in_split_view"),
QStringLiteral("copy_location"),
QStringLiteral("duplicate"),
QStringLiteral("open_terminal_here"),
}
#endif
- m_pages.append(generalSettingsPage);
- m_pages.append(startupSettingsPage);
+ m_pages.append(interfaceSettingsPage);
m_pages.append(viewSettingsPage);
- m_pages.append(navigationSettingsPage);
m_pages.append(contextMenuSettingsPage);
if (trashSettingsPage) {
m_pages.append(trashSettingsPage);
}
#endif
- const KConfigGroup dialogConfig(KSharedConfig::openStateConfig(), "SettingsDialog");
+ // Create the buttons last so they are also last in the keyboard Tab focus order.
+ QDialogButtonBox *box = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Apply | QDialogButtonBox::Cancel | QDialogButtonBox::RestoreDefaults);
+ box->button(QDialogButtonBox::Apply)->setEnabled(false);
+ box->button(QDialogButtonBox::Ok)->setDefault(true);
+ setButtonBox(box);
+
+ connect(box->button(QDialogButtonBox::Ok), &QAbstractButton::clicked, this, &DolphinSettingsDialog::applySettings);
+ connect(box->button(QDialogButtonBox::Apply), &QAbstractButton::clicked, this, &DolphinSettingsDialog::applySettings);
+ connect(box->button(QDialogButtonBox::RestoreDefaults), &QAbstractButton::clicked, this, &DolphinSettingsDialog::restoreDefaults);
+
+ const KConfigGroup dialogConfig(KSharedConfig::openStateConfig(), QStringLiteral("SettingsDialog"));
KWindowConfig::restoreWindowSize(windowHandle(), dialogConfig);
}
DolphinSettingsDialog::~DolphinSettingsDialog()
{
- KConfigGroup dialogConfig(KSharedConfig::openStateConfig(), "SettingsDialog");
+ KConfigGroup dialogConfig(KSharedConfig::openStateConfig(), QStringLiteral("SettingsDialog"));
KWindowConfig::saveWindowSize(windowHandle(), dialogConfig);
}
void DolphinSettingsDialog::applySettings()
{
- for (SettingsPageBase *page : qAsConst(m_pages)) {
+ for (SettingsPageBase *page : std::as_const(m_pages)) {
page->applySettings();
}
void DolphinSettingsDialog::restoreDefaults()
{
- for (SettingsPageBase *page : qAsConst(m_pages)) {
+ for (SettingsPageBase *page : std::as_const(m_pages)) {
page->restoreDefaults();
}
}
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:
return new TrashSettingsPage(parent);
}
+
+#include "moc_dolphinsettingsdialog.cpp"