summaryrefslogtreecommitdiffstats
path: root/tdeui
diff options
context:
space:
mode:
authorMavridis Philippe <mavridisf@gmail.com>2023-10-04 22:56:39 +0300
committerMavridis Philippe <mavridisf@gmail.com>2023-11-02 10:46:05 +0200
commit050ff82bcc94256581eaa840f39f5f7f08b33023 (patch)
treed6aff6583373a9f1e6b41c6df99051fe776c4015 /tdeui
parent10b5c67d722bd6c021ff9b5d2856410f1cca8e4a (diff)
downloadtdelibs-050ff82bcc94256581eaa840f39f5f7f08b33023.tar.gz
tdelibs-050ff82bcc94256581eaa840f39f5f7f08b33023.zip
KTabBar: add way to revert tab color to default
This commit adds a resetTabColor(...) method to TQTabBar and TQTabWidget which allows the color of the appropriate tab to be reset to the default as specified by the desktop color scheme. It also changes how invalid color values are handled; before, an invalid value would be used as a valid color, resulting in 0,0,0 (black). Seeing that an invalid color is returned by KColorDialog when the default color checkbox is checked, it makes more sense to ignore invalid colors, using the appropriate color from the color scheme instead. Signed-off-by: Mavridis Philippe <mavridisf@gmail.com> (cherry picked from commit c28a87c7d2e5c170a84bd8d1e7feece3ef9521ec)
Diffstat (limited to 'tdeui')
-rw-r--r--tdeui/ktabbar.cpp14
-rw-r--r--tdeui/ktabbar.h1
-rw-r--r--tdeui/ktabwidget.cpp8
-rw-r--r--tdeui/ktabwidget.h5
4 files changed, 26 insertions, 2 deletions
diff --git a/tdeui/ktabbar.cpp b/tdeui/ktabbar.cpp
index 29479c0e9..2dd2cc9a3 100644
--- a/tdeui/ktabbar.cpp
+++ b/tdeui/ktabbar.cpp
@@ -298,9 +298,19 @@ void KTabBar::setTabColor( int id, const TQColor& color )
}
}
+void KTabBar::resetTabColor( int id )
+{
+ TQTab *t = tab(id);
+ if (t) {
+ if (mTabColors.contains(id))
+ mTabColors.remove(id);
+ repaint(t->rect(), false);
+ }
+}
+
const TQColor &KTabBar::tabColor( int id ) const
{
- if ( mTabColors.contains( id ) )
+ if ( mTabColors.contains(id) && mTabColors[id].isValid() )
return mTabColors[id];
return colorGroup().foreground();
@@ -359,7 +369,7 @@ void KTabBar::paintLabel( TQPainter *p, const TQRect& br,
flags |= TQStyle::Style_HasFocus;
TQColorGroup cg( colorGroup() );
- if ( mTabColors.contains( t->identifier() ) )
+ if ( mTabColors.contains(t->identifier()) && mTabColors[t->identifier()].isValid() )
cg.setColor( TQColorGroup::Foreground, mTabColors[t->identifier()] );
style().drawControl( TQStyle::CE_TabBarLabel, p, this, r,
diff --git a/tdeui/ktabbar.h b/tdeui/ktabbar.h
index e31454253..c6602d0c6 100644
--- a/tdeui/ktabbar.h
+++ b/tdeui/ktabbar.h
@@ -44,6 +44,7 @@ public:
const TQColor &tabColor( int ) const;
void setTabColor( int, const TQColor& );
+ void resetTabColor( int );
virtual int insertTab( TQTab *, int index = -1 );
virtual void removeTab( TQTab * );
diff --git a/tdeui/ktabwidget.cpp b/tdeui/ktabwidget.cpp
index d6800ab9a..943598022 100644
--- a/tdeui/ktabwidget.cpp
+++ b/tdeui/ktabwidget.cpp
@@ -135,6 +135,14 @@ void KTabWidget::setTabColor( TQWidget *w, const TQColor& color )
}
}
+void KTabWidget::resetTabColor( TQWidget *w )
+{
+ TQTab *t = tabBar()->tabAt( indexOf( w ) );
+ if (t) {
+ static_cast<KTabBar*>(tabBar())->resetTabColor( t->identifier() );
+ }
+}
+
TQColor KTabWidget::tabColor( TQWidget *w ) const
{
TQTab *t = tabBar()->tabAt( indexOf( w ) );
diff --git a/tdeui/ktabwidget.h b/tdeui/ktabwidget.h
index b552229c9..1290e6307 100644
--- a/tdeui/ktabwidget.h
+++ b/tdeui/ktabwidget.h
@@ -56,6 +56,11 @@ public:
void setTabColor( TQWidget *, const TQColor& color );
/*!
+ Reset the color of the tab of the given widget.
+ */
+ void resetTabColor( TQWidget * );
+
+ /*!
Returns the tab color for the given widget.
*/
TQColor tabColor( TQWidget * ) const;