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,8 +24,10 @@ #include +#include #include #include +#include #include #include @@ -42,31 +44,38 @@ m_renameInline(nullptr), m_useTabForSplitViewSwitch(nullptr) { - QVBoxLayout* topLayout = new QVBoxLayout(this); + QGridLayout* topLayout = new QGridLayout(this); // View properties - QGroupBox* viewPropsBox = new QGroupBox(i18nc("@title:group", "View"), this); - viewPropsBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); + QLabel* viewLabel = new QLabel(i18nc("@title:group", "View: "), this); + m_localViewProps = new QRadioButton(i18nc("@option:radio", "Remember properties for each folder"), this); + m_globalViewProps = new QRadioButton(i18nc("@option:radio", "Use common properties for all folders"), this); - 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); + QButtonGroup* viewGroup = new QButtonGroup(this); + viewGroup->addButton(m_localViewProps); + viewGroup->addButton(m_globalViewProps); - QVBoxLayout* viewPropsLayout = new QVBoxLayout(viewPropsBox); - viewPropsLayout->addWidget(m_localViewProps); - viewPropsLayout->addWidget(m_globalViewProps); + topLayout->addWidget(viewLabel, 0, 0, Qt::AlignRight); + topLayout->addWidget(m_localViewProps, 0, 1, Qt::AlignLeft); + topLayout->addWidget(m_globalViewProps, 1, 1, Qt::AlignLeft); + topLayout->setRowMinimumHeight(2,20); // 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 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); - - QVBoxLayout* sortingPropsLayout = new QVBoxLayout(sortingPropsBox); - sortingPropsLayout->addWidget(m_naturalSorting); - sortingPropsLayout->addWidget(m_caseInsensitiveSorting); - sortingPropsLayout->addWidget(m_caseSensitiveSorting); + QLabel* sortingModeLabel = new QLabel(i18nc("@title:group", "Sorting mode: "), this); + m_naturalSorting = new QRadioButton(i18nc("option:radio", "Natural"), this); + m_caseInsensitiveSorting = new QRadioButton(i18nc("option:radio", "Alphabetical, case insensitive"), this); + m_caseSensitiveSorting = new QRadioButton(i18nc("option:radio", "Alphabetical, case sensitive"), this); + + QButtonGroup* sortingModeGroup = new QButtonGroup(this); + sortingModeGroup->addButton(m_naturalSorting); + sortingModeGroup->addButton(m_caseInsensitiveSorting); + sortingModeGroup->addButton(m_caseSensitiveSorting); + + topLayout->addWidget(sortingModeLabel, 3, 0, Qt::AlignRight); + topLayout->addWidget(m_naturalSorting, 3, 1, Qt::AlignLeft); + topLayout->addWidget(m_caseInsensitiveSorting, 4, 1, Qt::AlignLeft); + topLayout->addWidget(m_caseSensitiveSorting, 5, 1, Qt::AlignLeft); + topLayout->setRowMinimumHeight(6,20); // 'Show tooltips' m_showToolTips = new QCheckBox(i18nc("@option:check", "Show tooltips"), this); @@ -77,16 +86,14 @@ // '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); + // 'Switch between split views with tab key' + m_useTabForSplitViewSwitch = new QCheckBox(i18nc("option:check", "Switch between split views with tab key"), 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(); + topLayout->addWidget(m_showToolTips, 7, 1, Qt::AlignLeft); + topLayout->addWidget(m_showSelectionToggle, 8, 1, Qt::AlignLeft); + topLayout->addWidget(m_renameInline, 9, 1, Qt::AlignLeft); + topLayout->addWidget(m_useTabForSplitViewSwitch, 10, 1, Qt::AlignLeft); + topLayout->setRowStretch(11, 1); loadSettings(); 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 @@ -52,30 +52,27 @@ vBoxLayout->setAlignment(Qt::AlignTop); // create 'Home URL' editor - QGroupBox* homeBox = new QGroupBox(i18nc("@title:group", "Home Folder"), vBox); - vBoxLayout->addWidget(homeBox); - - QWidget* homeUrlBox = new QWidget(homeBox); + QWidget* homeUrlBox = new QWidget(this); 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); + QLabel* homeUrlLabel = new QLabel(i18nc("@label:textbox", "Show on startup:"), this); + m_homeUrl = new QLineEdit(this); m_homeUrl->setClearButtonEnabled(true); + QPushButton* selectHomeUrlButton = new QPushButton(QIcon::fromTheme(QStringLiteral("folder-open")), QString(), this); - QPushButton* selectHomeUrlButton = new QPushButton(QIcon::fromTheme(QStringLiteral("folder-open")), QString(), homeUrlBox); + homeUrlBoxLayout->addWidget(homeUrlLabel); + homeUrlBoxLayout->addWidget(m_homeUrl); homeUrlBoxLayout->addWidget(selectHomeUrlButton); + homeUrlBoxLayout->setMargin(0); #ifndef QT_NO_ACCESSIBILITY selectHomeUrlButton->setAccessibleName(i18nc("@action:button", "Select Home Location")); #endif connect(selectHomeUrlButton, &QPushButton::clicked, this, &StartupSettingsPage::selectHomeUrl); - QWidget* buttonBox = new QWidget(homeBox); + QWidget* buttonBox = new QWidget(this); QHBoxLayout *buttonBoxLayout = new QHBoxLayout(buttonBox); buttonBoxLayout->setMargin(0); @@ -88,9 +85,9 @@ connect(useDefaultButton, &QPushButton::clicked, this, &StartupSettingsPage::useDefaultLocation); - QVBoxLayout* homeBoxLayout = new QVBoxLayout(homeBox); - homeBoxLayout->addWidget(homeUrlBox); - homeBoxLayout->addWidget(buttonBox); + vBoxLayout->addWidget(homeUrlBox); + vBoxLayout->addWidget(buttonBox); + vBoxLayout->addSpacing(20); // 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); 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,11 +25,11 @@ #include "dolphinfontrequester.h" #include "views/zoomlevelinfo.h" -#include #include #include #include +#include #include #include #include @@ -45,96 +45,85 @@ m_maxLinesBox(nullptr), m_expandableFolders(nullptr) { - QVBoxLayout* topLayout = new QVBoxLayout(this); - - // Create "Icon Size" group - QGroupBox* iconSizeGroup = new QGroupBox(this); - iconSizeGroup->setTitle(i18nc("@title:group", "Icon Size")); + QGridLayout* topLayout = new QGridLayout(this); + // Create "Icon Size" section const int minRange = ZoomLevelInfo::minimumLevel(); const int maxRange = ZoomLevelInfo::maximumLevel(); - QLabel* defaultLabel = new QLabel(i18nc("@label:listbox", "Default:"), this); + QLabel* defaultLabel = new QLabel(i18nc("@label:listbox", "Default icon size:"), this); m_defaultSizeSlider = new QSlider(Qt::Horizontal, this); m_defaultSizeSlider->setPageStep(1); m_defaultSizeSlider->setTickPosition(QSlider::TicksBelow); m_defaultSizeSlider->setRange(minRange, maxRange); connect(m_defaultSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::slotDefaultSliderMoved); - QLabel* previewLabel = new QLabel(i18nc("@label:listbox", "Preview:"), this); + QLabel* previewLabel = new QLabel(i18nc("@label:listbox", "Preview icon size:"), this); m_previewSizeSlider = new QSlider(Qt::Horizontal, this); m_previewSizeSlider->setPageStep(1); m_previewSizeSlider->setTickPosition(QSlider::TicksBelow); m_previewSizeSlider->setRange(minRange, maxRange); connect(m_previewSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::slotPreviewSliderMoved); - 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->addWidget(defaultLabel, 0, 0, Qt::AlignRight); + topLayout->addWidget(m_defaultSizeSlider, 0, 1); + topLayout->addWidget(previewLabel, 1, 0, Qt::AlignRight); + topLayout->addWidget(m_previewSizeSlider, 1, 1); + topLayout->setRowMinimumHeight(2,20); - QLabel* fontLabel = new QLabel(i18nc("@label:listbox", "Font:"), textGroup); - m_fontRequester = new DolphinFontRequester(textGroup); + // Create "Label" section + QLabel* fontLabel = new QLabel(i18nc("@label:listbox", "Label font:"), this); + m_fontRequester = new DolphinFontRequester(this); - QGridLayout* textGroupLayout = new QGridLayout(textGroup); - textGroupLayout->addWidget(fontLabel, 0, 0, Qt::AlignRight); - textGroupLayout->addWidget(m_fontRequester, 0, 1); + topLayout->addWidget(fontLabel, 3, 0, Qt::AlignRight); + topLayout->addWidget(m_fontRequester, 3, 1); 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); + QLabel* widthLabel = new QLabel(i18nc("@label:listbox", "Label width:"), this); + 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")); + + QLabel* maxLinesLabel = new QLabel(i18nc("@label:listbox", "Maximum lines:"), this); + 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->addWidget(widthLabel, 4, 0, Qt::AlignRight); + topLayout->addWidget(m_widthBox, 4, 1); + topLayout->addWidget(maxLinesLabel, 5, 0, Qt::AlignRight); + topLayout->addWidget(m_maxLinesBox, 5, 1); break; } case CompactMode: { - QLabel* maxWidthLabel = new QLabel(i18nc("@label:listbox", "Maximum width:"), textGroup); - m_widthBox = new KComboBox(textGroup); + QLabel* maxWidthLabel = new QLabel(i18nc("@label:listbox", "Maximum width:"), this); + 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->addWidget(maxWidthLabel, 4, 0, Qt::AlignRight); + topLayout->addWidget(m_widthBox, 4, 1); break; } case DetailsMode: m_expandableFolders = new QCheckBox(i18nc("@option:check", "Expandable folders"), this); + topLayout->addWidget(m_expandableFolders, 4, 1, Qt::AlignLeft); break; default: break; } - - topLayout->addWidget(iconSizeGroup); - topLayout->addWidget(textGroup); - if (m_expandableFolders) { - topLayout->addWidget(m_expandableFolders); - } - topLayout->addStretch(1); + topLayout->setRowStretch(6, 1); loadSettings(); @@ -144,11 +133,11 @@ 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);