summaryrefslogtreecommitdiff
authoralwin <alwin>2004-11-02 12:35:34 (UTC)
committer alwin <alwin>2004-11-02 12:35:34 (UTC)
commite246d0590286f6b9b0d5d40f1a17caa78c015b21 (patch) (unidiff)
tree96195461536b3821482df56d4f7a0b6683092aed
parente83e5bd3f26270d61a83b8b91e07b35d2657d060 (diff)
downloadopie-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.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/styles/phase/phasestyle.cpp22
-rw-r--r--noncore/styles/phase/phasestyle.h8
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
321void PhaseStyle::unPolish( QWidget *w )
322{
323 QWindowsStyle::unPolish( w );
324}
325
321void PhaseStyle::polish( QPalette &pal ) { 326void 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
345void PhaseStyle::unPolish( QApplication* app ) {
346 QWindowsStyle::unPolish(app);
347 qt_set_draw_menu_bar_impl ( 0 );
348}
349
340void PhaseStyle::drawPushButtonLabel (QPushButton *button, QPainter *painter) { 350void 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
39public: 39public:
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,