From 02c94b228a3ad9a5d39e850b9708f1c52c713c57 Mon Sep 17 00:00:00 2001 From: Nathaniel Graham Date: Thu, 5 Jul 2018 21:24:27 -0600 Subject: [PATCH] Modernize Settings window Summary: This patch modernizes the appearance of Dolphin's configuration window by following the KDE HIG as much as possible and following design cues from Plasma and System Settings. Test Plan: Tested all settings to make sure they still work; they do. Startup page, before: {F5825313} Startup page, after: {F5918574} View page (Icons), before: {F5825319} View page (Icons) after: {F5918575} View page (Compact), before: {F5825321} View page (Compact) after: {F5918700} View page (Detailed), before: {F5825323} View page: (Detailed), after: {F5918701} Navigation page: no change Trash page, before: {F5858748} Trash page, after: {F5866656} (Provided by {D12986}) General page (behavior), before: {F5825316} General page (behavior) after: {F5918572} General page (confirmations), before: {F5866885} General page (confirmations), after: {F5918702} General page (status bar): no change Reviewers: #dolphin, #vdg, broulik, elvisangelaccio Reviewed By: #dolphin, elvisangelaccio Subscribers: fabianr, cfeck, medhefgo, zzag, rkflx, kfm-devel, elvisangelaccio, abetts Tags: #dolphin Differential Revision: https://phabricator.kde.org/D12571 --- src/global.h | 5 ++ src/settings/dolphinsettingsdialog.cpp | 2 +- src/settings/general/behaviorsettingspage.cpp | 72 ++++++++++-------- .../general/confirmationssettingspage.cpp | 8 +- src/settings/startup/startupsettingspage.cpp | 73 ++++++++---------- src/settings/trash/trashsettingspage.cpp | 17 +---- src/settings/viewmodes/viewsettingstab.cpp | 76 +++++++------------ 7 files changed, 111 insertions(+), 142 deletions(-) diff --git a/src/global.h b/src/global.h index 3b6af43e9..e3c4a1cca 100644 --- a/src/global.h +++ b/src/global.h @@ -41,6 +41,11 @@ namespace Dolphin { * Opens a new Dolphin window */ void openNewWindow(const QList &urls = {}, QWidget *window = nullptr, const OpenNewWindowFlags &flags = OpenNewWindowFlag::None); + + /** + * TODO: Move this somewhere global to all KDE apps, not just Dolphin + */ + const int VERTICAL_SPACER_HEIGHT = 18; } #endif //GLOBAL_H diff --git a/src/settings/dolphinsettingsdialog.cpp b/src/settings/dolphinsettingsdialog.cpp index a79561b4a..6bddb861f 100644 --- a/src/settings/dolphinsettingsdialog.cpp +++ b/src/settings/dolphinsettingsdialog.cpp @@ -41,7 +41,7 @@ DolphinSettingsDialog::DolphinSettingsDialog(const QUrl& url, QWidget* parent) : { const QSize minSize = minimumSize(); - setMinimumSize(QSize(512, minSize.height())); + setMinimumSize(QSize(540, minSize.height())); setFaceType(List); setWindowTitle(i18nc("@title:window", "Dolphin Preferences")); diff --git a/src/settings/general/behaviorsettingspage.cpp b/src/settings/general/behaviorsettingspage.cpp index ba8d0549c..921ab3f8e 100644 --- a/src/settings/general/behaviorsettingspage.cpp +++ b/src/settings/general/behaviorsettingspage.cpp @@ -20,14 +20,16 @@ #include "behaviorsettingspage.h" +#include "global.h" #include "views/viewproperties.h" #include +#include #include -#include +#include #include -#include +#include BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : SettingsPageBase(parent), @@ -42,51 +44,55 @@ BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : m_renameInline(nullptr), m_useTabForSplitViewSwitch(nullptr) { - QVBoxLayout* topLayout = new QVBoxLayout(this); + QFormLayout* topLayout = new QFormLayout(this); + // View properties - QGroupBox* viewPropsBox = new QGroupBox(i18nc("@title:group", "View"), this); - viewPropsBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); + m_localViewProps = new QRadioButton(i18nc("@option:radio", "Remember properties for each folder")); + m_globalViewProps = new QRadioButton(i18nc("@option:radio", "Use common properties for all folders")); + + QButtonGroup* viewGroup = new QButtonGroup(this); + viewGroup->addButton(m_localViewProps); + viewGroup->addButton(m_globalViewProps); + topLayout->addRow(i18nc("@title:group", "View: "), m_localViewProps); + topLayout->addRow(QString(), m_globalViewProps); + - m_localViewProps = new QRadioButton(i18nc("@option:radio", "Remember properties for each folder"), viewPropsBox); - m_globalViewProps = new QRadioButton(i18nc("@option:radio", "Use common properties for all folders"), viewPropsBox); + topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed)); - QVBoxLayout* viewPropsLayout = new QVBoxLayout(viewPropsBox); - viewPropsLayout->addWidget(m_localViewProps); - viewPropsLayout->addWidget(m_globalViewProps); // Sorting properties - QGroupBox* sortingPropsBox = new QGroupBox(i18nc("@title:group", "Sorting Mode"), this); - sortingPropsBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); + m_naturalSorting = new QRadioButton(i18nc("option:radio", "Natural")); + m_caseInsensitiveSorting = new QRadioButton(i18nc("option:radio", "Alphabetical, case insensitive")); + m_caseSensitiveSorting = new QRadioButton(i18nc("option:radio", "Alphabetical, case sensitive")); - m_naturalSorting = new QRadioButton(i18nc("option:radio", "Natural sorting"), sortingPropsBox); - m_caseInsensitiveSorting = new QRadioButton(i18nc("option:radio", "Alphabetical sorting, case insensitive"), sortingPropsBox); - m_caseSensitiveSorting = new QRadioButton(i18nc("option:radio", "Alphabetical sorting, case sensitive"), sortingPropsBox); + QButtonGroup* sortingModeGroup = new QButtonGroup(this); + sortingModeGroup->addButton(m_naturalSorting); + sortingModeGroup->addButton(m_caseInsensitiveSorting); + sortingModeGroup->addButton(m_caseSensitiveSorting); + topLayout->addRow(i18nc("@title:group", "Sorting mode: "), m_naturalSorting); + topLayout->addRow(QString(), m_caseInsensitiveSorting); + topLayout->addRow(QString(), m_caseSensitiveSorting); + + + topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed)); - QVBoxLayout* sortingPropsLayout = new QVBoxLayout(sortingPropsBox); - sortingPropsLayout->addWidget(m_naturalSorting); - sortingPropsLayout->addWidget(m_caseInsensitiveSorting); - sortingPropsLayout->addWidget(m_caseSensitiveSorting); // 'Show tooltips' - m_showToolTips = new QCheckBox(i18nc("@option:check", "Show tooltips"), this); + m_showToolTips = new QCheckBox(i18nc("@option:check", "Show tooltips")); + topLayout->addRow(i18nc("@title:group", "Miscellaneous: "), m_showToolTips); // 'Show selection marker' - m_showSelectionToggle = new QCheckBox(i18nc("@option:check", "Show selection marker"), this); + m_showSelectionToggle = new QCheckBox(i18nc("@option:check", "Show selection marker")); + topLayout->addRow(QString(), m_showSelectionToggle); // 'Inline renaming of items' - m_renameInline = new QCheckBox(i18nc("option:check", "Rename inline"), this); - - // 'Use tab for switching between right and left split' - m_useTabForSplitViewSwitch = new QCheckBox(i18nc("option:check", "Use tab for switching between right and left split view"), this); - - topLayout->addWidget(viewPropsBox); - topLayout->addWidget(sortingPropsBox); - topLayout->addWidget(m_showToolTips); - topLayout->addWidget(m_showSelectionToggle); - topLayout->addWidget(m_renameInline); - topLayout->addWidget(m_useTabForSplitViewSwitch); - topLayout->addStretch(); + m_renameInline = new QCheckBox(i18nc("option:check", "Rename inline")); + topLayout->addRow(QString(), m_renameInline); + + // 'Switch between split views with tab key' + m_useTabForSplitViewSwitch = new QCheckBox(i18nc("option:check", "Switch between split views with tab key")); + topLayout->addRow(QString(), m_useTabForSplitViewSwitch); loadSettings(); diff --git a/src/settings/general/confirmationssettingspage.cpp b/src/settings/general/confirmationssettingspage.cpp index 728d082d2..d96dfe0b2 100644 --- a/src/settings/general/confirmationssettingspage.cpp +++ b/src/settings/general/confirmationssettingspage.cpp @@ -20,6 +20,7 @@ #include "confirmationssettingspage.h" #include "dolphin_generalsettings.h" +#include "global.h" #include @@ -55,17 +56,18 @@ ConfirmationsSettingsPage::ConfirmationsSettingsPage(QWidget* parent) : m_confirmScriptExecution = new QCheckBox(i18nc("@option:check Ask for confirmation when", "Executing scripts or desktop files"), this); - QLabel* confirmLabelDolphin = new QLabel(i18nc("@title:group", "Ask for confirmation when:"), this); + QLabel* confirmLabelDolphin = new QLabel(i18nc("@title:group", "Ask for confirmation in Dolphin when:"), this); confirmLabelDolphin->setWordWrap(true); - m_confirmClosingMultipleTabs = new QCheckBox(i18nc("@option:check Ask for confirmation when", - "Closing Dolphin windows with multiple tabs"), this); + m_confirmClosingMultipleTabs = new QCheckBox(i18nc("@option:check Ask for confirmation in Dolphin when", + "Closing windows with multiple tabs"), this); topLayout->addWidget(confirmLabelKde); topLayout->addWidget(m_confirmMoveToTrash); topLayout->addWidget(m_confirmEmptyTrash); topLayout->addWidget(m_confirmDelete); topLayout->addWidget(m_confirmScriptExecution); + topLayout->addSpacing(Dolphin::VERTICAL_SPACER_HEIGHT); topLayout->addWidget(confirmLabelDolphin); topLayout->addWidget(m_confirmClosingMultipleTabs); topLayout->addStretch(); diff --git a/src/settings/startup/startupsettingspage.cpp b/src/settings/startup/startupsettingspage.cpp index 4071ee04f..f8b7daa79 100644 --- a/src/settings/startup/startupsettingspage.cpp +++ b/src/settings/startup/startupsettingspage.cpp @@ -29,10 +29,10 @@ #include #include -#include -#include #include #include +#include +#include #include StartupSettingsPage::StartupSettingsPage(const QUrl& url, QWidget* parent) : @@ -45,27 +45,18 @@ StartupSettingsPage::StartupSettingsPage(const QUrl& url, QWidget* parent) : m_filterBar(nullptr), m_showFullPathInTitlebar(nullptr) { - QVBoxLayout* topLayout = new QVBoxLayout(this); - QWidget* vBox = new QWidget(this); - QVBoxLayout *vBoxLayout = new QVBoxLayout(vBox); - vBoxLayout->setMargin(0); - vBoxLayout->setAlignment(Qt::AlignTop); + QFormLayout* topLayout = new QFormLayout(this); - // create 'Home URL' editor - QGroupBox* homeBox = new QGroupBox(i18nc("@title:group", "Home Folder"), vBox); - vBoxLayout->addWidget(homeBox); - QWidget* homeUrlBox = new QWidget(homeBox); - QHBoxLayout *homeUrlBoxLayout = new QHBoxLayout(homeUrlBox); + // create 'Home URL' editor + QHBoxLayout* homeUrlBoxLayout = new QHBoxLayout(); homeUrlBoxLayout->setMargin(0); - QLabel* homeUrlLabel = new QLabel(i18nc("@label:textbox", "Location:"), homeUrlBox); - homeUrlBoxLayout->addWidget(homeUrlLabel); - m_homeUrl = new QLineEdit(homeUrlBox); - homeUrlBoxLayout->addWidget(m_homeUrl); + m_homeUrl = new QLineEdit(); m_homeUrl->setClearButtonEnabled(true); + homeUrlBoxLayout->addWidget(m_homeUrl); - QPushButton* selectHomeUrlButton = new QPushButton(QIcon::fromTheme(QStringLiteral("folder-open")), QString(), homeUrlBox); + QPushButton* selectHomeUrlButton = new QPushButton(QIcon::fromTheme(QStringLiteral("folder-open")), QString()); homeUrlBoxLayout->addWidget(selectHomeUrlButton); #ifndef QT_NO_ACCESSIBILITY @@ -75,41 +66,41 @@ StartupSettingsPage::StartupSettingsPage(const QUrl& url, QWidget* parent) : connect(selectHomeUrlButton, &QPushButton::clicked, this, &StartupSettingsPage::selectHomeUrl); - QWidget* buttonBox = new QWidget(homeBox); - QHBoxLayout *buttonBoxLayout = new QHBoxLayout(buttonBox); + QHBoxLayout* buttonBoxLayout = new QHBoxLayout(); buttonBoxLayout->setMargin(0); - QPushButton* useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location"), buttonBox); + QPushButton* useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location")); buttonBoxLayout->addWidget(useCurrentButton); connect(useCurrentButton, &QPushButton::clicked, this, &StartupSettingsPage::useCurrentLocation); - QPushButton* useDefaultButton = new QPushButton(i18nc("@action:button", "Use Default Location"), buttonBox); + QPushButton* useDefaultButton = new QPushButton(i18nc("@action:button", "Use Default Location")); buttonBoxLayout->addWidget(useDefaultButton); connect(useDefaultButton, &QPushButton::clicked, this, &StartupSettingsPage::useDefaultLocation); - QVBoxLayout* homeBoxLayout = new QVBoxLayout(homeBox); - homeBoxLayout->addWidget(homeUrlBox); - homeBoxLayout->addWidget(buttonBox); + QVBoxLayout* homeBoxLayout = new QVBoxLayout(); + homeBoxLayout->setMargin(0); + homeBoxLayout->addLayout(homeUrlBoxLayout); + homeBoxLayout->addLayout(buttonBoxLayout); + + topLayout->addRow(i18nc("@label:textbox", "Start in:"), homeBoxLayout); + + + topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed)); + // create 'Split view', 'Show full path', 'Editable location' and 'Filter bar' checkboxes - m_splitView = new QCheckBox(i18nc("@option:check Startup Settings", "Split view mode"), vBox); - vBoxLayout->addWidget(m_splitView); - m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Editable location bar"), vBox); - vBoxLayout->addWidget(m_editableUrl); - m_showFullPath = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path inside location bar"), vBox); - vBoxLayout->addWidget(m_showFullPath); - m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar"), vBox); - vBoxLayout->addWidget(m_filterBar); - m_showFullPathInTitlebar = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path in title bar"), vBox); - vBoxLayout->addWidget(m_showFullPathInTitlebar); - - // Add a dummy widget with no restriction regarding - // a vertical resizing. This assures that the dialog layout - // is not stretched vertically. - new QWidget(vBox); - - topLayout->addWidget(vBox); + m_splitView = new QCheckBox(i18nc("@option:check Startup Settings", "Split view mode")); + topLayout->addRow(i18nc("@label:checkbox", "Window options:"), m_splitView); + m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Editable location bar")); + topLayout->addRow(QString(), m_editableUrl); + m_showFullPath = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path inside location bar")); + topLayout->addRow(QString(), m_showFullPath); + m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar")); + topLayout->addRow(QString(), m_filterBar); + m_showFullPathInTitlebar = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path in title bar")); + topLayout->addRow(QString(), m_showFullPathInTitlebar); + loadSettings(); diff --git a/src/settings/trash/trashsettingspage.cpp b/src/settings/trash/trashsettingspage.cpp index 4c71aa3ec..a9b8c734c 100644 --- a/src/settings/trash/trashsettingspage.cpp +++ b/src/settings/trash/trashsettingspage.cpp @@ -21,26 +21,15 @@ #include -#include +#include TrashSettingsPage::TrashSettingsPage(QWidget* parent) : SettingsPageBase(parent) { - QVBoxLayout* topLayout = new QVBoxLayout(this); - QWidget* vBox = new QWidget(this); - QVBoxLayout *vBoxVBoxLayout = new QVBoxLayout(vBox); - vBoxVBoxLayout->setMargin(0); + QFormLayout* topLayout = new QFormLayout(this); m_proxy = new KCModuleProxy(QStringLiteral("kcmtrash")); - topLayout->addWidget(m_proxy); - - // Add a dummy widget with no restriction regarding - // a vertical resizing. This assures that the dialog layout - // is not stretched vertically. - QWidget *w = new QWidget(vBox); - vBoxVBoxLayout->addWidget(w); - - topLayout->addWidget(vBox); + topLayout->addRow(m_proxy); loadSettings(); diff --git a/src/settings/viewmodes/viewsettingstab.cpp b/src/settings/viewmodes/viewsettingstab.cpp index 3971c8ed8..925a982d9 100644 --- a/src/settings/viewmodes/viewsettingstab.cpp +++ b/src/settings/viewmodes/viewsettingstab.cpp @@ -23,6 +23,7 @@ #include "dolphin_detailsmodesettings.h" #include "dolphin_iconsmodesettings.h" #include "dolphinfontrequester.h" +#include "global.h" #include "views/zoomlevelinfo.h" #include @@ -30,10 +31,8 @@ #include #include #include -#include #include -#include -#include +#include ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget* parent) : QWidget(parent), @@ -45,97 +44,74 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget* parent) : m_maxLinesBox(nullptr), m_expandableFolders(nullptr) { - QVBoxLayout* topLayout = new QVBoxLayout(this); + QFormLayout* topLayout = new QFormLayout(this); - // Create "Icon Size" group - QGroupBox* iconSizeGroup = new QGroupBox(this); - iconSizeGroup->setTitle(i18nc("@title:group", "Icon Size")); + // Create "Icon Size" section const int minRange = ZoomLevelInfo::minimumLevel(); const int maxRange = ZoomLevelInfo::maximumLevel(); - QLabel* defaultLabel = new QLabel(i18nc("@label:listbox", "Default:"), this); - m_defaultSizeSlider = new QSlider(Qt::Horizontal, this); + m_defaultSizeSlider = new QSlider(Qt::Horizontal); m_defaultSizeSlider->setPageStep(1); m_defaultSizeSlider->setTickPosition(QSlider::TicksBelow); m_defaultSizeSlider->setRange(minRange, maxRange); connect(m_defaultSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::slotDefaultSliderMoved); + topLayout->addRow(i18nc("@label:listbox", "Default icon size:"), m_defaultSizeSlider); - QLabel* previewLabel = new QLabel(i18nc("@label:listbox", "Preview:"), this); - m_previewSizeSlider = new QSlider(Qt::Horizontal, this); + m_previewSizeSlider = new QSlider(Qt::Horizontal); m_previewSizeSlider->setPageStep(1); m_previewSizeSlider->setTickPosition(QSlider::TicksBelow); m_previewSizeSlider->setRange(minRange, maxRange); connect(m_previewSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::slotPreviewSliderMoved); + topLayout->addRow(i18nc("@label:listbox", "Preview icon size:"), m_previewSizeSlider); - QGridLayout* layout = new QGridLayout(iconSizeGroup); - layout->addWidget(defaultLabel, 0, 0, Qt::AlignRight); - layout->addWidget(m_defaultSizeSlider, 0, 1); - layout->addWidget(previewLabel, 1, 0, Qt::AlignRight); - layout->addWidget(m_previewSizeSlider, 1, 1); - // Create "Text" group - QGroupBox* textGroup = new QGroupBox(i18nc("@title:group", "Text"), this); + topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed)); - QLabel* fontLabel = new QLabel(i18nc("@label:listbox", "Font:"), textGroup); - m_fontRequester = new DolphinFontRequester(textGroup); - QGridLayout* textGroupLayout = new QGridLayout(textGroup); - textGroupLayout->addWidget(fontLabel, 0, 0, Qt::AlignRight); - textGroupLayout->addWidget(m_fontRequester, 0, 1); + // Create "Label" section + m_fontRequester = new DolphinFontRequester(this); + topLayout->addRow(i18nc("@label:listbox", "Label font:"), m_fontRequester); + switch (m_mode) { case IconsMode: { - QLabel* widthLabel = new QLabel(i18nc("@label:listbox", "Width:"), textGroup); - m_widthBox = new QComboBox(textGroup); - m_widthBox->addItem(i18nc("@item:inlistbox Text width", "Small")); - m_widthBox->addItem(i18nc("@item:inlistbox Text width", "Medium")); - m_widthBox->addItem(i18nc("@item:inlistbox Text width", "Large")); - m_widthBox->addItem(i18nc("@item:inlistbox Text width", "Huge")); - - QLabel* maxLinesLabel = new QLabel(i18nc("@label:listbox", "Maximum lines:"), textGroup); - m_maxLinesBox = new QComboBox(textGroup); + m_widthBox = new QComboBox(); + m_widthBox->addItem(i18nc("@item:inlistbox Label width", "Small")); + m_widthBox->addItem(i18nc("@item:inlistbox Label width", "Medium")); + m_widthBox->addItem(i18nc("@item:inlistbox Label width", "Large")); + m_widthBox->addItem(i18nc("@item:inlistbox Label width", "Huge")); + topLayout->addRow(i18nc("@label:listbox", "Label width:"), m_widthBox); + + m_maxLinesBox = new QComboBox(); m_maxLinesBox->addItem(i18nc("@item:inlistbox Maximum lines", "Unlimited")); m_maxLinesBox->addItem(i18nc("@item:inlistbox Maximum lines", "1")); m_maxLinesBox->addItem(i18nc("@item:inlistbox Maximum lines", "2")); m_maxLinesBox->addItem(i18nc("@item:inlistbox Maximum lines", "3")); m_maxLinesBox->addItem(i18nc("@item:inlistbox Maximum lines", "4")); m_maxLinesBox->addItem(i18nc("@item:inlistbox Maximum lines", "5")); - - textGroupLayout->addWidget(widthLabel, 2, 0, Qt::AlignRight); - textGroupLayout->addWidget(m_widthBox, 2, 1); - textGroupLayout->addWidget(maxLinesLabel, 3, 0, Qt::AlignRight); - textGroupLayout->addWidget(m_maxLinesBox, 3, 1); + topLayout->addRow(i18nc("@label:listbox", "Maximum lines:"), m_maxLinesBox); break; } case CompactMode: { - QLabel* maxWidthLabel = new QLabel(i18nc("@label:listbox", "Maximum width:"), textGroup); - m_widthBox = new QComboBox(textGroup); + m_widthBox = new QComboBox(); m_widthBox->addItem(i18nc("@item:inlistbox Maximum width", "Unlimited")); m_widthBox->addItem(i18nc("@item:inlistbox Maximum width", "Small")); m_widthBox->addItem(i18nc("@item:inlistbox Maximum width", "Medium")); m_widthBox->addItem(i18nc("@item:inlistbox Maximum width", "Large")); - - textGroupLayout->addWidget(maxWidthLabel, 2, 0, Qt::AlignRight); - textGroupLayout->addWidget(m_widthBox, 2, 1); + topLayout->addRow(i18nc("@label:listbox", "Maximum width:"), m_widthBox); break; } case DetailsMode: - m_expandableFolders = new QCheckBox(i18nc("@option:check", "Expandable folders"), this); + m_expandableFolders = new QCheckBox(i18nc("@option:check", "Expandable")); + topLayout->addRow(i18nc("@label:checkbox", "Folders:"), m_expandableFolders); break; default: break; } - topLayout->addWidget(iconSizeGroup); - topLayout->addWidget(textGroup); - if (m_expandableFolders) { - topLayout->addWidget(m_expandableFolders); - } - topLayout->addStretch(1); - loadSettings(); connect(m_defaultSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::changed); -- 2.47.3