┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMéven Car <[email protected]>2026-02-07 12:58:48 +0100
committerMéven Car <[email protected]>2026-02-10 19:08:33 +0000
commit369d0dc5d6dc8b37ca057b6acfbb01a945dccb66 (patch)
treec78264e9629fecb36368a66687048144a45377ca
parent1bb45e6361c44760be401dee040b47a5f3afb2ec (diff)
tabbar: readd auto-with tab width and make it default
-rw-r--r--src/dolphintabbar.cpp6
-rw-r--r--src/settings/dolphin_generalsettings.kcfg3
-rw-r--r--src/settings/interface/folderstabssettingspage.cpp25
-rw-r--r--src/settings/interface/folderstabssettingspage.h5
4 files changed, 27 insertions, 12 deletions
diff --git a/src/dolphintabbar.cpp b/src/dolphintabbar.cpp
index b2a305a27..1b8236abb 100644
--- a/src/dolphintabbar.cpp
+++ b/src/dolphintabbar.cpp
@@ -76,7 +76,7 @@ QSize DolphinTabBar::minimumSizeHint() const
{
QSize s = QTabBar::minimumSizeHint();
- if (GeneralSettings::tabStyle() != GeneralSettings::EnumTabStyle::FixedSize) {
+ if (GeneralSettings::tabStyle() == GeneralSettings::EnumTabStyle::FullWidth) {
s.setWidth(0); // allow shrinking
}
@@ -226,7 +226,11 @@ void DolphinTabBar::slotTabBarChanged()
} else if (GeneralSettings::tabStyle() == GeneralSettings::EnumTabStyle::FullWidth) {
setExpanding(true);
setUsesScrollButtons(false);
+ } else {
+ setExpanding(false);
+ setUsesScrollButtons(true);
}
+
updateGeometry();
}
diff --git a/src/settings/dolphin_generalsettings.kcfg b/src/settings/dolphin_generalsettings.kcfg
index bb09cbaef..48fecb2d0 100644
--- a/src/settings/dolphin_generalsettings.kcfg
+++ b/src/settings/dolphin_generalsettings.kcfg
@@ -55,10 +55,11 @@
<entry name="TabStyle" type="Enum">
<label>Tab style</label>
<choices>
+ <choice name="AutoSize" />
<choice name="FullWidth" />
<choice name="FixedSize" />
</choices>
- <default>0</default> <!--FullWidth -->
+ <default code="true">EnumTabStyle::AutoSize</default>
<emit signal="tabBarChanged" />
</entry>
<entry name="Version" type="Int">
diff --git a/src/settings/interface/folderstabssettingspage.cpp b/src/settings/interface/folderstabssettingspage.cpp
index 547241d0d..2795449b9 100644
--- a/src/settings/interface/folderstabssettingspage.cpp
+++ b/src/settings/interface/folderstabssettingspage.cpp
@@ -38,8 +38,6 @@ FoldersTabsSettingsPage::FoldersTabsSettingsPage(QWidget *parent)
, m_rememberOpenedTabsRadioButton(nullptr)
, m_alwaysShowTabBar(nullptr)
, m_showCloseButtonOnTabs(nullptr)
- , m_tabStyleFullWidth(nullptr)
- , m_tabStyleFixed(nullptr)
, m_openNewTabAfterLastTab(nullptr)
, m_openNewTabAfterCurrentTab(nullptr)
, m_splitView(nullptr)
@@ -122,17 +120,20 @@ FoldersTabsSettingsPage::FoldersTabsSettingsPage(QWidget *parent)
// Tabs properties
m_alwaysShowTabBar = new QCheckBox(i18nc("@option:check", "Always show tab bar"));
- topLayout->addRow(i18nc("@label:checkbox", "Tab bar:"), m_alwaysShowTabBar);
+ topLayout->addRow(i18nc("@label:checkbox", "Tab width:"), m_alwaysShowTabBar);
m_showCloseButtonOnTabs = new QCheckBox(i18nc("@option:check", "Show close button on tabs"));
topLayout->addRow(QString(), m_showCloseButtonOnTabs);
+ m_tabStyleAutoWidth = new QRadioButton(i18nc("@option:radio size as in tab width", "Tab width adapts to folder name"));
+ m_tabStyleFixed = new QRadioButton(i18nc("@option:radio size as in tab width", "Tabs all have the same fixed width"));
m_tabStyleFullWidth = new QRadioButton(i18nc("@option:radio width as in tab width", "Tabs span the available width"));
- m_tabStyleFixed = new QRadioButton(i18nc("@option:radio size as in tab size", "Tabs have all the same fixed size"));
QButtonGroup *tabStyleGroup = new QButtonGroup(this);
- tabStyleGroup->addButton(m_tabStyleFullWidth);
+ tabStyleGroup->addButton(m_tabStyleAutoWidth);
tabStyleGroup->addButton(m_tabStyleFixed);
- topLayout->addRow(i18nc("@title:group", "Tab style: "), m_tabStyleFullWidth);
+ tabStyleGroup->addButton(m_tabStyleFullWidth);
+ topLayout->addRow(i18nc("@title:group", "Tab style: "), m_tabStyleAutoWidth);
topLayout->addRow(QString(), m_tabStyleFixed);
+ topLayout->addRow(QString(), m_tabStyleFullWidth);
m_openNewTabAfterCurrentTab = new QRadioButton(i18nc("option:radio", "After current tab"));
m_openNewTabAfterLastTab = new QRadioButton(i18nc("option:radio", "At end of tab bar"));
@@ -188,6 +189,7 @@ FoldersTabsSettingsPage::FoldersTabsSettingsPage(QWidget *parent)
connect(m_openNewTabAfterCurrentTab, &QRadioButton::toggled, this, &FoldersTabsSettingsPage::changed);
connect(m_openNewTabAfterLastTab, &QRadioButton::toggled, this, &FoldersTabsSettingsPage::changed);
+ connect(m_tabStyleAutoWidth, &QRadioButton::toggled, this, &FoldersTabsSettingsPage::slotSettingsChanged);
connect(m_tabStyleFixed, &QRadioButton::toggled, this, &FoldersTabsSettingsPage::slotSettingsChanged);
connect(m_tabStyleFullWidth, &QRadioButton::toggled, this, &FoldersTabsSettingsPage::slotSettingsChanged);
}
@@ -235,7 +237,13 @@ void FoldersTabsSettingsPage::applySettings()
settings->setOpenNewTabAfterLastTab(m_openNewTabAfterLastTab->isChecked());
- settings->setTabStyle(m_tabStyleFullWidth->isChecked() ? GeneralSettings::EnumTabStyle::FullWidth : GeneralSettings::EnumTabStyle::FixedSize);
+ if (m_tabStyleFixed->isChecked()) {
+ settings->setTabStyle(GeneralSettings::EnumTabStyle::FixedSize);
+ } else if (m_tabStyleFullWidth->isChecked()) {
+ settings->setTabStyle(GeneralSettings::EnumTabStyle::FullWidth);
+ } else {
+ settings->setTabStyle(GeneralSettings::EnumTabStyle::AutoSize);
+ }
settings->save();
}
@@ -321,8 +329,9 @@ void FoldersTabsSettingsPage::loadSettings()
m_openNewTabAfterLastTab->setChecked(GeneralSettings::openNewTabAfterLastTab());
m_openNewTabAfterCurrentTab->setChecked(!m_openNewTabAfterLastTab->isChecked());
+ m_tabStyleAutoWidth->setChecked(GeneralSettings::tabStyle() == GeneralSettings::EnumTabStyle::AutoSize);
m_tabStyleFixed->setChecked(GeneralSettings::tabStyle() == GeneralSettings::EnumTabStyle::FixedSize);
- m_tabStyleFullWidth->setChecked(!m_tabStyleFixed->isChecked());
+ m_tabStyleFullWidth->setChecked(GeneralSettings::tabStyle() == GeneralSettings::EnumTabStyle::FullWidth);
}
void FoldersTabsSettingsPage::showSetDefaultDirectoryError()
diff --git a/src/settings/interface/folderstabssettingspage.h b/src/settings/interface/folderstabssettingspage.h
index 54cdceda6..690407b39 100644
--- a/src/settings/interface/folderstabssettingspage.h
+++ b/src/settings/interface/folderstabssettingspage.h
@@ -59,8 +59,9 @@ private:
QCheckBox* m_alwaysShowTabBar;
QCheckBox* m_showCloseButtonOnTabs;
- QRadioButton *m_tabStyleFullWidth;
- QRadioButton *m_tabStyleFixed;
+ QRadioButton *m_tabStyleAutoWidth = nullptr;
+ QRadioButton *m_tabStyleFixed = nullptr;
+ QRadioButton *m_tabStyleFullWidth = nullptr;
QRadioButton *m_openNewTabAfterLastTab;
QRadioButton *m_openNewTabAfterCurrentTab;