From e246d0590286f6b9b0d5d40f1a17caa78c015b21 Mon Sep 17 00:00:00 2001 From: alwin Date: Tue, 02 Nov 2004 12:35:34 +0000 Subject: uiuiui - fixed a bug which let running applications crash if switched style from phase to any other. Reason was that in phase-style a special menubaritem- drawroutine was set but not RESET to qte default if this style was removed I'd implemented the unPolish routine and just set this callback to 0 (qt-default) and now it works nice. --- (limited to 'noncore/styles') diff --git a/noncore/styles/phase/phasestyle.cpp b/noncore/styles/phase/phasestyle.cpp index ba8c460..906ccee 100644 --- a/noncore/styles/phase/phasestyle.cpp +++ b/noncore/styles/phase/phasestyle.cpp @@ -318,6 +318,11 @@ void PhaseStyle::polish( QWidget* widget ) { #endif } +void PhaseStyle::unPolish( QWidget *w ) +{ + QWindowsStyle::unPolish( w ); +} + void PhaseStyle::polish( QPalette &pal ) { QWindowsStyle::polish( pal ); // lighten up a bit, so the look is not so "crisp" @@ -337,6 +342,11 @@ void PhaseStyle::polish( QApplication* app ) { qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl)&PhaseStyle::drawMenuBarItem); } +void PhaseStyle::unPolish( QApplication* app ) { + QWindowsStyle::unPolish(app); + qt_set_draw_menu_bar_impl ( 0 ); +} + void PhaseStyle::drawPushButtonLabel (QPushButton *button, QPainter *painter) { bool active = button->isOn() || button->isDown(); QRect r = pushButtonContentsRect( button ); @@ -631,15 +641,15 @@ void PhaseStyle::drawPopupMenuItem ( QPainter * p, bool checkable, // draw seperator if (mi->isSeparator() ) { - p->setPen( g.dark() ); - p->drawLine( x+8, y+1, x+w-8, y+1 ); + p->setPen( g.dark() ); + p->drawLine( x+8, y+1, x+w-8, y+1 ); p->setPen( g.mid() ); p->drawLine( x+8, y, x+w-8, y ); p->drawPoint(x+w,y+1); - p->setPen( g.midlight() ); - p->drawLine( x+8, y-1, x+w-8, y-1 ); + p->setPen( g.midlight() ); + p->drawLine( x+8, y-1, x+w-8, y-1 ); p->drawPoint(x+8, y ); return; } @@ -776,9 +786,9 @@ void PhaseStyle::drawTab(QPainter* painter, const QTabBar* bar, QTab* tab, // what position is the tab? if ((bar->count() == 1 )) - edge = true; + edge = true; else - edge = false; + edge = false; switch (QTabBar::Shape(bar->shape())) { case QTabBar::RoundedAbove: diff --git a/noncore/styles/phase/phasestyle.h b/noncore/styles/phase/phasestyle.h index cbaa534..ae53efe 100644 --- a/noncore/styles/phase/phasestyle.h +++ b/noncore/styles/phase/phasestyle.h @@ -40,9 +40,11 @@ public: PhaseStyle(); virtual ~PhaseStyle(); - void polish( QWidget * ); - void polish( QPalette& ); - void polish( QApplication* ); + virtual void polish( QWidget * ); + virtual void polish( QPalette& ); + virtual void polish( QApplication* a); + virtual void unPolish( QWidget * ); + virtual void unPolish(QApplication *a); void drawCheckMark ( QPainter * p, int x, int y, int w, -- cgit v0.9.0.2