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(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 @@ -55,6 +55,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. */