diff --git a/kdevplatform/shell/settings/uiconfig.kcfg b/kdevplatform/shell/settings/uiconfig.kcfg index 6c9691bb02a7fc52b7b1d1223d82c38fbc3add18..25c8737c120d02a434d7406d19ca2052427ec192 100644 --- a/kdevplatform/shell/settings/uiconfig.kcfg +++ b/kdevplatform/shell/settings/uiconfig.kcfg @@ -12,6 +12,9 @@ 1 + + 1 + 1 diff --git a/kdevplatform/shell/settings/uiconfig.ui b/kdevplatform/shell/settings/uiconfig.ui index 81b41ed7a8348f8116341c234f5e50a1113018ed..ed02382af1cb3f22075ace6465471807f2b68e9b 100644 --- a/kdevplatform/shell/settings/uiconfig.ui +++ b/kdevplatform/shell/settings/uiconfig.ui @@ -86,7 +86,7 @@ Tabbed Browsing - + Controls whether to open new tabs next to the active one. @@ -99,7 +99,7 @@ - + When enabled, plugins can group related files side by side. @@ -123,6 +123,19 @@ For example, a header file will be opened next to the implementation file. + + + + Enables or disables the display of a close button in each tab in the tab bar at the top of the editor window. + + + Show close buttons on tabs + + + true + + + @@ -191,5 +204,21 @@ For example, a header file will be opened next to the implementation file. + + kcfg_TabBarVisibility + toggled(bool) + kcfg_CloseButtonsOnTabs + setEnabled(bool) + + + 260 + 133 + + + 260 + 158 + + + diff --git a/kdevplatform/sublime/container.cpp b/kdevplatform/sublime/container.cpp index 003e0a0f7e415b0b7a30f76ef8bd6425c1d51a6d..ba16c5dc581afecf3a3b04f6f79e8591c236d803 100644 --- a/kdevplatform/sublime/container.cpp +++ b/kdevplatform/sublime/container.cpp @@ -365,7 +365,7 @@ Container::Container(QWidget *parent) setTabBarHidden(!configTabBarVisible()); - d->tabBar->setTabsClosable(true); + d->tabBar->setTabsClosable(configCloseButtonsOnTabs()); d->tabBar->setMovable(true); d->tabBar->setExpanding(false); d->tabBar->setSelectionBehaviorOnRemove(QTabBar::SelectPreviousTab); @@ -379,6 +379,12 @@ bool Container::configTabBarVisible() return group.readEntry("TabBarVisibility", 1); } +bool Container::configCloseButtonsOnTabs() +{ + KConfigGroup group = KSharedConfig::openConfig()->group("UiSettings"); + return group.readEntry("CloseButtonsOnTabs", 1); +} + void Container::setLeftCornerWidget(QWidget* widget) { Q_D(Container); @@ -632,6 +638,13 @@ void Container::setTabBarHidden(bool hide) } } +void Container::setCloseButtonsOnTabs(bool show) +{ + Q_D(Container); + + d->tabBar->setTabsClosable(show); +} + void Container::resetTabColors(const QColor& color) { Q_D(Container); diff --git a/kdevplatform/sublime/container.h b/kdevplatform/sublime/container.h index 3cb613e6a2e1ae0557476782ead620872dbfa8d6..046fb35f0de7354680d836d7808073f28e92d904 100644 --- a/kdevplatform/sublime/container.h +++ b/kdevplatform/sublime/container.h @@ -61,6 +61,7 @@ public: View *viewForWidget(QWidget *w) const; void setTabBarHidden(bool hide); + void setCloseButtonsOnTabs(bool show); void setTabColor(const View* view, const QColor& color); void setTabColors(const QHash& colors); @@ -76,6 +77,7 @@ public: QRect tabRect(int tab) const; static bool configTabBarVisible(); + static bool configCloseButtonsOnTabs(); Q_SIGNALS: void activateView(Sublime::View* view); diff --git a/kdevplatform/sublime/mainwindow.cpp b/kdevplatform/sublime/mainwindow.cpp index 507b6feb18694e084387f79b9ef765de18a6f03a..0b36845894e0ea391ef52203295cb3ce3474c213 100644 --- a/kdevplatform/sublime/mainwindow.cpp +++ b/kdevplatform/sublime/mainwindow.cpp @@ -351,8 +351,10 @@ void MainWindow::loadSettings() } const bool tabBarHidden = !Container::configTabBarVisible(); + const bool closeButtonsOnTabs = Container::configCloseButtonsOnTabs(); for (Container *container : qAsConst(d->viewContainers)) { container->setTabBarHidden(tabBarHidden); + container->setCloseButtonsOnTabs(closeButtonsOnTabs); } hu.stop();