Diffstat (limited to 'noncore/styles/liquid/liquid.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/styles/liquid/liquid.cpp | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/noncore/styles/liquid/liquid.cpp b/noncore/styles/liquid/liquid.cpp index 87b5488..22bf8af 100644 --- a/noncore/styles/liquid/liquid.cpp +++ b/noncore/styles/liquid/liquid.cpp @@ -168,8 +168,10 @@ LiquidStyle::LiquidStyle() :QWindowsStyle() { setName ( "LiquidStyle" ); + flatTBButtons = false; + btnMaskBmp = QBitmap(37, 26, buttonmask_bits, true); btnMaskBmp.setMask(btnMaskBmp); htmlBtnMaskBmp = QBitmap(37, 26, htmlbuttonmask_bits, true); htmlBtnMaskBmp.setMask(htmlBtnMaskBmp); @@ -830,8 +832,15 @@ void LiquidStyle::polish(QWidget *w) { if(w->inherits("QMenuBar")){ //((QFrame*)w)->setLineWidth(0); w->setBackgroundMode(QWidget::PaletteBackground); + w->setBackgroundOrigin(QWidget::ParentOrigin); + return; + } + if(w->inherits("QToolBar")){ + w->installEventFilter(this); + w->setBackgroundMode(QWidget::PaletteBackground); + w->setBackgroundOrigin(QWidget::WidgetOrigin); return; } if(w->inherits("QPopupMenu")) w->setBackgroundMode(QWidget::NoBackground); @@ -892,10 +901,12 @@ void LiquidStyle::polish(QWidget *w) if(w->inherits("QHeader")){ w->setMouseTracking(true); w->installEventFilter(this); } - if(w-> inherits("QToolButton")) { - ((QToolButton*)w)->setAutoRaise (false); + if(w-> inherits("QToolButton")&&w->parent()->inherits("QToolBar")) { + ((QToolButton*)w)->setAutoRaise (flatTBButtons); + if ( flatTBButtons ) + w->setBackgroundOrigin(QWidget::ParentOrigin); } if(w->ownPalette() && !w->inherits("QButton") && !w->inherits("QComboBox")){ return; } @@ -911,13 +922,8 @@ void LiquidStyle::polish(QWidget *w) w->backgroundMode() == QWidget::PaletteButton){ w->setBackgroundMode(QWidget::X11ParentRelative); } } - if(w->inherits("QToolBar")){ - w->installEventFilter(this); - w->setBackgroundMode(QWidget::PaletteBackground); - return; - } } void LiquidStyle::unPolish(QWidget *w) @@ -1000,8 +1006,10 @@ void LiquidStyle::polish(QApplication *app) config. setGroup ( "Liquid-Style" ); if ( config. readBoolEntry ( "WinDecoration", true )) QApplication::qwsSetDecoration ( new LiquidDecoration ( )); + + flatTBButtons = config. readBoolEntry ( "FlatToolButtons", false ); } void LiquidStyle::unPolish(QApplication *app) { @@ -1997,10 +2005,12 @@ void LiquidStyle::drawMenuBarItem(QPainter *p, int x, int y, int w, int h, y -= 2; w += 2; h += 2; } - - p-> fillRect ( x, y, w, h, g.brush(QColorGroup::Background)); + + QWidget *parent = (QWidget *)p->device(); + p->setBrushOrigin(parent->pos()); + parent->erase(x, y, w, h); if(menuHandler->useShadowText()){ QColor shadow; if(p->device() && p->device()->devType() == QInternal::Widget && |