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();