summaryrefslogtreecommitdiff
authorsandman <sandman>2002-11-24 18:31:38 (UTC)
committer sandman <sandman>2002-11-24 18:31:38 (UTC)
commit75cf5d2277d66f533167bcb2e3b6f0eee2424d96 (patch) (unidiff)
tree32f6fb81494954ac93e6f451f701d0b83f9852b7
parent1b2c3ce0d94f033e8ffe1aa8575b210cdfb3c1ec (diff)
downloadopie-75cf5d2277d66f533167bcb2e3b6f0eee2424d96.zip
opie-75cf5d2277d66f533167bcb2e3b6f0eee2424d96.tar.gz
opie-75cf5d2277d66f533167bcb2e3b6f0eee2424d96.tar.bz2
Valgrind complaint
had to changed the initialization sequence
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/styles/theme/othemebase.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/styles/theme/othemebase.cpp b/noncore/styles/theme/othemebase.cpp
index 58005b5..acac847 100644
--- a/noncore/styles/theme/othemebase.cpp
+++ b/noncore/styles/theme/othemebase.cpp
@@ -88,403 +88,403 @@ public:
88 { } 88 { }
89 89
90 bool hasGroup ( const QString &gname ) const 90 bool hasGroup ( const QString &gname ) const
91 { 91 {
92 QMap< QString, ConfigGroup>::ConstIterator it = groups. find ( gname ); 92 QMap< QString, ConfigGroup>::ConstIterator it = groups. find ( gname );
93 return ( it != groups.end() ); 93 return ( it != groups.end() );
94 } 94 }
95}; 95};
96 96
97void OThemeBase::generateBorderPix( int i ) 97void OThemeBase::generateBorderPix( int i )
98{ 98{
99 // separate pixmap into separate components 99 // separate pixmap into separate components
100 if ( pbPixmaps[ i ] ) { 100 if ( pbPixmaps[ i ] ) {
101 // evidently I have to do masks manually... 101 // evidently I have to do masks manually...
102 const QBitmap * srcMask = pbPixmaps[ i ] ->mask(); 102 const QBitmap * srcMask = pbPixmaps[ i ] ->mask();
103 QBitmap destMask( pbWidth[ i ], pbWidth[ i ] ); 103 QBitmap destMask( pbWidth[ i ], pbWidth[ i ] );
104 QPixmap tmp( pbWidth[ i ], pbWidth[ i ] ); 104 QPixmap tmp( pbWidth[ i ], pbWidth[ i ] );
105 105
106 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, 0, pbWidth[ i ], pbWidth[ i ], 106 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, 0, pbWidth[ i ], pbWidth[ i ],
107 Qt::CopyROP, false ); 107 Qt::CopyROP, false );
108 if ( srcMask ) { 108 if ( srcMask ) {
109 bitBlt( &destMask, 0, 0, srcMask, 0, 0, pbWidth[ i ], pbWidth[ i ], 109 bitBlt( &destMask, 0, 0, srcMask, 0, 0, pbWidth[ i ], pbWidth[ i ],
110 Qt::CopyROP, false ); 110 Qt::CopyROP, false );
111 tmp.setMask( destMask ); 111 tmp.setMask( destMask );
112 } 112 }
113 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopLeft, tmp ); 113 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopLeft, tmp );
114 114
115 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 0, 115 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 0,
116 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 116 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
117 if ( srcMask ) { 117 if ( srcMask ) {
118 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ], 118 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ],
119 0, pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 119 0, pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
120 tmp.setMask( destMask ); 120 tmp.setMask( destMask );
121 } 121 }
122 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopRight, tmp ); 122 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopRight, tmp );
123 123
124 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbPixmaps[ i ] ->height() - pbWidth[ i ], 124 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbPixmaps[ i ] ->height() - pbWidth[ i ],
125 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 125 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
126 if ( srcMask ) { 126 if ( srcMask ) {
127 bitBlt( &destMask, 0, 0, srcMask, 0, pbPixmaps[ i ] ->height() - pbWidth[ i ], 127 bitBlt( &destMask, 0, 0, srcMask, 0, pbPixmaps[ i ] ->height() - pbWidth[ i ],
128 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 128 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
129 tmp.setMask( destMask ); 129 tmp.setMask( destMask );
130 } 130 }
131 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomLeft, tmp ); 131 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomLeft, tmp );
132 132
133 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 133 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ],
134 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ], 134 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ],
135 Qt::CopyROP, false ); 135 Qt::CopyROP, false );
136 if ( srcMask ) { 136 if ( srcMask ) {
137 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ], 137 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ],
138 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ], 138 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ],
139 Qt::CopyROP, false ); 139 Qt::CopyROP, false );
140 tmp.setMask( destMask ); 140 tmp.setMask( destMask );
141 } 141 }
142 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomRight, tmp ); 142 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomRight, tmp );
143 143
144 tmp.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] ); 144 tmp.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] );
145 destMask.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] ); 145 destMask.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] );
146 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ], 0, 146 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ], 0,
147 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false ); 147 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false );
148 if ( srcMask ) { 148 if ( srcMask ) {
149 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ], 0, 149 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ], 0,
150 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], 150 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ],
151 Qt::CopyROP, false ); 151 Qt::CopyROP, false );
152 tmp.setMask( destMask ); 152 tmp.setMask( destMask );
153 } 153 }
154 pbPixmaps[ i ] ->setBorder( OThemePixmap::Top, tmp ); 154 pbPixmaps[ i ] ->setBorder( OThemePixmap::Top, tmp );
155 155
156 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ], 156 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ],
157 pbPixmaps[ i ] ->height() - pbWidth[ i ], 157 pbPixmaps[ i ] ->height() - pbWidth[ i ],
158 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false ); 158 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false );
159 if ( srcMask ) { 159 if ( srcMask ) {
160 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ], 160 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ],
161 pbPixmaps[ i ] ->height() - pbWidth[ i ], 161 pbPixmaps[ i ] ->height() - pbWidth[ i ],
162 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false ); 162 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false );
163 tmp.setMask( destMask ); 163 tmp.setMask( destMask );
164 } 164 }
165 pbPixmaps[ i ] ->setBorder( OThemePixmap::Bottom, tmp ); 165 pbPixmaps[ i ] ->setBorder( OThemePixmap::Bottom, tmp );
166 166
167 tmp.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 ); 167 tmp.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 );
168 destMask.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 ); 168 destMask.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 );
169 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbWidth[ i ], pbWidth[ i ], 169 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbWidth[ i ], pbWidth[ i ],
170 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false ); 170 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false );
171 if ( srcMask ) { 171 if ( srcMask ) {
172 bitBlt( &destMask, 0, 0, srcMask, 0, pbWidth[ i ], pbWidth[ i ], 172 bitBlt( &destMask, 0, 0, srcMask, 0, pbWidth[ i ], pbWidth[ i ],
173 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false ); 173 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false );
174 tmp.setMask( destMask ); 174 tmp.setMask( destMask );
175 } 175 }
176 176
177 pbPixmaps[ i ] ->setBorder( OThemePixmap::Left, tmp ); 177 pbPixmaps[ i ] ->setBorder( OThemePixmap::Left, tmp );
178 178
179 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 179 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ],
180 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, 180 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2,
181 Qt::CopyROP, false ); 181 Qt::CopyROP, false );
182 if ( srcMask ) { 182 if ( srcMask ) {
183 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ], 183 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ],
184 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, 184 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2,
185 Qt::CopyROP, false ); 185 Qt::CopyROP, false );
186 tmp.setMask( destMask ); 186 tmp.setMask( destMask );
187 } 187 }
188 pbPixmaps[ i ] ->setBorder( OThemePixmap::Right, tmp ); 188 pbPixmaps[ i ] ->setBorder( OThemePixmap::Right, tmp );
189 } 189 }
190 else 190 else
191 qDebug ( "OThemeBase: Tried making border from empty pixmap" ); 191 qDebug ( "OThemeBase: Tried making border from empty pixmap" );
192} 192}
193 193
194 194
195void OThemeBase::copyWidgetConfig( int sourceID, int destID, QString *pixnames, 195void OThemeBase::copyWidgetConfig( int sourceID, int destID, QString *pixnames,
196 QString *brdnames ) 196 QString *brdnames )
197{ 197{
198 scaleHints[ destID ] = scaleHints[ sourceID ]; 198 scaleHints[ destID ] = scaleHints[ sourceID ];
199 gradients[ destID ] = gradients[ sourceID ]; 199 gradients[ destID ] = gradients[ sourceID ];
200 blends[ destID ] = blends[ sourceID ]; 200 blends[ destID ] = blends[ sourceID ];
201 bContrasts[ destID ] = bContrasts[ sourceID ]; 201 bContrasts[ destID ] = bContrasts[ sourceID ];
202 borders[ destID ] = borders[ sourceID ]; 202 borders[ destID ] = borders[ sourceID ];
203 highlights[ destID ] = highlights[ sourceID ]; 203 highlights[ destID ] = highlights[ sourceID ];
204 204
205 if ( grLowColors[ sourceID ] ) 205 if ( grLowColors[ sourceID ] )
206 grLowColors[ destID ] = new QColor( *grLowColors[ sourceID ] ); 206 grLowColors[ destID ] = new QColor( *grLowColors[ sourceID ] );
207 else 207 else
208 grLowColors[ destID ] = NULL; 208 grLowColors[ destID ] = NULL;
209 209
210 if ( grHighColors[ sourceID ] ) 210 if ( grHighColors[ sourceID ] )
211 grHighColors[ destID ] = new QColor( *grHighColors[ sourceID ] ); 211 grHighColors[ destID ] = new QColor( *grHighColors[ sourceID ] );
212 else 212 else
213 grHighColors[ destID ] = NULL; 213 grHighColors[ destID ] = NULL;
214 214
215 if ( colors[ sourceID ] ) 215 if ( colors[ sourceID ] )
216 colors[ destID ] = new QColorGroup( *colors[ sourceID ] ); 216 colors[ destID ] = new QColorGroup( *colors[ sourceID ] );
217 else 217 else
218 colors[ destID ] = NULL; 218 colors[ destID ] = NULL;
219 219
220 // pixmap 220 // pixmap
221 pixnames[ destID ] = pixnames[ sourceID ]; 221 pixnames[ destID ] = pixnames[ sourceID ];
222 duplicate[ destID ] = false; 222 duplicate[ destID ] = false;
223 pixmaps[ destID ] = NULL; 223 pixmaps[ destID ] = NULL;
224 images[ destID ] = NULL; 224 images[ destID ] = NULL;
225 if ( !pixnames[ destID ].isEmpty() ) { 225 if ( !pixnames[ destID ].isEmpty() ) {
226 if ( scaleHints[ sourceID ] == TileScale && blends[ sourceID ] == 0.0 ) { 226 if ( scaleHints[ sourceID ] == TileScale && blends[ sourceID ] == 0.0 ) {
227 pixmaps[ destID ] = pixmaps[ sourceID ]; 227 pixmaps[ destID ] = pixmaps[ sourceID ];
228 duplicate[ destID ] = true; 228 duplicate[ destID ] = true;
229 } 229 }
230 if ( !duplicate[ destID ] ) { 230 if ( !duplicate[ destID ] ) {
231 pixmaps[ destID ] = loadPixmap( pixnames[ destID ] ); 231 pixmaps[ destID ] = loadPixmap( pixnames[ destID ] );
232 if ( scaleHints[ destID ] == TileScale && blends[ destID ] == 0.0 ) 232 if ( scaleHints[ destID ] == TileScale && blends[ destID ] == 0.0 )
233 images[ destID ] = NULL; 233 images[ destID ] = NULL;
234 else 234 else
235 images[ destID ] = loadImage( pixnames[ destID ] ); 235 images[ destID ] = loadImage( pixnames[ destID ] );
236 } 236 }
237 } 237 }
238 238
239 // border pixmap 239 // border pixmap
240 pbDuplicate[ destID ] = false; 240 pbDuplicate[ destID ] = false;
241 pbPixmaps[ destID ] = NULL; 241 pbPixmaps[ destID ] = NULL;
242 pbWidth[ destID ] = pbWidth[ sourceID ]; 242 pbWidth[ destID ] = pbWidth[ sourceID ];
243 brdnames[ destID ] = brdnames[ sourceID ]; 243 brdnames[ destID ] = brdnames[ sourceID ];
244 if ( !brdnames[ destID ].isEmpty() ) { 244 if ( !brdnames[ destID ].isEmpty() ) {
245 pbPixmaps[ destID ] = pbPixmaps[ sourceID ]; 245 pbPixmaps[ destID ] = pbPixmaps[ sourceID ];
246 pbDuplicate[ destID ] = true; 246 pbDuplicate[ destID ] = true;
247 } 247 }
248 248
249 if ( sourceID == ActiveTab && destID == InactiveTab ) 249 if ( sourceID == ActiveTab && destID == InactiveTab )
250 aTabLine = iTabLine; 250 aTabLine = iTabLine;
251 else if ( sourceID == InactiveTab && destID == ActiveTab ) 251 else if ( sourceID == InactiveTab && destID == ActiveTab )
252 iTabLine = aTabLine; 252 iTabLine = aTabLine;
253} 253}
254 254
255void OThemeBase::readConfig( Qt::GUIStyle /*style*/ ) 255void OThemeBase::readConfig( Qt::GUIStyle /*style*/ )
256{ 256{
257#define PREBLEND_ITEMS 12 257#define PREBLEND_ITEMS 12
258 static WidgetType preBlend[] = {Slider, IndicatorOn, IndicatorOff, 258 static WidgetType preBlend[] = {Slider, IndicatorOn, IndicatorOff,
259 ExIndicatorOn, ExIndicatorOff, HScrollDeco, VScrollDeco, HScrollDecoDown, 259 ExIndicatorOn, ExIndicatorOff, HScrollDeco, VScrollDeco, HScrollDecoDown,
260 VScrollDecoDown, ComboDeco, ComboDecoDown, CheckMark}; 260 VScrollDecoDown, ComboDeco, ComboDecoDown, CheckMark};
261 261
262 int i; 262 int i;
263 QString tmpStr; 263 QString tmpStr;
264 QString copyfrom[ WIDGETS ]; 264 QString copyfrom[ WIDGETS ];
265 QString pixnames[ WIDGETS ]; // used for duplicate check 265 QString pixnames[ WIDGETS ]; // used for duplicate check
266 QString brdnames[ WIDGETS ]; 266 QString brdnames[ WIDGETS ];
267 bool loaded[ WIDGETS ]; // used for preloading for CopyWidget 267 bool loaded[ WIDGETS ]; // used for preloading for CopyWidget
268 268
269 if ( configFileName.isEmpty() ) { 269 if ( configFileName.isEmpty() ) {
270 Config cfg ( "qpe" ); 270 Config cfg ( "qpe" );
271 cfg. setGroup ( "Appearance" ); 271 cfg. setGroup ( "Appearance" );
272 272
273 configFileName = cfg. readEntry ( "Theme", "default" ); 273 configFileName = cfg. readEntry ( "Theme", "default" );
274 } 274 }
275 MyConfig config( configFilePath + "/themes/" + configFileName + ".themerc" , Config::File ); 275 MyConfig config( configFilePath + "/themes/" + configFileName + ".themerc" , Config::File );
276 276
277 //printf ( "Opened config file: %s\n", ( configFilePath + "/themes/" + configFileName + ".themerc" ). ascii()); 277 //printf ( "Opened config file: %s\n", ( configFilePath + "/themes/" + configFileName + ".themerc" ). ascii());
278 278
279 // Are we initalized? 279 // Are we initalized?
280 applyMiscResourceGroup( &config );
280 for ( i = 0; i < INHERIT_ITEMS; ++i ) { 281 for ( i = 0; i < INHERIT_ITEMS; ++i ) {
281 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); 282 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames );
282 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() ); 283 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() );
283 } 284 }
284 for ( ; i < INHERIT_ITEMS*2; ++i ) { 285 for ( ; i < INHERIT_ITEMS*2; ++i ) {
285 if ( config.hasGroup( QString( widgetEntries[ i ] ) ) ) { 286 if ( config.hasGroup( QString( widgetEntries[ i ] ) ) ) {
286 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); 287 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames );
287 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() ); 288 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() );
288 } 289 }
289 else { 290 else {
290 copyfrom [ i ] = widgetEntries[ i - INHERIT_ITEMS ]; 291 copyfrom [ i ] = widgetEntries[ i - INHERIT_ITEMS ];
291 // printf ( "%d [%s]: copy=%s\n", i, widgetEntries [i], copyfrom [i].latin1()); 292 // printf ( "%d [%s]: copy=%s\n", i, widgetEntries [i], copyfrom [i].latin1());
292 } 293 }
293 } 294 }
294 for ( ; i < WIDGETS; ++i ) { 295 for ( ; i < WIDGETS; ++i ) {
295 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); 296 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames );
296 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() ); 297 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() );
297 } 298 }
298 applyMiscResourceGroup( &config );
299 299
300 // initalize defaults that may not be read 300 // initalize defaults that may not be read
301 for ( i = 0; i < WIDGETS; ++i ) 301 for ( i = 0; i < WIDGETS; ++i )
302 loaded[ i ] = false; 302 loaded[ i ] = false;
303 btnXShift = btnYShift = focus3DOffset = 0; 303 btnXShift = btnYShift = focus3DOffset = 0;
304 aTabLine = iTabLine = true; 304 aTabLine = iTabLine = true;
305 roundedButton = roundedCombo = roundedSlider = focus3D = false; 305 roundedButton = roundedCombo = roundedSlider = focus3D = false;
306 splitterWidth = 10; 306 splitterWidth = 10;
307 307
308 for ( i = 0; i < WIDGETS; ++i ) { 308 for ( i = 0; i < WIDGETS; ++i ) {
309 readResourceGroup( i, copyfrom, pixnames, brdnames, loaded ); 309 readResourceGroup( i, copyfrom, pixnames, brdnames, loaded );
310 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s, colors=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1(), (colors[i]?colors[i]->background().name().latin1():"<none)" )); 310 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s, colors=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1(), (colors[i]?colors[i]->background().name().latin1():"<none)" ));
311 } 311 }
312 312
313 // misc items 313 // misc items
314 readMiscResourceGroup(); 314 readMiscResourceGroup();
315 315
316 // Handle preblend items 316 // Handle preblend items
317 for ( i = 0; i < PREBLEND_ITEMS; ++i ) { 317 for ( i = 0; i < PREBLEND_ITEMS; ++i ) {
318 if ( pixmaps[ preBlend[ i ] ] != NULL && blends[ preBlend[ i ] ] != 0.0 ) 318 if ( pixmaps[ preBlend[ i ] ] != NULL && blends[ preBlend[ i ] ] != 0.0 )
319 blend( preBlend[ i ] ); 319 blend( preBlend[ i ] );
320 } 320 }
321} 321}
322 322
323OThemeBase::OThemeBase( const QString & configFile ) 323OThemeBase::OThemeBase( const QString & configFile )
324 : QWindowsStyle() 324 : QWindowsStyle()
325{ 325{
326 configFilePath = QPEApplication::qpeDir ( ) + "/plugins/styles/"; 326 configFilePath = QPEApplication::qpeDir ( ) + "/plugins/styles/";
327 configFileName = configFile; 327 configFileName = configFile;
328 328
329 readConfig( Qt::WindowsStyle ); 329 readConfig( Qt::WindowsStyle );
330 cache = new OThemeCache( cacheSize ); 330 cache = new OThemeCache( cacheSize );
331} 331}
332 332
333void OThemeBase::applyConfigFile( const QString &/*file*/ ) 333void OThemeBase::applyConfigFile( const QString &/*file*/ )
334{ 334{
335#if 0 335#if 0
336 // handle std color scheme 336 // handle std color scheme
337 Config inConfig( file, Config::File ); 337 Config inConfig( file, Config::File );
338 Config globalConfig ( "qpe" ); 338 Config globalConfig ( "qpe" );
339 339
340 globalConfig. setGroup ( "Apperance" ); 340 globalConfig. setGroup ( "Apperance" );
341 inConfig. setGroup( "General" ); 341 inConfig. setGroup( "General" );
342 342
343 if ( inConfig.hasKey( "foreground" ) ) 343 if ( inConfig.hasKey( "foreground" ) )
344 globalConfig.writeEntry( "Text", inConfig.readEntry( "foreground", " " ) ); 344 globalConfig.writeEntry( "Text", inConfig.readEntry( "foreground", " " ) );
345 if ( inConfig.hasKey( "background" ) ) 345 if ( inConfig.hasKey( "background" ) )
346 globalConfig.writeEntry( "Background", inConfig.readEntry( "background", " " ) ); 346 globalConfig.writeEntry( "Background", inConfig.readEntry( "background", " " ) );
347 if ( inConfig.hasKey( "selectForeground" ) ) 347 if ( inConfig.hasKey( "selectForeground" ) )
348 globalConfig.writeEntry( "HighlightedText", inConfig.readEntry( "selectForeground", " " ) ); 348 globalConfig.writeEntry( "HighlightedText", inConfig.readEntry( "selectForeground", " " ) );
349 if ( inConfig.hasKey( "selectBackground" ) ) 349 if ( inConfig.hasKey( "selectBackground" ) )
350 globalConfig.writeEntry( "Highlight", inConfig.readEntry( "selectBackground", " " ) ); 350 globalConfig.writeEntry( "Highlight", inConfig.readEntry( "selectBackground", " " ) );
351 if ( inConfig.hasKey( "windowForeground" ) ) 351 if ( inConfig.hasKey( "windowForeground" ) )
352 globalConfig.writeEntry( "Text", inConfig.readEntry( "windowForeground", " " ) ); 352 globalConfig.writeEntry( "Text", inConfig.readEntry( "windowForeground", " " ) );
353 if ( inConfig.hasKey( "windowBackground" ) ) 353 if ( inConfig.hasKey( "windowBackground" ) )
354 globalConfig.writeEntry( "Base", inConfig.readEntry( "windowBackground", " " ) ); 354 globalConfig.writeEntry( "Base", inConfig.readEntry( "windowBackground", " " ) );
355 355
356 // Keep track of the current theme so that we can select the right one 356 // Keep track of the current theme so that we can select the right one
357 // in the KControl module. 357 // in the KControl module.
358 globalConfig.writeEntry ( "CurrentTheme", file ); 358 globalConfig.writeEntry ( "CurrentTheme", file );
359 359
360 globalConfig.write(); 360 globalConfig.write();
361#endif 361#endif
362} 362}
363 363
364OThemeBase::~OThemeBase() 364OThemeBase::~OThemeBase()
365{ 365{
366 int i; 366 int i;
367 for ( i = 0; i < WIDGETS; ++i ) { 367 for ( i = 0; i < WIDGETS; ++i ) {
368 if ( !duplicate[ i ] ) { 368 if ( !duplicate[ i ] ) {
369 if ( images[ i ] ) 369 if ( images[ i ] )
370 delete images[ i ]; 370 delete images[ i ];
371 if ( pixmaps[ i ] ) 371 if ( pixmaps[ i ] )
372 delete pixmaps[ i ]; 372 delete pixmaps[ i ];
373 } 373 }
374 if ( !pbDuplicate[ i ] && pbPixmaps[ i ] ) 374 if ( !pbDuplicate[ i ] && pbPixmaps[ i ] )
375 delete pbPixmaps[ i ]; 375 delete pbPixmaps[ i ];
376 if ( colors[ i ] ) 376 if ( colors[ i ] )
377 delete( colors[ i ] ); 377 delete( colors[ i ] );
378 if ( grLowColors[ i ] ) 378 if ( grLowColors[ i ] )
379 delete( grLowColors[ i ] ); 379 delete( grLowColors[ i ] );
380 if ( grHighColors[ i ] ) 380 if ( grHighColors[ i ] )
381 delete( grHighColors[ i ] ); 381 delete( grHighColors[ i ] );
382 } 382 }
383 delete cache; 383 delete cache;
384} 384}
385 385
386QImage* OThemeBase::loadImage( QString &name ) 386QImage* OThemeBase::loadImage( QString &name )
387{ 387{
388 QImage * image = new QImage; 388 QImage * image = new QImage;
389 QString path = configFilePath + "/pixmaps/" + name; 389 QString path = configFilePath + "/pixmaps/" + name;
390 image->load( path ); 390 image->load( path );
391 if ( !image->isNull() ) 391 if ( !image->isNull() )
392 return ( image ); 392 return ( image );
393 qDebug ( "OThemeBase: Unable to load image %s\n", name.ascii ( ) ); 393 qDebug ( "OThemeBase: Unable to load image %s\n", name.ascii ( ) );
394 delete image; 394 delete image;
395 return ( NULL ); 395 return ( NULL );
396} 396}
397 397
398OThemePixmap* OThemeBase::loadPixmap( QString &name ) 398OThemePixmap* OThemeBase::loadPixmap( QString &name )
399{ 399{
400 OThemePixmap * pixmap = new OThemePixmap( false ); 400 OThemePixmap * pixmap = new OThemePixmap( false );
401 QString path = configFilePath + "/pixmaps/" + name; 401 QString path = configFilePath + "/pixmaps/" + name;
402 pixmap->load( path ); 402 pixmap->load( path );
403 if ( !pixmap->isNull() ) 403 if ( !pixmap->isNull() )
404 return pixmap; 404 return pixmap;
405 qDebug ( "OThemeBase: Unable to load pixmap %s\n", name.ascii() ); 405 qDebug ( "OThemeBase: Unable to load pixmap %s\n", name.ascii() );
406 delete pixmap; 406 delete pixmap;
407 return ( NULL ); 407 return ( NULL );
408} 408}
409 409
410OThemePixmap* OThemeBase::scale( int w, int h, WidgetType widget ) 410OThemePixmap* OThemeBase::scale( int w, int h, WidgetType widget )
411{ 411{
412 if ( scaleHints[ widget ] == FullScale ) { 412 if ( scaleHints[ widget ] == FullScale ) {
413 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w || 413 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w ||
414 pixmaps[ widget ] ->height() != h ) { 414 pixmaps[ widget ] ->height() != h ) {
415 OThemePixmap * cachePix = cache->pixmap( w, h, widget ); 415 OThemePixmap * cachePix = cache->pixmap( w, h, widget );
416 if ( cachePix ) { 416 if ( cachePix ) {
417 cachePix = new OThemePixmap( *cachePix ); 417 cachePix = new OThemePixmap( *cachePix );
418 if ( pixmaps[ widget ] ) 418 if ( pixmaps[ widget ] )
419 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, 419 cache->insert( pixmaps[ widget ], OThemeCache::FullScale,
420 widget ); 420 widget );
421 else 421 else
422 qDebug( "We would have inserted a null pixmap!\n" ); 422 qDebug( "We would have inserted a null pixmap!\n" );
423 pixmaps[ widget ] = cachePix; 423 pixmaps[ widget ] = cachePix;
424 } 424 }
425 else { 425 else {
426 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget ); 426 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget );
427 QImage tmpImg = images[ widget ] ->smoothScale( w, h ); 427 QImage tmpImg = images[ widget ] ->smoothScale( w, h );
428 pixmaps[ widget ] = new OThemePixmap; 428 pixmaps[ widget ] = new OThemePixmap;
429 pixmaps[ widget ] ->convertFromImage( tmpImg ); 429 pixmaps[ widget ] ->convertFromImage( tmpImg );
430 if ( blends[ widget ] != 0.0 ) 430 if ( blends[ widget ] != 0.0 )
431 blend( widget ); 431 blend( widget );
432 } 432 }
433 } 433 }
434 } 434 }
435 else if ( scaleHints[ widget ] == HorizontalScale ) { 435 else if ( scaleHints[ widget ] == HorizontalScale ) {
436 if ( pixmaps[ widget ] ->width() != w ) { 436 if ( pixmaps[ widget ] ->width() != w ) {
437 OThemePixmap * cachePix = cache->horizontalPixmap( w, widget ); 437 OThemePixmap * cachePix = cache->horizontalPixmap( w, widget );
438 if ( cachePix ) { 438 if ( cachePix ) {
439 cachePix = new OThemePixmap( *cachePix ); 439 cachePix = new OThemePixmap( *cachePix );
440 if ( pixmaps[ widget ] ) 440 if ( pixmaps[ widget ] )
441 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget ); 441 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget );
442 else 442 else
443 qDebug ( "We would have inserted a null pixmap!\n" ); 443 qDebug ( "We would have inserted a null pixmap!\n" );
444 pixmaps[ widget ] = cachePix; 444 pixmaps[ widget ] = cachePix;
445 } 445 }
446 else { 446 else {
447 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget ); 447 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget );
448 QImage tmpImg = images[ widget ] -> 448 QImage tmpImg = images[ widget ] ->
449 smoothScale( w, images[ widget ] ->height() ); 449 smoothScale( w, images[ widget ] ->height() );
450 pixmaps[ widget ] = new OThemePixmap; 450 pixmaps[ widget ] = new OThemePixmap;
451 pixmaps[ widget ] ->convertFromImage( tmpImg ); 451 pixmaps[ widget ] ->convertFromImage( tmpImg );
452 if ( blends[ widget ] != 0.0 ) 452 if ( blends[ widget ] != 0.0 )
453 blend( widget ); 453 blend( widget );
454 } 454 }
455 } 455 }
456 } 456 }
457 else if ( scaleHints[ widget ] == VerticalScale ) { 457 else if ( scaleHints[ widget ] == VerticalScale ) {
458 if ( pixmaps[ widget ] ->height() != h ) { 458 if ( pixmaps[ widget ] ->height() != h ) {
459 OThemePixmap * cachePix = cache->verticalPixmap( w, widget ); 459 OThemePixmap * cachePix = cache->verticalPixmap( w, widget );
460 if ( cachePix ) { 460 if ( cachePix ) {
461 cachePix = new OThemePixmap( *cachePix ); 461 cachePix = new OThemePixmap( *cachePix );
462 if ( pixmaps[ widget ] ) 462 if ( pixmaps[ widget ] )
463 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget ); 463 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget );
464 else 464 else
465 qDebug ( "We would have inserted a null pixmap!\n" ); 465 qDebug ( "We would have inserted a null pixmap!\n" );
466 pixmaps[ widget ] = cachePix; 466 pixmaps[ widget ] = cachePix;
467 } 467 }
468 else { 468 else {
469 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget ); 469 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget );
470 QImage tmpImg = 470 QImage tmpImg =
471 images[ widget ] ->smoothScale( images[ widget ] ->width(), h ); 471 images[ widget ] ->smoothScale( images[ widget ] ->width(), h );
472 pixmaps[ widget ] = new OThemePixmap; 472 pixmaps[ widget ] = new OThemePixmap;
473 pixmaps[ widget ] ->convertFromImage( tmpImg ); 473 pixmaps[ widget ] ->convertFromImage( tmpImg );
474 if ( blends[ widget ] != 0.0 ) 474 if ( blends[ widget ] != 0.0 )
475 blend( widget ); 475 blend( widget );
476 } 476 }
477 } 477 }
478 } 478 }
479 // If blended tile here so the blend is scaled properly 479 // If blended tile here so the blend is scaled properly
480 else if ( scaleHints[ widget ] == TileScale && blends[ widget ] != 0.0 ) { 480 else if ( scaleHints[ widget ] == TileScale && blends[ widget ] != 0.0 ) {
481 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w || 481 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w ||
482 pixmaps[ widget ] ->height() != h ) { 482 pixmaps[ widget ] ->height() != h ) {
483 OThemePixmap * cachePix = cache->pixmap( w, h, widget ); 483 OThemePixmap * cachePix = cache->pixmap( w, h, widget );
484 if ( cachePix ) { 484 if ( cachePix ) {
485 cachePix = new OThemePixmap( *cachePix ); 485 cachePix = new OThemePixmap( *cachePix );
486 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget ); 486 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget );
487 pixmaps[ widget ] = cachePix; 487 pixmaps[ widget ] = cachePix;
488 } 488 }
489 else { 489 else {
490 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget ); 490 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget );