author | alwin <alwin> | 2004-11-02 12:35:34 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-11-02 12:35:34 (UTC) |
commit | e246d0590286f6b9b0d5d40f1a17caa78c015b21 (patch) (unidiff) | |
tree | 96195461536b3821482df56d4f7a0b6683092aed | |
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 | |||
@@ -317,8 +317,13 @@ void PhaseStyle::polish( QWidget* widget ) { | |||
317 | // } | 317 | // } |
318 | #endif | 318 | #endif |
319 | } | 319 | } |
320 | 320 | ||
321 | void PhaseStyle::unPolish( QWidget *w ) | ||
322 | { | ||
323 | QWindowsStyle::unPolish( w ); | ||
324 | } | ||
325 | |||
321 | void PhaseStyle::polish( QPalette &pal ) { | 326 | void PhaseStyle::polish( QPalette &pal ) { |
322 | QWindowsStyle::polish( pal ); | 327 | QWindowsStyle::polish( pal ); |
323 | // lighten up a bit, so the look is not so "crisp" | 328 | // lighten up a bit, so the look is not so "crisp" |
324 | if (QPixmap::defaultDepth() > 8) { // but not on low color displays | 329 | if (QPixmap::defaultDepth() > 8) { // but not on low color displays |
@@ -336,8 +341,13 @@ void PhaseStyle::polish( QApplication* app ) { | |||
336 | 341 | ||
337 | qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl)&PhaseStyle::drawMenuBarItem); | 342 | qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl)&PhaseStyle::drawMenuBarItem); |
338 | } | 343 | } |
339 | 344 | ||
345 | void PhaseStyle::unPolish( QApplication* app ) { | ||
346 | QWindowsStyle::unPolish(app); | ||
347 | qt_set_draw_menu_bar_impl ( 0 ); | ||
348 | } | ||
349 | |||
340 | void PhaseStyle::drawPushButtonLabel (QPushButton *button, QPainter *painter) { | 350 | void PhaseStyle::drawPushButtonLabel (QPushButton *button, QPainter *painter) { |
341 | bool active = button->isOn() || button->isDown(); | 351 | bool active = button->isOn() || button->isDown(); |
342 | QRect r = pushButtonContentsRect( button ); | 352 | QRect r = pushButtonContentsRect( button ); |
343 | QColorGroup group = button->colorGroup(); | 353 | QColorGroup group = button->colorGroup(); |
@@ -630,17 +640,17 @@ void PhaseStyle::drawPopupMenuItem ( QPainter * p, bool checkable, | |||
630 | p->fillRect(x, y, w, h, g.background() ); | 640 | p->fillRect(x, y, w, h, g.background() ); |
631 | 641 | ||
632 | // draw seperator | 642 | // draw seperator |
633 | if (mi->isSeparator() ) { | 643 | if (mi->isSeparator() ) { |
634 | p->setPen( g.dark() ); | 644 | p->setPen( g.dark() ); |
635 | p->drawLine( x+8, y+1, x+w-8, y+1 ); | 645 | p->drawLine( x+8, y+1, x+w-8, y+1 ); |
636 | 646 | ||
637 | p->setPen( g.mid() ); | 647 | p->setPen( g.mid() ); |
638 | p->drawLine( x+8, y, x+w-8, y ); | 648 | p->drawLine( x+8, y, x+w-8, y ); |
639 | p->drawPoint(x+w,y+1); | 649 | p->drawPoint(x+w,y+1); |
640 | 650 | ||
641 | p->setPen( g.midlight() ); | 651 | p->setPen( g.midlight() ); |
642 | p->drawLine( x+8, y-1, x+w-8, y-1 ); | 652 | p->drawLine( x+8, y-1, x+w-8, y-1 ); |
643 | p->drawPoint(x+8, y ); | 653 | p->drawPoint(x+8, y ); |
644 | return; | 654 | return; |
645 | } | 655 | } |
646 | 656 | ||
@@ -775,11 +785,11 @@ void PhaseStyle::drawTab(QPainter* painter, const QTabBar* bar, QTab* tab, | |||
775 | painter->save(); | 785 | painter->save(); |
776 | 786 | ||
777 | // what position is the tab? | 787 | // what position is the tab? |
778 | if ((bar->count() == 1 )) | 788 | if ((bar->count() == 1 )) |
779 | edge = true; | 789 | edge = true; |
780 | else | 790 | else |
781 | edge = false; | 791 | edge = false; |
782 | 792 | ||
783 | switch (QTabBar::Shape(bar->shape())) { | 793 | switch (QTabBar::Shape(bar->shape())) { |
784 | case QTabBar::RoundedAbove: | 794 | case QTabBar::RoundedAbove: |
785 | case QTabBar::TriangularAbove: { | 795 | case QTabBar::TriangularAbove: { |
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 | |||
@@ -39,11 +39,13 @@ class PhaseStyle : public QWindowsStyle | |||
39 | public: | 39 | public: |
40 | PhaseStyle(); | 40 | PhaseStyle(); |
41 | virtual ~PhaseStyle(); | 41 | virtual ~PhaseStyle(); |
42 | 42 | ||
43 | void polish( QWidget * ); | 43 | virtual void polish( QWidget * ); |
44 | void polish( QPalette& ); | 44 | virtual void polish( QPalette& ); |
45 | void polish( QApplication* ); | 45 | virtual void polish( QApplication* a); |
46 | virtual void unPolish( QWidget * ); | ||
47 | virtual void unPolish(QApplication *a); | ||
46 | 48 | ||
47 | 49 | ||
48 | void drawCheckMark ( QPainter * p, int x, int y, int w, | 50 | void drawCheckMark ( QPainter * p, int x, int y, int w, |
49 | int h, const QColorGroup & g, | 51 | int h, const QColorGroup & g, |