summaryrefslogtreecommitdiff
authoralwin <alwin>2004-11-02 12:35:34 (UTC)
committer alwin <alwin>2004-11-02 12:35:34 (UTC)
commite246d0590286f6b9b0d5d40f1a17caa78c015b21 (patch) (side-by-side diff)
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) (show whitespace changes)
-rw-r--r--noncore/styles/phase/phasestyle.cpp10
-rw-r--r--noncore/styles/phase/phasestyle.h8
2 files changed, 15 insertions, 3 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
@@ -309,43 +309,53 @@ void PhaseStyle::polish( QWidget* widget ) {
if (widget->inherits("QMenuBar") ||
widget->inherits("QPopupMenu" ) ||
widget->inherits("QToolButton") ||
widget->inherits("QHeader" ) ) {
widget->setBackgroundMode(QWidget::NoBackground);
}
// else if (widget->inherits("QFrame") ) {
// widget->installEventFilter(this);
// }
#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"
if (QPixmap::defaultDepth() > 8) { // but not on low color displays
pal.setColor(QPalette::Disabled, QColorGroup::Dark,
pal.color(QPalette::Disabled, QColorGroup::Dark).light(contrast));
pal.setColor(QPalette::Active, QColorGroup::Dark,
pal.color(QPalette::Active, QColorGroup::Dark).light(contrast));
pal.setColor(QPalette::Inactive, QColorGroup::Dark,
pal.color(QPalette::Inactive, QColorGroup::Dark).light(contrast));
}
}
void PhaseStyle::polish( QApplication* app ) {
QWindowsStyle::polish( 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 );
QColorGroup group = button->colorGroup();
int x, y, w, h;
r.rect( &x, &y, &w, &h );
bool sunken = false;
QIconSet::Mode mode;
QPixmap pixmap;
if (active) {// shift contents
x++; y++;
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
@@ -31,27 +31,29 @@
#include <qwindowsstyle.h>
#include <qcolor.h>
class KPixmap;
class PhaseStyle : public QWindowsStyle
{
Q_OBJECT
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,
int h, const QColorGroup & g,
bool act, bool dis );
void drawArrow(QPainter *p, Qt::ArrowType type, bool down,
int x, int y, int w, int h, const QColorGroup &g,
bool enabled=true, const QBrush *fill = 0);
void drawPushButton(QPushButton* btn, QPainter* p );
void drawPushButtonLabel(QPushButton* btn, QPainter* p );
void drawPanel(QPainter* p, int , int, int, int,