summaryrefslogtreecommitdiff
authorsandman <sandman>2002-10-23 21:34:09 (UTC)
committer sandman <sandman>2002-10-23 21:34:09 (UTC)
commiteb521bfc7d3a05f900f6c81db25aa4cea572f064 (patch) (unidiff)
tree538988925c7a761b10561e765f1684dd4da016eb
parent71f52c08e595cb3bfa3697baa97b4279325fa9ac (diff)
downloadopie-eb521bfc7d3a05f900f6c81db25aa4cea572f064.zip
opie-eb521bfc7d3a05f900f6c81db25aa4cea572f064.tar.gz
opie-eb521bfc7d3a05f900f6c81db25aa4cea572f064.tar.bz2
fixed a transparency bug: every QWidget child in a QPopupMenu had a full
transparent bg-pixmap
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/styles/liquid/liquid.cpp32
1 files changed, 15 insertions, 17 deletions
diff --git a/noncore/styles/liquid/liquid.cpp b/noncore/styles/liquid/liquid.cpp
index 4013981..eb1ec6e 100644
--- a/noncore/styles/liquid/liquid.cpp
+++ b/noncore/styles/liquid/liquid.cpp
@@ -106,79 +106,77 @@ bool TransMenuHandler::eventFilter(QObject *obj, QEvent *ev)
106 QRect deskR = QApplication::desktop()->rect(); 106 QRect deskR = QApplication::desktop()->rect();
107 if(r.right() > deskR.right() || r.bottom() > deskR.bottom()){ 107 if(r.right() > deskR.right() || r.bottom() > deskR.bottom()){
108 r.setBottom(deskR.bottom()); 108 r.setBottom(deskR.bottom());
109 r.setRight(deskR.right()); 109 r.setRight(deskR.right());
110 } 110 }
111 *pix = QPixmap::grabWindow(QApplication::desktop()-> winId(), r.x(), r.y(), 111 *pix = QPixmap::grabWindow(QApplication::desktop()-> winId(), r.x(), r.y(),
112 r.width(), r.height()); 112 r.width(), r.height());
113 } 113 }
114 else{ // tear off menu 114 else{ // tear off menu
115 pix->resize(p->width(), p->height()); 115 pix->resize(p->width(), p->height());
116 pix->fill(Qt::black.rgb()); 116 pix->fill(Qt::black.rgb());
117 } 117 }
118 if(type == TransStippleBg){ 118 if(type == TransStippleBg){
119 stripePixmap(*pix, p->colorGroup().background()); 119 stripePixmap(*pix, p->colorGroup().background());
120 } 120 }
121 else if(type == TransStippleBtn){ 121 else if(type == TransStippleBtn){
122 stripePixmap(*pix, p->colorGroup().button()); 122 stripePixmap(*pix, p->colorGroup().button());
123 } 123 }
124 else{ 124 else{
125 QPixmapEffect::fade(*pix, (((float)opacity)+80)*0.01, color); 125 QPixmapEffect::fade(*pix, (((float)opacity)+80)*0.01, color);
126 } 126 }
127 127
128 pixDict.insert(p->winId(), pix); 128 pixDict.insert(p->winId(), pix);
129 129
130 if (!p->inherits("QPopupMenu")) { 130 if ( !p->inherits("QPopupMenu"))
131 p->setBackgroundPixmap(*pix); 131 p->setBackgroundPixmap(*pix);
132 132
133 QObjectList *ol = p-> queryList("QWidget"); 133 QObjectList *ol = p-> queryList("QWidget");
134 for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { 134 for ( QObjectListIt it( *ol ); it. current ( ); ++it ) {
135 QWidget *wid = (QWidget *) it.current ( ); 135 QWidget *wid = (QWidget *) it.current ( );
136 136
137 wid-> setBackgroundPixmap(*pix); 137 wid-> setBackgroundPixmap(*pix);
138 wid-> setBackgroundOrigin(QWidget::ParentOrigin); 138 wid-> setBackgroundOrigin(QWidget::ParentOrigin);
139 } 139 }
140 delete ol; 140 delete ol;
141 }
142 } 141 }
143 } 142 }
144 else if(ev->type() == QEvent::Hide){ 143 else if(ev->type() == QEvent::Hide){
145 if(type == TransStippleBg || type == TransStippleBtn || 144 if(type == TransStippleBg || type == TransStippleBtn ||
146 type == Custom){ 145 type == Custom){
147// qWarning("Deleting menu pixmap, width %d", pixDict.find(p->winId())->width()); 146// qWarning("Deleting menu pixmap, width %d", pixDict.find(p->winId())->width());
148 147
149 pixDict.remove(p->winId()); 148 pixDict.remove(p->winId());
150 if (!p->inherits("QPopupMenu")) { 149 if ( !p->inherits("QPopupMenu"))
151 p->setBackgroundMode(QWidget::PaletteBackground); 150 p->setBackgroundMode(QWidget::PaletteBackground);
152 151
153 QObjectList *ol = p-> queryList("QWidget"); 152 QObjectList *ol = p-> queryList("QWidget");
154 for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { 153 for ( QObjectListIt it( *ol ); it. current ( ); ++it ) {
155 QWidget *wid = (QWidget *) it.current ( ); 154 QWidget *wid = (QWidget *) it.current ( );
156 155
157 wid-> setBackgroundMode( QWidget::PaletteBackground ); 156 wid-> setBackgroundMode( QWidget::PaletteBackground );
158 }
159 delete ol;
160 } 157 }
158 delete ol;
161 } 159 }
162 } 160 }
163 return(false); 161 return(false);
164} 162}
165 163
166 164
167LiquidStyle::LiquidStyle() 165LiquidStyle::LiquidStyle()
168 :QWindowsStyle() 166 :QWindowsStyle()
169{ 167{
170 setName ( "LiquidStyle" ); 168 setName ( "LiquidStyle" );
171 169
172 flatTBButtons = false; 170 flatTBButtons = false;
173 171
174 btnMaskBmp = QBitmap(37, 26, buttonmask_bits, true); 172 btnMaskBmp = QBitmap(37, 26, buttonmask_bits, true);
175 btnMaskBmp.setMask(btnMaskBmp); 173 btnMaskBmp.setMask(btnMaskBmp);
176 htmlBtnMaskBmp = QBitmap(37, 26, htmlbuttonmask_bits, true); 174 htmlBtnMaskBmp = QBitmap(37, 26, htmlbuttonmask_bits, true);
177 htmlBtnMaskBmp.setMask(htmlBtnMaskBmp); 175 htmlBtnMaskBmp.setMask(htmlBtnMaskBmp);
178 headerHoverID = -1; 176 headerHoverID = -1;
179 highlightWidget = NULL; 177 highlightWidget = NULL;
180 setButtonDefaultIndicatorWidth(0); 178 setButtonDefaultIndicatorWidth(0);
181 btnDict.setAutoDelete(true); 179 btnDict.setAutoDelete(true);
182 bevelFillDict.setAutoDelete(true); 180 bevelFillDict.setAutoDelete(true);
183 smallBevelFillDict.setAutoDelete(true); 181 smallBevelFillDict.setAutoDelete(true);
184 customBtnColorList.setAutoDelete(true); 182 customBtnColorList.setAutoDelete(true);