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
@@ -305,51 +305,61 @@ void PhaseStyle::drawPhaseGradient(QPainter* painter,
305void PhaseStyle::polish( QWidget* widget ) { 305void PhaseStyle::polish( QWidget* widget ) {
306 QWindowsStyle::polish(widget ); 306 QWindowsStyle::polish(widget );
307 307
308#if 0 308#if 0
309 if (widget->inherits("QMenuBar") || 309 if (widget->inherits("QMenuBar") ||
310 widget->inherits("QPopupMenu" ) || 310 widget->inherits("QPopupMenu" ) ||
311 widget->inherits("QToolButton") || 311 widget->inherits("QToolButton") ||
312 widget->inherits("QHeader" ) ) { 312 widget->inherits("QHeader" ) ) {
313 widget->setBackgroundMode(QWidget::NoBackground); 313 widget->setBackgroundMode(QWidget::NoBackground);
314 } 314 }
315// else if (widget->inherits("QFrame") ) { 315// else if (widget->inherits("QFrame") ) {
316// widget->installEventFilter(this); 316// widget->installEventFilter(this);
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
325 pal.setColor(QPalette::Disabled, QColorGroup::Dark, 330 pal.setColor(QPalette::Disabled, QColorGroup::Dark,
326 pal.color(QPalette::Disabled, QColorGroup::Dark).light(contrast)); 331 pal.color(QPalette::Disabled, QColorGroup::Dark).light(contrast));
327 pal.setColor(QPalette::Active, QColorGroup::Dark, 332 pal.setColor(QPalette::Active, QColorGroup::Dark,
328 pal.color(QPalette::Active, QColorGroup::Dark).light(contrast)); 333 pal.color(QPalette::Active, QColorGroup::Dark).light(contrast));
329 pal.setColor(QPalette::Inactive, QColorGroup::Dark, 334 pal.setColor(QPalette::Inactive, QColorGroup::Dark,
330 pal.color(QPalette::Inactive, QColorGroup::Dark).light(contrast)); 335 pal.color(QPalette::Inactive, QColorGroup::Dark).light(contrast));
331 } 336 }
332} 337}
333 338
334void PhaseStyle::polish( QApplication* app ) { 339void PhaseStyle::polish( QApplication* app ) {
335 QWindowsStyle::polish( app ); 340 QWindowsStyle::polish( 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();
344 int x, y, w, h; 354 int x, y, w, h;
345 r.rect( &x, &y, &w, &h ); 355 r.rect( &x, &y, &w, &h );
346 bool sunken = false; 356 bool sunken = false;
347 QIconSet::Mode mode; 357 QIconSet::Mode mode;
348 QPixmap pixmap; 358 QPixmap pixmap;
349 359
350 if (active) {// shift contents 360 if (active) {// shift contents
351 x++; y++; 361 x++; y++;
352 sunken = true; 362 sunken = true;
353 } 363 }
354 364
355 365
@@ -618,41 +628,41 @@ void PhaseStyle::drawPopupMenuItem ( QPainter * p, bool checkable,
618 QRect rect(x, y, w, h ); 628 QRect rect(x, y, w, h );
619 int x2, y2; 629 int x2, y2;
620 x2 = rect.right(); 630 x2 = rect.right();
621 y2 = rect.bottom(); 631 y2 = rect.bottom();
622 const QColorGroup& g = pal.active(); 632 const QColorGroup& g = pal.active();
623 QColorGroup itemg = !enabled ? pal.disabled() : pal.active(); 633 QColorGroup itemg = !enabled ? pal.disabled() : pal.active();
624 634
625 if ( checkable || maxpmw ) maxpmw = QMAX(maxpmw, 20); 635 if ( checkable || maxpmw ) maxpmw = QMAX(maxpmw, 20);
626 636
627 if (act && enabled ) 637 if (act && enabled )
628 p->fillRect(x, y, w, h, g.highlight() ); 638 p->fillRect(x, y, w, h, g.highlight() );
629 else 639 else
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
647 // draw icon 657 // draw icon
648 QIconSet::Mode mode; 658 QIconSet::Mode mode;
649 if ( mi->iconSet() && !mi->isChecked() ) { 659 if ( mi->iconSet() && !mi->isChecked() ) {
650 if ( act ) 660 if ( act )
651 mode = enabled ? QIconSet::Active : QIconSet::Disabled; 661 mode = enabled ? QIconSet::Active : QIconSet::Disabled;
652 else 662 else
653 mode = enabled ? QIconSet::Normal : QIconSet::Disabled; 663 mode = enabled ? QIconSet::Normal : QIconSet::Disabled;
654 QPixmap pixmap = mi->iconSet()->pixmap(QIconSet::Small, mode ); 664 QPixmap pixmap = mi->iconSet()->pixmap(QIconSet::Small, mode );
655 QRect pmrect(0, 0, pixmap.width(), pixmap.height() ); 665 QRect pmrect(0, 0, pixmap.width(), pixmap.height() );
656 QRect cr(x, y, maxpmw, h ); 666 QRect cr(x, y, maxpmw, h );
657 pmrect.moveCenter( cr.center() ); 667 pmrect.moveCenter( cr.center() );
658 p->drawPixmap(pmrect.topLeft(), pixmap); 668 p->drawPixmap(pmrect.topLeft(), pixmap);
@@ -763,35 +773,35 @@ void PhaseStyle::tabbarMetrics( const QTabBar* t, int &hframe, int &vframe, int
763 773
764void PhaseStyle::drawTab(QPainter* painter, const QTabBar* bar, QTab* tab, 774void PhaseStyle::drawTab(QPainter* painter, const QTabBar* bar, QTab* tab,
765 bool selected ) { 775 bool selected ) {
766 bool edge = false; 776 bool edge = false;
767 int x, y, w, h; 777 int x, y, w, h;
768 QRect r = tab->rect(); 778 QRect r = tab->rect();
769 r.rect(&x,&y,&w,&h); 779 r.rect(&x,&y,&w,&h);
770 const int x2 = x+w-1; 780 const int x2 = x+w-1;
771 const int y2 = y+h-1; 781 const int y2 = y+h-1;
772 const QColorGroup &group = bar->colorGroup(); 782 const QColorGroup &group = bar->colorGroup();
773 783
774 784
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: {
786 if (!selected) { // shorten 796 if (!selected) { // shorten
787 y += 2; h -= 2; 797 y += 2; h -= 2;
788 } 798 }
789 if (selected) { 799 if (selected) {
790 painter->setPen(Qt::NoPen); 800 painter->setPen(Qt::NoPen);
791 painter->fillRect(x+1, y+1, w-1, h-1, 801 painter->fillRect(x+1, y+1, w-1, h-1,
792 group.brush(QColorGroup::Background)); 802 group.brush(QColorGroup::Background));
793 } else 803 } else
794 drawPhaseGradient(painter, QRect(x+1, y+1, w-1, h-2), 804 drawPhaseGradient(painter, QRect(x+1, y+1, w-1, h-2),
795 group.background().dark(contrast) ); 805 group.background().dark(contrast) );
796 806
797 807
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
@@ -27,35 +27,37 @@
27#ifndef PHASESTYLE_H 27#ifndef PHASESTYLE_H
28#define PHASESTYLE_H 28#define PHASESTYLE_H
29 29
30#include <qstyle.h> 30#include <qstyle.h>
31#include <qwindowsstyle.h> 31#include <qwindowsstyle.h>
32#include <qcolor.h> 32#include <qcolor.h>
33 33
34class KPixmap; 34class KPixmap;
35 35
36class PhaseStyle : public QWindowsStyle 36class PhaseStyle : public QWindowsStyle
37{ 37{
38 Q_OBJECT 38 Q_OBJECT
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,
50 bool act, bool dis ); 52 bool act, bool dis );
51 void drawArrow(QPainter *p, Qt::ArrowType type, bool down, 53 void drawArrow(QPainter *p, Qt::ArrowType type, bool down,
52 int x, int y, int w, int h, const QColorGroup &g, 54 int x, int y, int w, int h, const QColorGroup &g,
53 bool enabled=true, const QBrush *fill = 0); 55 bool enabled=true, const QBrush *fill = 0);
54 56
55 void drawPushButton(QPushButton* btn, QPainter* p ); 57 void drawPushButton(QPushButton* btn, QPainter* p );
56 void drawPushButtonLabel(QPushButton* btn, QPainter* p ); 58 void drawPushButtonLabel(QPushButton* btn, QPainter* p );
57 void drawPanel(QPainter* p, int , int, int, int, 59 void drawPanel(QPainter* p, int , int, int, int,
58 const QColorGroup&, bool sunken = false, 60 const QColorGroup&, bool sunken = false,
59 int lineWidth = 1, const QBrush *b = 0l ); 61 int lineWidth = 1, const QBrush *b = 0l );
60 void drawButton( QPainter*, int x, int y, int w, int h, 62 void drawButton( QPainter*, int x, int y, int w, int h,
61 const QColorGroup&, bool sunken = false, 63 const QColorGroup&, bool sunken = false,