From 7459ea6f560b01290086a0919fc5808291973b33 Mon Sep 17 00:00:00 2001 From: sandman Date: Tue, 17 Dec 2002 19:23:17 +0000 Subject: - small fix to reset the palette when changing styles --- diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp index 2f3ba74..e9e0ad9 100644 --- a/noncore/settings/appearance2/appearance.cpp +++ b/noncore/settings/appearance2/appearance.cpp @@ -420,12 +420,14 @@ Appearance::Appearance( QWidget* parent, const char* name, WFlags ) OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom ); QWidget *styletab; - - tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance/style.png", tr( "Style" )); - tw-> addTab ( createFontTab ( tw, config ), "appearance/font.png", tr( "Font" )); - tw-> addTab ( createColorTab ( tw, config ), "appearance/color.png", tr( "Colors" ) ); - tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco.png", tr( "Windows" ) ); - tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "appearance/advanced.png", tr( "Advanced" ) ); + + m_color_list = 0; + + tw-> addTab ( styletab = createStyleTab ( tw, config ), "appearance/style", tr( "Style" )); + tw-> addTab ( createFontTab ( tw, config ), "appearance/font", tr( "Font" )); + tw-> addTab ( createColorTab ( tw, config ), "appearance/color", tr( "Colors" ) ); + tw-> addTab ( createDecoTab ( tw, config ), "appearance/deco", tr( "Windows" ) ); + tw-> addTab ( m_advtab = createAdvancedTab ( tw, config ), "appearance/advanced", tr( "Advanced" ) ); top-> addWidget ( tw, 10 ); top-> addWidget ( m_sample, 1 ); @@ -528,10 +530,13 @@ void Appearance::styleClicked ( int index ) { StyleListItem *sli = (StyleListItem *) m_style_list-> item ( index ); m_style_settings-> setEnabled ( sli ? sli-> hasSettings ( ) : false ); - - if ( m_sample && sli && sli-> style ( )) - m_sample-> setStyle2 ( sli-> style ( )); - + + if ( m_sample && sli && sli-> style ( )) { + int ci = m_color_list ? m_color_list-> currentItem ( ) : -1; + + m_sample-> setStyle2 ( sli-> style ( ), ci < 0 ? palette ( ) : ((ColorListItem *) m_color_list-> item ( ci ))-> palette ( )); + } + m_style_changed |= ( index != m_original_style ); } diff --git a/noncore/settings/appearance2/sample.cpp b/noncore/settings/appearance2/sample.cpp index 6bbed4b..b3a9d48 100644 --- a/noncore/settings/appearance2/sample.cpp +++ b/noncore/settings/appearance2/sample.cpp @@ -109,14 +109,14 @@ static void setStyleRecursive ( QWidget *w, QStyle *s ) } -void SampleWindow::setStyle2 ( QStyle *sty ) +void SampleWindow::setStyle2 ( QStyle *sty, const QPalette &pal ) { typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *, QColorGroup &, bool, bool); extern QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl); QPixmapCache::clear ( ); - QPalette p = palette ( ); + QPalette p = pal; // ette ( ); sty-> polish ( p ); qt_set_draw_menu_bar_impl ( 0 ); setStyleRecursive ( this, sty ); diff --git a/noncore/settings/appearance2/sample.h b/noncore/settings/appearance2/sample.h index c861228..27e6db5 100644 --- a/noncore/settings/appearance2/sample.h +++ b/noncore/settings/appearance2/sample.h @@ -47,7 +47,7 @@ public: virtual void setFont( const QFont &f ); - void setStyle2 ( QStyle *sty ); + void setStyle2 ( QStyle *sty, const QPalette &p ); void setDecoration( WindowDecorationInterface *i ); void setPalette ( const QPalette & ); -- cgit v0.9.0.2