* Opens a new Dolphin window
*/
void openNewWindow(const QList<QUrl> &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
{
const QSize minSize = minimumSize();
- setMinimumSize(QSize(512, minSize.height()));
+ setMinimumSize(QSize(540, minSize.height()));
setFaceType(List);
setWindowTitle(i18nc("@title:window", "Dolphin Preferences"));
#include "behaviorsettingspage.h"
+#include "global.h"
#include "views/viewproperties.h"
#include <KLocalizedString>
+#include <QButtonGroup>
#include <QCheckBox>
-#include <QGroupBox>
+#include <QFormLayout>
#include <QRadioButton>
-#include <QVBoxLayout>
+#include <QSpacerItem>
BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) :
SettingsPageBase(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();
#include "confirmationssettingspage.h"
#include "dolphin_generalsettings.h"
+#include "global.h"
#include <KLocalizedString>
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();
#include <QCheckBox>
#include <QFileDialog>
-#include <QGroupBox>
-#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
+#include <QFormLayout>
+#include <QHBoxLayout>
#include <QVBoxLayout>
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
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();
#include <KCModuleProxy>
-#include <QVBoxLayout>
+#include <QFormLayout>
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();
#include "dolphin_detailsmodesettings.h"
#include "dolphin_iconsmodesettings.h"
#include "dolphinfontrequester.h"
+#include "global.h"
#include "views/zoomlevelinfo.h"
#include <KLocalizedString>
#include <QApplication>
#include <QCheckBox>
#include <QComboBox>
-#include <QGroupBox>
#include <QHelpEvent>
-#include <QLabel>
-#include <QVBoxLayout>
+#include <QFormLayout>
ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget* parent) :
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);