Diffstat (limited to 'noncore/styles/liquid/liquid.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/styles/liquid/liquid.cpp | 26 |
1 files changed, 18 insertions, 8 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 @@ -160,24 +160,26 @@ bool TransMenuHandler::eventFilter(QObject *obj, QEvent *ev) } } } return(false); } 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); headerHoverID = -1; highlightWidget = NULL; setButtonDefaultIndicatorWidth(0); btnDict.setAutoDelete(true); bevelFillDict.setAutoDelete(true); smallBevelFillDict.setAutoDelete(true); customBtnColorList.setAutoDelete(true); customBtnIconList.setAutoDelete(true); @@ -822,24 +824,31 @@ void LiquidStyle::polish(QPalette &appPal) else if(w->inherits("QPushButton")){ applyCustomAttributes((QPushButton *)w); } } } 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); else if(w-> testWFlags(Qt::WType_Popup) && !w->inherits("QListBox")) { w->installEventFilter(menuHandler); } if(w->isTopLevel()){ return; } @@ -884,48 +893,45 @@ void LiquidStyle::polish(QWidget *w) w->setAutoMask(true); w->setBackgroundMode(QWidget::NoBackground); } } } return; } } 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; } if(w->parent() && w->parent()->isWidgetType() && !((QWidget*)w->parent())-> palette().active().brush(QColorGroup::Background).pixmap()){ qWarning("No parent pixmap for child widget %s", w->className()); return; } if(!isViewport && !isViewportChild && !w->testWFlags(WType_Popup) && !( !w-> inherits("QLineEdit") && w-> parent() && w-> parent()-> isWidgetType ( ) && w-> parent()-> inherits ( "QMultiLineEdit" ))) { if(w->backgroundMode() == QWidget::PaletteBackground || 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) { if(w->inherits("QMenuBar")){ ((QFrame *)w)->setLineWidth(1); w->setBackgroundMode(QWidget::PaletteBackground); return; } if(w->inherits("QPopupMenu")) @@ -992,24 +998,26 @@ void LiquidStyle::polish(QApplication *app) if(menuAni) app->setEffectEnabled(UI_AnimateMenu, false); if(menuFade) app->setEffectEnabled(UI_FadeMenu, false); qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl) &LiquidStyle::drawMenuBarItem); Config config ( "qpe" ); config. setGroup ( "Liquid-Style" ); if ( config. readBoolEntry ( "WinDecoration", true )) QApplication::qwsSetDecoration ( new LiquidDecoration ( )); + + flatTBButtons = config. readBoolEntry ( "FlatToolButtons", false ); } void LiquidStyle::unPolish(QApplication *app) { QWindowsStyle::unPolish(app); app->setEffectEnabled(UI_AnimateMenu, menuAni); app->setEffectEnabled(UI_FadeMenu, menuFade); qt_set_draw_menu_bar_impl ( 0 ); QApplication::qwsSetDecoration ( new QPEDecoration ( )); } @@ -1990,25 +1998,27 @@ void LiquidStyle::drawArrow(QPainter *p, Qt::ArrowType type, bool on, int x, void LiquidStyle::drawMenuBarItem(QPainter *p, int x, int y, int w, int h, QMenuItem *mi, QColorGroup &g, bool /*enabled*/, bool active ) { if(active){ x -= 2; // Bug in Qt/E 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 && ((QWidget *)p->device())->inherits("QMenuBar")){ shadow = ((QMenuBar*)p->device())->isTopLevel() ? g.button().dark(130) : g.background().dark(130); } else shadow = g.background().dark(130); if(active){ |