┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings/viewmodes/generalviewsettingspage.cpp
diff options
context:
space:
mode:
authorVictor Blanchard <[email protected]>2025-05-28 12:33:52 +0200
committerMéven Car <[email protected]>2025-05-28 10:33:52 +0000
commitedda24eb851c2647f7dde01885008ef60fcadd9a (patch)
treeb49978ac3135b7de5346a93f43ff013898f3c365 /src/settings/viewmodes/generalviewsettingspage.cpp
parent0959642be297bf0749467c204e511f5887b17ee1 (diff)
dolphinview: Add a dynamic view option
Added a 'dynamic view' option, which allows to switch from a 'compact' or 'details' view to an 'icons' view if most of the files in the directory are images or videos. It reverts to the previous view mode when we switch to a directory which doesn't meet that criteria. The view mode is only changed once so users don't have to undo that for specific folders when they don't want icon view. A setting is added in the "Display style" section of the general view setting page. BUG: 491139
Diffstat (limited to 'src/settings/viewmodes/generalviewsettingspage.cpp')
-rw-r--r--src/settings/viewmodes/generalviewsettingspage.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/settings/viewmodes/generalviewsettingspage.cpp b/src/settings/viewmodes/generalviewsettingspage.cpp
index 7caffe0f9..988f243c1 100644
--- a/src/settings/viewmodes/generalviewsettingspage.cpp
+++ b/src/settings/viewmodes/generalviewsettingspage.cpp
@@ -47,6 +47,8 @@ GeneralViewSettingsPage::GeneralViewSettingsPage(const QUrl &url, QWidget *paren
localViewPropsLabel->setWordWrap(true);
localViewPropsLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+ m_dynamicView = new QCheckBox(i18nc("option:check", "Use icons view mode for locations which mostly contain media files"));
+
QButtonGroup *viewGroup = new QButtonGroup(this);
viewGroup->addButton(m_globalViewProps);
viewGroup->addButton(m_localViewProps);
@@ -54,6 +56,7 @@ GeneralViewSettingsPage::GeneralViewSettingsPage(const QUrl &url, QWidget *paren
topLayout->addRow(QString(), globalViewPropsLabel);
topLayout->addRow(QString(), m_localViewProps);
topLayout->addRow(QString(), localViewPropsLabel);
+ topLayout->addRow(QString(), m_dynamicView);
topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
@@ -191,6 +194,7 @@ GeneralViewSettingsPage::GeneralViewSettingsPage(const QUrl &url, QWidget *paren
connect(m_showSelectionToggle, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed);
connect(m_renameInline, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed);
connect(m_hideXtrashFiles, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed);
+ connect(m_dynamicView, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed);
connect(m_doubleClickViewCustomAction, &QLineEdit::textChanged, this, &GeneralViewSettingsPage::changed);
connect(m_doubleClickViewComboBox, qOverload<int>(&QComboBox::currentIndexChanged), this, &GeneralViewSettingsPage::changed);
connect(m_doubleClickViewComboBox, qOverload<int>(&QComboBox::currentIndexChanged), this, &GeneralViewSettingsPage::updateCustomActionVisibility);
@@ -212,6 +216,7 @@ void GeneralViewSettingsPage::applySettings()
settings->setShowSelectionToggle(m_showSelectionToggle->isChecked());
settings->setRenameInline(m_renameInline->isChecked());
settings->setHideXTrashFile(m_hideXtrashFiles->isChecked());
+ settings->setDynamicView(m_dynamicView->isChecked());
settings->setAutoExpandFolders(m_autoExpandFolders->isChecked());
settings->setBrowseThroughArchives(m_openArchivesAsFolder->isChecked());
settings->setDoubleClickViewCustomAction(m_doubleClickViewCustomAction->text());
@@ -246,6 +251,7 @@ void GeneralViewSettingsPage::loadSettings()
m_showSelectionToggle->setChecked(GeneralSettings::showSelectionToggle());
m_renameInline->setChecked(GeneralSettings::renameInline());
m_hideXtrashFiles->setChecked(GeneralSettings::hideXTrashFile());
+ m_dynamicView->setChecked(GeneralSettings::dynamicView());
m_localViewProps->setChecked(!useGlobalViewProps);
m_globalViewProps->setChecked(useGlobalViewProps);