diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphinmainwindow.cpp | 7 | ||||
| -rw-r--r-- | src/dolphinmainwindow.h | 3 | ||||
| -rw-r--r-- | src/dolphintabwidget.cpp | 3 | ||||
| -rw-r--r-- | src/settings/dolphin_generalsettings.kcfg | 11 | ||||
| -rw-r--r-- | src/settings/interface/folderstabssettingspage.cpp | 16 | ||||
| -rw-r--r-- | src/settings/interface/folderstabssettingspage.h | 3 |
6 files changed, 42 insertions, 1 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 018a6c95a..4d3fedbce 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -263,6 +263,7 @@ DolphinMainWindow::DolphinMainWindow() setupFileItemActions(); }); connect(GeneralSettings::self(), &GeneralSettings::splitViewChanged, this, &DolphinMainWindow::slotSplitViewChanged); + connect(GeneralSettings::self(), &GeneralSettings::tabBarChanged, this, &DolphinMainWindow::slotTabBarChanged); } DolphinMainWindow::~DolphinMainWindow() @@ -528,6 +529,12 @@ void DolphinMainWindow::slotSplitViewChanged() updateSplitActions(); } +void DolphinMainWindow::slotTabBarChanged() +{ + m_tabWidget->setTabBarAutoHide(!GeneralSettings::alwaysShowTabBar()); + m_tabWidget->tabBar()->setTabsClosable(GeneralSettings::showCloseButtonOnTabs()); +} + void DolphinMainWindow::openInNewTab() { const KFileItemList &list = m_activeViewContainer->view()->selectedItems(); diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index a05fa1227..9c21e291b 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -228,6 +228,9 @@ public Q_SLOTS: /** @see GeneralSettings::splitViewChanged() */ void slotSplitViewChanged(); + /** @see GeneralSettings::tabBarChanged() */ + void slotTabBarChanged(); + Q_SIGNALS: /** * Is sent if the selection of the currently active view has diff --git a/src/dolphintabwidget.cpp b/src/dolphintabwidget.cpp index 044586eb9..bbf80e4bf 100644 --- a/src/dolphintabwidget.cpp +++ b/src/dolphintabwidget.cpp @@ -44,7 +44,8 @@ DolphinTabWidget::DolphinTabWidget(DolphinNavigatorsWidgetAction *navigatorsWidg setDocumentMode(true); setElideMode(Qt::ElideRight); setUsesScrollButtons(true); - setTabBarAutoHide(true); + setTabBarAutoHide(!GeneralSettings::alwaysShowTabBar()); + tabBar->setTabsClosable(GeneralSettings::showCloseButtonOnTabs()); auto stackWidget{findChild<QStackedWidget *>()}; // i18n: This accessible name will be announced any time the user moves keyboard focus e.g. from the toolbar or the places panel towards the main working diff --git a/src/settings/dolphin_generalsettings.kcfg b/src/settings/dolphin_generalsettings.kcfg index 01ce316f4..d515a573d 100644 --- a/src/settings/dolphin_generalsettings.kcfg +++ b/src/settings/dolphin_generalsettings.kcfg @@ -8,6 +8,7 @@ <include>QUrl</include> <include>KCompletion</include> <kcfgfile name="dolphinrc"/> + <signal name="tabBarChanged" /> <signal name="sortingChoiceChanged" /> <signal name="splitViewChanged" /> <signal name="showStatusBarChanged"> @@ -41,6 +42,16 @@ <label>Should an externally called folder open in a new tab in an existing Dolphin instance</label> <default>false</default> </entry> + <entry name="AlwaysShowTabBar" type="Bool"> + <label>Should the tab bar always be shown, even when there is only one tab</label> + <default>false</default> + <emit signal="tabBarChanged" /> + </entry> + <entry name="ShowCloseButtonOnTabs" type="Bool"> + <label>Should tabs have close buttons</label> + <default>true</default> + <emit signal="tabBarChanged" /> + </entry> <entry name="Version" type="Int"> <label>Internal config version of Dolphin, mainly Used to determine whether an updated version of Dolphin is running, so as to migrate config entries that were removed/renamed ...etc</label> <default>0</default> diff --git a/src/settings/interface/folderstabssettingspage.cpp b/src/settings/interface/folderstabssettingspage.cpp index 1dbed5a69..7fa34cd6e 100644 --- a/src/settings/interface/folderstabssettingspage.cpp +++ b/src/settings/interface/folderstabssettingspage.cpp @@ -36,6 +36,8 @@ FoldersTabsSettingsPage::FoldersTabsSettingsPage(QWidget *parent) , m_homeUrlRadioButton(nullptr) , m_homeUrl(nullptr) , m_rememberOpenedTabsRadioButton(nullptr) + , m_alwaysShowTabBar(nullptr) + , m_showCloseButtonOnTabs(nullptr) , m_openNewTabAfterLastTab(nullptr) , m_openNewTabAfterCurrentTab(nullptr) , m_splitView(nullptr) @@ -117,6 +119,11 @@ FoldersTabsSettingsPage::FoldersTabsSettingsPage(QWidget *parent) topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed)); // Tabs properties + m_alwaysShowTabBar = new QCheckBox(i18nc("@option:check", "Always show tab bar")); + topLayout->addRow(i18nc("@label:checkbox", "Tab bar:"), m_alwaysShowTabBar); + m_showCloseButtonOnTabs = new QCheckBox(i18nc("@option:check", "Show close button on tabs")); + topLayout->addRow(QString(), m_showCloseButtonOnTabs); + m_openNewTabAfterCurrentTab = new QRadioButton(i18nc("option:radio", "After current tab")); m_openNewTabAfterLastTab = new QRadioButton(i18nc("option:radio", "At end of tab bar")); QButtonGroup *tabsBehaviorGroup = new QButtonGroup(this); @@ -165,6 +172,9 @@ FoldersTabsSettingsPage::FoldersTabsSettingsPage(QWidget *parent) connect(m_closeSplitComboBox, qOverload<int>(&QComboBox::currentIndexChanged), this, &FoldersTabsSettingsPage::changed); + connect(m_alwaysShowTabBar, &QCheckBox::toggled, this, &FoldersTabsSettingsPage::changed); + connect(m_showCloseButtonOnTabs, &QCheckBox::toggled, this, &FoldersTabsSettingsPage::changed); + connect(m_openNewTabAfterCurrentTab, &QRadioButton::toggled, this, &FoldersTabsSettingsPage::changed); connect(m_openNewTabAfterLastTab, &QRadioButton::toggled, this, &FoldersTabsSettingsPage::changed); } @@ -209,6 +219,9 @@ void FoldersTabsSettingsPage::applySettings() settings->setOpenExternallyCalledFolderInNewTab(m_openExternallyCalledFolderInNewTab->isChecked()); settings->setShowFullPathInTitlebar(m_showFullPathInTitlebar->isChecked()); + settings->setAlwaysShowTabBar(m_alwaysShowTabBar->isChecked()); + settings->setShowCloseButtonOnTabs(m_showCloseButtonOnTabs->isChecked()); + settings->setOpenNewTabAfterLastTab(m_openNewTabAfterLastTab->isChecked()); settings->save(); @@ -289,6 +302,9 @@ void FoldersTabsSettingsPage::loadSettings() m_closeSplitComboBox->setCurrentIndex(GeneralSettings::closeSplitViewChoice()); + m_alwaysShowTabBar->setChecked(GeneralSettings::alwaysShowTabBar()); + m_showCloseButtonOnTabs->setChecked(GeneralSettings::showCloseButtonOnTabs()); + m_openNewTabAfterLastTab->setChecked(GeneralSettings::openNewTabAfterLastTab()); m_openNewTabAfterCurrentTab->setChecked(!m_openNewTabAfterLastTab->isChecked()); } diff --git a/src/settings/interface/folderstabssettingspage.h b/src/settings/interface/folderstabssettingspage.h index ae104cc7e..894d69898 100644 --- a/src/settings/interface/folderstabssettingspage.h +++ b/src/settings/interface/folderstabssettingspage.h @@ -56,6 +56,9 @@ private: QLineEdit *m_homeUrl; QRadioButton *m_rememberOpenedTabsRadioButton; + QCheckBox* m_alwaysShowTabBar; + QCheckBox* m_showCloseButtonOnTabs; + QRadioButton *m_openNewTabAfterLastTab; QRadioButton *m_openNewTabAfterCurrentTab; |
