diff --git a/src/settings/dolphinsettingsdialog.cpp b/src/settings/dolphinsettingsdialog.cpp --- a/src/settings/dolphinsettingsdialog.cpp +++ b/src/settings/dolphinsettingsdialog.cpp @@ -41,7 +41,7 @@ { 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 --- a/src/settings/general/behaviorsettingspage.cpp +++ b/src/settings/general/behaviorsettingspage.cpp @@ -24,10 +24,13 @@ #include +#include #include #include +#include #include -#include +#include +#include BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : SettingsPageBase(parent), @@ -42,51 +45,56 @@ m_renameInline(nullptr), m_useTabForSplitViewSwitch(nullptr) { - QVBoxLayout* topLayout = new QVBoxLayout(this); + QFormLayout* topLayout = new QFormLayout(this); + topLayout->setSizeConstraint(QLayout::SetMinimumSize); + // 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,12, 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,12, 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", "General: "), 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 --- a/src/settings/general/confirmationssettingspage.cpp +++ b/src/settings/general/confirmationssettingspage.cpp @@ -25,7 +25,7 @@ #include #include -#include +#include namespace { const bool ConfirmEmptyTrash = true; @@ -41,34 +41,30 @@ m_confirmDelete(nullptr), m_confirmClosingMultipleTabs(nullptr) { - QVBoxLayout* topLayout = new QVBoxLayout(this); - - QLabel* confirmLabelKde = new QLabel(i18nc("@title:group", "Ask for confirmation in all KDE applications when:"), this); - confirmLabelKde->setWordWrap(true); - - m_confirmMoveToTrash = new QCheckBox(i18nc("@option:check Ask for confirmation when", - "Moving files or folders to trash"), this); - m_confirmEmptyTrash = new QCheckBox(i18nc("@option:check Ask for confirmation when", - "Emptying trash"), this); - m_confirmDelete = new QCheckBox(i18nc("@option:check Ask for confirmation when", - "Deleting files or folders"), this); - 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); - confirmLabelDolphin->setWordWrap(true); - - m_confirmClosingMultipleTabs = new QCheckBox(i18nc("@option:check Ask for confirmation when", - "Closing Dolphin 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->addWidget(confirmLabelDolphin); - topLayout->addWidget(m_confirmClosingMultipleTabs); - topLayout->addStretch(); + QFormLayout* topLayout = new QFormLayout(this); + + + // Note: these apply to all KDE Apps + m_confirmMoveToTrash = new QCheckBox(i18nc("@option:check confirm", + "Moving files or folders to trash")); + topLayout->addRow(i18n("Confirm:"), m_confirmMoveToTrash); + + m_confirmEmptyTrash = new QCheckBox(i18nc("@option:check confirm", + "Emptying trash")); + topLayout->addRow(QString(), m_confirmEmptyTrash); + + m_confirmDelete = new QCheckBox(i18nc("@option:check confirm", + "Deleting files or folders")); + topLayout->addRow(QString(), m_confirmDelete); + + m_confirmScriptExecution = new QCheckBox(i18nc("@option:check confirm", + "Executing scripts or desktop files")); + topLayout->addRow(QString(), m_confirmScriptExecution); + + // Note: this only applies to Dolphin + m_confirmClosingMultipleTabs = new QCheckBox(i18nc("@option:check Confirm", + "Closing Dolphin when multiple tabs are open")); + topLayout->addRow(QString(), m_confirmClosingMultipleTabs); loadSettings(); diff --git a/src/settings/startup/startupsettingspage.h b/src/settings/startup/startupsettingspage.h --- a/src/settings/startup/startupsettingspage.h +++ b/src/settings/startup/startupsettingspage.h @@ -25,6 +25,7 @@ class QLineEdit; class QCheckBox; +class QFormLayout; /** * @brief Page for the 'Startup' settings of the Dolphin settings dialog. @@ -50,7 +51,6 @@ void slotSettingsChanged(); void selectHomeUrl(); void useCurrentLocation(); - void useDefaultLocation(); private: void loadSettings(); @@ -64,6 +64,8 @@ QCheckBox* m_showFullPath; QCheckBox* m_filterBar; QCheckBox* m_showFullPathInTitlebar; + + QFormLayout* m_topLayout; }; #endif diff --git a/src/settings/startup/startupsettingspage.cpp b/src/settings/startup/startupsettingspage.cpp --- a/src/settings/startup/startupsettingspage.cpp +++ b/src/settings/startup/startupsettingspage.cpp @@ -25,14 +25,16 @@ #include "global.h" #include -#include +#include #include #include #include #include #include #include +#include +#include #include StartupSettingsPage::StartupSettingsPage(const QUrl& url, QWidget* parent) : @@ -43,76 +45,59 @@ m_editableUrl(nullptr), m_showFullPath(nullptr), m_filterBar(nullptr), - m_showFullPathInTitlebar(nullptr) + m_showFullPathInTitlebar(nullptr), + m_topLayout(nullptr) { - QVBoxLayout* topLayout = new QVBoxLayout(this); - QWidget* vBox = new QWidget(this); - QVBoxLayout *vBoxLayout = new QVBoxLayout(vBox); - vBoxLayout->setMargin(0); - vBoxLayout->setAlignment(Qt::AlignTop); + m_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); - homeUrlBoxLayout->setMargin(0); - QLabel* homeUrlLabel = new QLabel(i18nc("@label:textbox", "Location:"), homeUrlBox); - homeUrlBoxLayout->addWidget(homeUrlLabel); - m_homeUrl = new QLineEdit(homeUrlBox); - homeUrlBoxLayout->addWidget(m_homeUrl); + // create 'Home URL' editor + m_homeUrl = new QLineEdit(); m_homeUrl->setClearButtonEnabled(true); - QPushButton* selectHomeUrlButton = new QPushButton(QIcon::fromTheme(QStringLiteral("folder-open")), QString(), homeUrlBox); - homeUrlBoxLayout->addWidget(selectHomeUrlButton); - + QPushButton* selectHomeUrlButton = new QPushButton(QIcon::fromTheme(QStringLiteral("folder-open")), QString()); #ifndef QT_NO_ACCESSIBILITY selectHomeUrlButton->setAccessibleName(i18nc("@action:button", "Select Home Location")); #endif - connect(selectHomeUrlButton, &QPushButton::clicked, - this, &StartupSettingsPage::selectHomeUrl); + QHBoxLayout *homeUrlBoxLayout = new QHBoxLayout(); + homeUrlBoxLayout->setMargin(0); + homeUrlBoxLayout->addWidget(m_homeUrl); + homeUrlBoxLayout->addWidget(selectHomeUrlButton); - QWidget* buttonBox = new QWidget(homeBox); - QHBoxLayout *buttonBoxLayout = new QHBoxLayout(buttonBox); - buttonBoxLayout->setMargin(0); - QPushButton* useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location"), buttonBox); - buttonBoxLayout->addWidget(useCurrentButton); - connect(useCurrentButton, &QPushButton::clicked, - this, &StartupSettingsPage::useCurrentLocation); - QPushButton* useDefaultButton = new QPushButton(i18nc("@action:button", "Use Default Location"), buttonBox); - buttonBoxLayout->addWidget(useDefaultButton); - connect(useDefaultButton, &QPushButton::clicked, - this, &StartupSettingsPage::useDefaultLocation); + QPushButton* useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location")); + + QVBoxLayout *locationLayout = new QVBoxLayout(); + locationLayout->setMargin(0); + locationLayout->addLayout(homeUrlBoxLayout); + locationLayout->addWidget(useCurrentButton); + locationLayout->setStretchFactor(useCurrentButton, 1); + + m_topLayout->addRow(i18nc("@label:textbox", "Location:"), locationLayout); + + + m_topLayout->addItem(new QSpacerItem(0,12, QSizePolicy::Fixed, QSizePolicy::Fixed)); - QVBoxLayout* homeBoxLayout = new QVBoxLayout(homeBox); - homeBoxLayout->addWidget(homeUrlBox); - homeBoxLayout->addWidget(buttonBox); // 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")); + m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Editable location bar")); + m_showFullPath = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path inside location bar")); + m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar")); + m_showFullPathInTitlebar = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path in title bar")); + + m_topLayout->addRow(i18nc("@label:checkbox", "View options:"), m_splitView); + m_topLayout->addRow(QString(), m_editableUrl); + m_topLayout->addRow(QString(), m_showFullPath); + m_topLayout->addRow(QString(), m_filterBar); + m_topLayout->addRow(QString(), m_showFullPathInTitlebar); + loadSettings(); + connect(selectHomeUrlButton, &QPushButton::clicked, this, &StartupSettingsPage::selectHomeUrl); + connect(useCurrentButton, &QPushButton::clicked, this, &StartupSettingsPage::useCurrentLocation); connect(m_homeUrl, &QLineEdit::textChanged, this, &StartupSettingsPage::slotSettingsChanged); connect(m_splitView, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged); connect(m_editableUrl, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged); @@ -134,7 +119,13 @@ if ((url.isValid() && fileItem.isDir()) || (url.scheme() == QLatin1String("timeline"))) { settings->setHomeUrl(url.toDisplayString(QUrl::PreferLocalFile)); } else { - KMessageBox::error(this, i18nc("@info", "The location for the home folder is invalid or does not exist, it will not be applied.")); + KMessageWidget* warningWidget = new KMessageWidget(); + warningWidget->hide(); + warningWidget->setText(i18n("Choose a valid location.")); + warningWidget->setCloseButtonVisible(true); + warningWidget->setMessageType(KMessageWidget::Warning); + m_topLayout->insertRow(0, warningWidget); + warningWidget->animatedShow(); } settings->setSplitView(m_splitView->isChecked()); @@ -178,11 +169,6 @@ m_homeUrl->setText(m_url.toDisplayString(QUrl::PreferLocalFile)); } -void StartupSettingsPage::useDefaultLocation() -{ - m_homeUrl->setText(QDir::homePath()); -} - void StartupSettingsPage::loadSettings() { const QUrl url(Dolphin::homeUrl()); diff --git a/src/settings/trash/trashsettingspage.cpp b/src/settings/trash/trashsettingspage.cpp --- 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.h b/src/settings/viewmodes/viewsettingstab.h --- a/src/settings/viewmodes/viewsettingstab.h +++ b/src/settings/viewmodes/viewsettingstab.h @@ -22,10 +22,10 @@ #include "settings/viewmodes/viewmodesettings.h" +#include #include class DolphinFontRequester; -class KComboBox; class QCheckBox; class QSlider; @@ -69,8 +69,8 @@ QSlider* m_previewSizeSlider; DolphinFontRequester* m_fontRequester; - KComboBox* m_widthBox; - KComboBox* m_maxLinesBox; + QComboBox* m_widthBox; + QComboBox* m_maxLinesBox; QCheckBox* m_expandableFolders; }; diff --git a/src/settings/viewmodes/viewsettingstab.cpp b/src/settings/viewmodes/viewsettingstab.cpp --- a/src/settings/viewmodes/viewsettingstab.cpp +++ b/src/settings/viewmodes/viewsettingstab.cpp @@ -25,15 +25,15 @@ #include "dolphinfontrequester.h" #include "views/zoomlevelinfo.h" -#include #include #include #include +#include #include #include #include -#include +#include ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget* parent) : QWidget(parent), @@ -45,110 +45,87 @@ 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,12, 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 KComboBox(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 KComboBox(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 KComboBox(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", "Enable")); + topLayout->addRow(i18nc("@label:checkbox", "Expandable 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); connect(m_previewSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::changed); connect(m_fontRequester, &DolphinFontRequester::changed, this, &ViewSettingsTab::changed); switch (m_mode) { case IconsMode: - connect(m_widthBox, static_cast(&KComboBox::currentIndexChanged), this, &ViewSettingsTab::changed); - connect(m_maxLinesBox, static_cast(&KComboBox::currentIndexChanged), this, &ViewSettingsTab::changed); + connect(m_widthBox, static_cast(&QComboBox::currentIndexChanged), this, &ViewSettingsTab::changed); + connect(m_maxLinesBox, static_cast(&QComboBox::currentIndexChanged), this, &ViewSettingsTab::changed); break; case CompactMode: - connect(m_widthBox, static_cast(&KComboBox::currentIndexChanged), this, &ViewSettingsTab::changed); + connect(m_widthBox, static_cast(&QComboBox::currentIndexChanged), this, &ViewSettingsTab::changed); break; case DetailsMode: connect(m_expandableFolders, &QCheckBox::toggled, this, &ViewSettingsTab::changed);