diff options
Diffstat (limited to 'src/settings')
| -rw-r--r-- | src/settings/dolphin_detailsmodesettings.kcfg | 4 | ||||
| -rw-r--r-- | src/settings/viewmodes/viewsettingstab.cpp | 22 | ||||
| -rw-r--r-- | src/settings/viewmodes/viewsettingstab.h | 1 |
3 files changed, 27 insertions, 0 deletions
diff --git a/src/settings/dolphin_detailsmodesettings.kcfg b/src/settings/dolphin_detailsmodesettings.kcfg index a58a8d00b..aad59743c 100644 --- a/src/settings/dolphin_detailsmodesettings.kcfg +++ b/src/settings/dolphin_detailsmodesettings.kcfg @@ -31,6 +31,10 @@ <label>Side Padding</label> <default>20</default> </entry> + <entry name="HighlightEntireRow" type="Bool"> + <label>Highlight entire row</label> + <default>true</default> + </entry> <entry name="ExpandableFolders" type="Bool"> <label>Expandable folders</label> <default>true</default> diff --git a/src/settings/viewmodes/viewsettingstab.cpp b/src/settings/viewmodes/viewsettingstab.cpp index cc6818a30..850004c6f 100644 --- a/src/settings/viewmodes/viewsettingstab.cpp +++ b/src/settings/viewmodes/viewsettingstab.cpp @@ -101,6 +101,10 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget* parent) : m_expandableFolders = new QCheckBox(i18nc("@option:check", "Expandable")); topLayout->addRow(i18nc("@label:checkbox", "Folders:"), m_expandableFolders); + m_highlightEntireRow = new QCheckBox(i18nc("@option:check", "Highlight entire row")); + topLayout->addRow(i18nc("@label:checkbox", "Selection effect:"), m_highlightEntireRow); + + #ifndef Q_OS_WIN // Sorting properties m_numberOfItems = new QRadioButton(i18nc("option:radio", "Number of items")); @@ -161,6 +165,7 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget* parent) : connect(m_widthBox, &QComboBox::currentIndexChanged, this, &ViewSettingsTab::changed); break; case DetailsMode: + connect(m_highlightEntireRow, &QCheckBox::toggled, this, &ViewSettingsTab::changed); connect(m_expandableFolders, &QCheckBox::toggled, this, &ViewSettingsTab::changed); #ifndef Q_OS_WIN connect(m_recursiveDirectorySizeLimit, &QSpinBox::valueChanged, this, &ViewSettingsTab::changed); @@ -195,6 +200,22 @@ void ViewSettingsTab::applySettings() CompactModeSettings::setMaximumTextWidthIndex(m_widthBox->currentIndex()); break; case DetailsMode: + // We need side-padding when the full row is a click target to still be able to not click items. + // So here the default padding is enabled when the full row highlight is enabled. + if (m_highlightEntireRow->isChecked() && !DetailsModeSettings::highlightEntireRow()) { + auto detailsModeSettings = DetailsModeSettings::self(); + const bool usedDefaults = detailsModeSettings->useDefaults(true); + const int defaultSidePadding = detailsModeSettings->sidePadding(); + detailsModeSettings->useDefaults(usedDefaults); + if (DetailsModeSettings::sidePadding() < defaultSidePadding) { + DetailsModeSettings::setSidePadding(defaultSidePadding); + } + } else if (!m_highlightEntireRow->isChecked() && DetailsModeSettings::highlightEntireRow()) { + // The full row click target is disabled so now most of the view area can be used to interact + // with the view background. Having an extra side padding has no usability benefit in this case. + DetailsModeSettings::setSidePadding(0); + } + DetailsModeSettings::setHighlightEntireRow(m_highlightEntireRow->isChecked()); DetailsModeSettings::setExpandableFolders(m_expandableFolders->isChecked()); #ifndef Q_OS_WIN DetailsModeSettings::setDirectorySizeCount(m_numberOfItems->isChecked()); @@ -238,6 +259,7 @@ void ViewSettingsTab::loadSettings() m_widthBox->setCurrentIndex(CompactModeSettings::maximumTextWidthIndex()); break; case DetailsMode: + m_highlightEntireRow->setChecked(DetailsModeSettings::highlightEntireRow()); m_expandableFolders->setChecked(DetailsModeSettings::expandableFolders()); #ifndef Q_OS_WIN if (DetailsModeSettings::directorySizeCount()) { diff --git a/src/settings/viewmodes/viewsettingstab.h b/src/settings/viewmodes/viewsettingstab.h index 36dde0583..2cc133b52 100644 --- a/src/settings/viewmodes/viewsettingstab.h +++ b/src/settings/viewmodes/viewsettingstab.h @@ -56,6 +56,7 @@ private: DolphinFontRequester* m_fontRequester; QComboBox* m_widthBox; QComboBox* m_maxLinesBox; + QCheckBox* m_highlightEntireRow; QCheckBox* m_expandableFolders; QRadioButton* m_numberOfItems; QRadioButton* m_sizeOfContents; |
