author | alwin <alwin> | 2004-11-02 12:35:34 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-11-02 12:35:34 (UTC) |
commit | e246d0590286f6b9b0d5d40f1a17caa78c015b21 (patch) (side-by-side diff) | |
tree | 96195461536b3821482df56d4f7a0b6683092aed /noncore | |
parent | e83e5bd3f26270d61a83b8b91e07b35d2657d060 (diff) | |
download | opie-e246d0590286f6b9b0d5d40f1a17caa78c015b21.zip opie-e246d0590286f6b9b0d5d40f1a17caa78c015b21.tar.gz opie-e246d0590286f6b9b0d5d40f1a17caa78c015b21.tar.bz2 |
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.
-rw-r--r-- | noncore/styles/phase/phasestyle.cpp | 22 | ||||
-rw-r--r-- | noncore/styles/phase/phasestyle.h | 8 |
2 files changed, 21 insertions, 9 deletions
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, |