From 369d0dc5d6dc8b37ca057b6acfbb01a945dccb66 Mon Sep 17 00:00:00 2001 From: Méven Car Date: Sat, 7 Feb 2026 12:58:48 +0100 Subject: tabbar: readd auto-with tab width and make it default --- src/dolphintabbar.cpp | 6 +++++- src/settings/dolphin_generalsettings.kcfg | 3 ++- src/settings/interface/folderstabssettingspage.cpp | 25 +++++++++++++++------- src/settings/interface/folderstabssettingspage.h | 5 +++-- 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 @@ + - 0 + EnumTabStyle::AutoSize 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; -- cgit v1.3