summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/styles/liquid/liquid.cpp16
-rw-r--r--noncore/styles/liquid/plugin.cpp2
2 files changed, 10 insertions, 8 deletions
diff --git a/noncore/styles/liquid/liquid.cpp b/noncore/styles/liquid/liquid.cpp
index 67e53e9..fc925b8 100644
--- a/noncore/styles/liquid/liquid.cpp
+++ b/noncore/styles/liquid/liquid.cpp
@@ -116,49 +116,48 @@ bool TransMenuHandler::eventFilter(QObject *obj, QEvent *ev)
pix->fill(Qt::black.rgb());
}
if(type == TransStippleBg){
stripePixmap(*pix, p->colorGroup().background());
}
else if(type == TransStippleBtn){
stripePixmap(*pix, p->colorGroup().button());
}
else{
QPixmapEffect::fade(*pix, (((float)opacity)+80)*0.01, color);
}
- if (p->inherits("QPopupMenu"))
- pixDict.insert(p->winId(), pix);
- else {
+ pixDict.insert(p->winId(), pix);
+
+ if (!p->inherits("QPopupMenu")) {
p->setBackgroundPixmap(*pix);
QObjectList *ol = p-> queryList("QWidget");
for ( QObjectListIt it( *ol ); it. current ( ); ++it ) {
QWidget *wid = (QWidget *) it.current ( );
wid-> setBackgroundPixmap(*pix);
wid-> setBackgroundOrigin(QWidget::ParentOrigin);
}
delete ol;
}
}
}
else if(ev->type() == QEvent::Hide){
if(type == TransStippleBg || type == TransStippleBtn ||
type == Custom){
// qWarning("Deleting menu pixmap, width %d", pixDict.find(p->winId())->width());
- if (p->inherits("QPopupMenu"))
- pixDict.remove(p->winId());
- else {
- p->setBackgroundMode(QWidget::PaletteBackground);
+ pixDict.remove(p->winId());
+ if (!p->inherits("QPopupMenu")) {
+ p->setBackgroundMode(QWidget::PaletteBackground);
QObjectList *ol = p-> queryList("QWidget");
for ( QObjectListIt it( *ol ); it. current ( ); ++it ) {
QWidget *wid = (QWidget *) it.current ( );
wid-> setBackgroundMode( QWidget::PaletteBackground );
}
delete ol;
}
}
}
return(false);
@@ -836,25 +835,26 @@ void LiquidStyle::polish(QWidget *w)
}
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;
}
- w-> setBackgroundOrigin ( QWidget::ParentOrigin );
+ if ( !w-> inherits("QFrame") || (((QFrame*) w)-> frameShape () == QFrame::NoFrame ))
+ w-> setBackgroundOrigin ( QWidget::ParentOrigin );
if(w->inherits("QComboBox") ||
w->inherits("QLineEdit") || w->inherits("QRadioButton") ||
w->inherits("QCheckBox") || w->inherits("QScrollBar")) {
w->installEventFilter(this);
}
if(w->inherits("QLineEdit")){
QPalette pal = w->palette();
pal.setBrush(QColorGroup::Base, baseBrush);
w->setPalette(pal);
}
if(w->inherits("QPushButton")){
diff --git a/noncore/styles/liquid/plugin.cpp b/noncore/styles/liquid/plugin.cpp
index f149c29..5f4c8e5 100644
--- a/noncore/styles/liquid/plugin.cpp
+++ b/noncore/styles/liquid/plugin.cpp
@@ -100,12 +100,14 @@ QRESULT LiquidSettingsInterface::queryInterface ( const QUuid &uuid, QUnknownInt
if ( uuid == IID_QUnknown )
*iface = this;
else if ( uuid == IID_StyleSettings )
*iface = this;
if ( *iface )
(*iface)-> addRef ( );
return QS_OK;
}
+// Hack for Retail Z experiments
+extern "C" { QStyle *allocate ( ) { return new LiquidStyle ( ); } }