~ubuntu-branches/ubuntu/warty/kdebase/warty

« back to all changes in this revision

Viewing changes to kcontrol/kicker/lookandfeeltab_impl.cpp

  • Committer: Bazaar Package Importer
  • Author(s): LaMont Jones
  • Date: 2004-09-16 04:51:45 UTC
  • Revision ID: james.westby@ubuntu.com-20040916045145-9vr63kith3k1cpza
Tags: upstream-3.2.2
ImportĀ upstreamĀ versionĀ 3.2.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  lookandfeeltab.cpp
 
3
 *
 
4
 *  Copyright (c) 2000 Matthias Elter <elter@kde.org>
 
5
 *  Copyright (c) 2000 Aaron J. Seigo <aseigo@olympusproject.org>
 
6
 *
 
7
 *  This program is free software; you can redistribute it and/or modify
 
8
 *  it under the terms of the GNU General Public License as published by
 
9
 *  the Free Software Foundation; either version 2 of the License, or
 
10
 *  (at your option) any later version.
 
11
 *
 
12
 *  This program is distributed in the hope that it will be useful,
 
13
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
 *  GNU General Public License for more details.
 
16
 *
 
17
 *  You should have received a copy of the GNU General Public License
 
18
 *  along with this program; if not, write to the Free Software
 
19
 */
 
20
 
 
21
#include <qcheckbox.h>
 
22
#include <qlabel.h>
 
23
#include <qradiobutton.h>
 
24
#include <qregexp.h>
 
25
 
 
26
#include <kcolorbutton.h>
 
27
#include <kstandarddirs.h>
 
28
#include <klocale.h>
 
29
#include <kimageio.h>
 
30
#include <kiconeffect.h>
 
31
#include <kfiledialog.h>
 
32
#include <kmessagebox.h>
 
33
#include <klineedit.h>
 
34
 
 
35
#include "main.h"
 
36
#include "advancedDialog.h"
 
37
#include "lookandfeeltab_impl.h"
 
38
#include "lookandfeeltab_impl.moc"
 
39
 
 
40
#include <iostream>
 
41
using namespace std;
 
42
 
 
43
LookAndFeelTab::LookAndFeelTab( QWidget *parent, const char* name )
 
44
  : LookAndFeelTabBase (parent, name)
 
45
{
 
46
  connect(m_zoom_cb, SIGNAL(clicked()), SIGNAL(changed()));
 
47
  connect(m_showToolTips, SIGNAL(clicked()), SIGNAL(changed()));
 
48
 
 
49
  connect(m_kmenuTile, SIGNAL(activated(int)), SIGNAL(changed()));
 
50
  connect(m_desktopTile, SIGNAL(activated(int)), SIGNAL(changed()));
 
51
  connect(m_browserTile, SIGNAL(activated(int)), SIGNAL(changed()));
 
52
  connect(m_urlTile, SIGNAL(activated(int)), SIGNAL(changed()));
 
53
  connect(m_exeTile, SIGNAL(activated(int)), SIGNAL(changed()));
 
54
  connect(m_wlTile, SIGNAL(activated(int)), SIGNAL(changed()));
 
55
 
 
56
  connect(m_kmenuTile, SIGNAL(activated(int)), SLOT(kmenuTileChanged(int)));
 
57
  connect(m_desktopTile, SIGNAL(activated(int)), SLOT(desktopTileChanged(int)));
 
58
  connect(m_browserTile, SIGNAL(activated(int)), SLOT(browserTileChanged(int)));
 
59
  connect(m_urlTile, SIGNAL(activated(int)), SLOT(urlTileChanged(int)));
 
60
  connect(m_exeTile, SIGNAL(activated(int)), SLOT(exeTileChanged(int)));
 
61
  connect(m_wlTile, SIGNAL(activated(int)), SLOT(wlTileChanged(int)));
 
62
 
 
63
  connect(m_kmenuColor, SIGNAL(changed(const QColor&)), SIGNAL(changed()));
 
64
  connect(m_desktopColor, SIGNAL(changed(const QColor&)), SIGNAL(changed()));
 
65
  connect(m_browserColor, SIGNAL(changed(const QColor&)), SIGNAL(changed()));
 
66
  connect(m_urlColor, SIGNAL(changed(const QColor&)), SIGNAL(changed()));
 
67
  connect(m_exeColor, SIGNAL(changed(const QColor&)), SIGNAL(changed()));
 
68
  connect(m_wlColor, SIGNAL(changed(const QColor&)), SIGNAL(changed()));
 
69
 
 
70
  connect(m_transparent, SIGNAL(toggled(bool)), SIGNAL(changed()));
 
71
  connect(m_backgroundImage, SIGNAL(toggled(bool)), SIGNAL(changed()));
 
72
  connect(m_colorizeImage, SIGNAL(toggled(bool)), SIGNAL(changed()));
 
73
  connect(m_colorizeImage, SIGNAL(toggled(bool)), SLOT(browseTheme()));
 
74
 
 
75
  connect(m_backgroundInput->lineEdit(), SIGNAL(lostFocus()), SLOT(browseTheme()));
 
76
  m_backgroundInput->setFilter(KImageIO::pattern(KImageIO::Reading));
 
77
  m_backgroundInput->setCaption(i18n("Select Image File"));
 
78
 
 
79
  connect(m_showToolTips, SIGNAL(clicked()), SIGNAL(changed()));
 
80
 
 
81
  fillTileCombos();
 
82
}
 
83
 
 
84
void LookAndFeelTab::browseTheme()
 
85
{
 
86
    browseTheme(m_backgroundInput->url());
 
87
}
 
88
 
 
89
void LookAndFeelTab::browseTheme(const QString& newtheme)
 
90
{
 
91
    if (newtheme.isEmpty())
 
92
    {
 
93
        m_backgroundInput->clear();
 
94
        m_backgroundLabel->setPixmap(QPixmap());
 
95
        emit changed();
 
96
        return;
 
97
    }
 
98
 
 
99
    previewBackground(newtheme, true);
 
100
}
 
101
 
 
102
void LookAndFeelTab::launchAdvancedDialog()
 
103
{
 
104
    advancedDialog* dialog = new advancedDialog(this, "advancedDialog");
 
105
    dialog->exec();
 
106
        delete dialog;
 
107
}
 
108
 
 
109
void LookAndFeelTab::enableTransparency( bool enable )
 
110
{
 
111
    bool b = m_backgroundImage->isChecked();
 
112
 
 
113
    m_backgroundImage->setDisabled( enable );
 
114
    m_backgroundInput->setDisabled( enable || !b );
 
115
    m_backgroundLabel->setDisabled( enable || !b );
 
116
    m_colorizeImage->setDisabled( enable || !b );
 
117
}
 
118
 
 
119
void LookAndFeelTab::previewBackground(const QString& themepath, bool isNew)
 
120
{
 
121
    QString theme = themepath;
 
122
    if (theme[0] != '/')
 
123
        theme = locate("data", "kicker/" + theme);
 
124
 
 
125
    QImage tmpImg(theme);
 
126
    if(!tmpImg.isNull())
 
127
    {
 
128
        tmpImg = tmpImg.smoothScale(m_backgroundLabel->contentsRect().width(),
 
129
                                    m_backgroundLabel->contentsRect().height());
 
130
        if (m_colorizeImage->isChecked())
 
131
            colorize(tmpImg);
 
132
        theme_preview.convertFromImage(tmpImg);
 
133
        if(!theme_preview.isNull()) {
 
134
            m_backgroundInput->lineEdit()->setText(theme);
 
135
            m_backgroundLabel->setPixmap(theme_preview);
 
136
            if (isNew)
 
137
                emit changed();
 
138
            return;
 
139
        }
 
140
    }
 
141
 
 
142
    KMessageBox::error(this,
 
143
                       i18n("Error loading theme image file.\n\n%1\n%2")
 
144
                            .arg(theme, themepath));
 
145
    m_backgroundInput->clear();
 
146
    m_backgroundLabel->setPixmap(QPixmap());
 
147
}
 
148
 
 
149
void LookAndFeelTab::colorize(QImage& image)
 
150
{
 
151
    // mercilessly ripped from the k menu side image colorizing
 
152
    KConfig *config = KGlobal::config();
 
153
    config->setGroup("WM");
 
154
    QColor color = palette().active().highlight();
 
155
    QColor activeTitle = config->readColorEntry("activeBackground", &color);
 
156
    QColor inactiveTitle = config->readColorEntry("inactiveBackground", &color);
 
157
 
 
158
    // figure out which color is most suitable for recoloring to
 
159
    int h1, s1, v1, h2, s2, v2, h3, s3, v3;
 
160
    activeTitle.hsv(&h1, &s1, &v1);
 
161
    inactiveTitle.hsv(&h2, &s2, &v2);
 
162
    palette().active().background().hsv(&h3, &s3, &v3);
 
163
 
 
164
    if ( (kAbs(h1-h3)+kAbs(s1-s3)+kAbs(v1-v3) < kAbs(h2-h3)+kAbs(s2-s3)+kAbs(v2-v3)) &&
 
165
        ((kAbs(h1-h3)+kAbs(s1-s3)+kAbs(v1-v3) < 32) || (s1 < 32)) && (s2 > s1))
 
166
        color = inactiveTitle;
 
167
    else
 
168
        color = activeTitle;
 
169
 
 
170
    // limit max/min brightness
 
171
    int r, g, b;
 
172
    color.rgb(&r, &g, &b);
 
173
    int gray = qGray(r, g, b);
 
174
    if (gray > 180) {
 
175
        r = (r - (gray - 180) < 0 ? 0 : r - (gray - 180));
 
176
        g = (g - (gray - 180) < 0 ? 0 : g - (gray - 180));
 
177
        b = (b - (gray - 180) < 0 ? 0 : b - (gray - 180));
 
178
    } else if (gray < 76) {
 
179
        r = (r + (76 - gray) > 255 ? 255 : r + (76 - gray));
 
180
        g = (g + (76 - gray) > 255 ? 255 : g + (76 - gray));
 
181
        b = (b + (76 - gray) > 255 ? 255 : b + (76 - gray));
 
182
    }
 
183
    color.setRgb(r, g, b);
 
184
    KIconEffect::colorize(image, color, 1.0);
 
185
}
 
186
 
 
187
void LookAndFeelTab::load()
 
188
{
 
189
  KConfig c(KickerConfig::configName(), false, false);
 
190
 
 
191
  c.setGroup("General");
 
192
 
 
193
  bool use_theme = c.readBoolEntry("UseBackgroundTheme", true);
 
194
  QString theme = c.readPathEntry("BackgroundTheme", "wallpapers/default.png").stripWhiteSpace();
 
195
 
 
196
  bool transparent = c.readBoolEntry( "Transparent", false );
 
197
 
 
198
  m_backgroundImage->setChecked(use_theme);
 
199
  m_backgroundInput->setEnabled(use_theme);
 
200
  m_backgroundLabel->setEnabled(use_theme);
 
201
  m_colorizeImage->setChecked(c.readBoolEntry("ColorizeBackground", false));
 
202
  m_colorizeImage->setEnabled(use_theme);
 
203
  m_backgroundInput->lineEdit()->setText( QString::null );
 
204
  m_transparent->setChecked( transparent );
 
205
  m_backgroundLabel->clear();
 
206
  if (theme.length() > 0)
 
207
  {
 
208
    previewBackground(theme, false);
 
209
  }
 
210
 
 
211
  m_showToolTips->setChecked( c.readBoolEntry( "ShowToolTips", true ) );
 
212
 
 
213
  c.setGroup("buttons");
 
214
 
 
215
  bool zoom = c.readBoolEntry("EnableIconZoom", false);
 
216
  m_zoom_cb->setChecked(zoom);
 
217
 
 
218
  QString tile;
 
219
  c.setGroup("buttons");
 
220
 
 
221
  m_kmenuTile->setCurrentItem(0);
 
222
  m_desktopTile->setCurrentItem(0);
 
223
  m_urlTile->setCurrentItem(0);
 
224
  m_browserTile->setCurrentItem(0);
 
225
  m_exeTile->setCurrentItem(0);
 
226
  m_wlTile->setCurrentItem(0);
 
227
  m_kmenuColor->setEnabled(false);
 
228
  m_desktopColor->setEnabled(false);
 
229
  m_urlColor->setEnabled(false);
 
230
  m_browserColor->setEnabled(false);
 
231
  m_exeColor->setEnabled(false);
 
232
  m_wlColor->setEnabled(false);
 
233
  if (c.readBoolEntry("EnableTileBackground", false))
 
234
  {
 
235
    c.setGroup("button_tiles");
 
236
 
 
237
    if (c.readBoolEntry("EnableKMenuTiles", false))
 
238
    {
 
239
      tile = c.readEntry("KMenuTile", "solid_blue");
 
240
      m_kmenuTile->setCurrentItem(m_tilename.findIndex(tile));
 
241
      m_kmenuColor->setColor(c.readColorEntry("KMenuTileColor"));
 
242
      m_kmenuColor->setEnabled(tile == "Colorize");
 
243
    }
 
244
 
 
245
    if (c.readBoolEntry("EnableDesktopButtonTiles", false))
 
246
    {
 
247
      tile = c.readEntry("DesktopButtonTile", "solid_orange");
 
248
      m_desktopTile->setCurrentItem(m_tilename.findIndex(tile));
 
249
      m_desktopColor->setColor(c.readColorEntry("KMenuTileColor"));
 
250
      m_desktopColor->setEnabled(tile == "Colorize");
 
251
    }
 
252
 
 
253
    if (c.readBoolEntry("EnableURLTiles", false))
 
254
    {
 
255
      tile = c.readEntry("URLTile", "solid_gray");
 
256
      m_urlTile->setCurrentItem(m_tilename.findIndex(tile));
 
257
      m_urlColor->setColor(c.readColorEntry("KMenuTileColor"));
 
258
      m_urlColor->setEnabled(tile == "Colorize");
 
259
    }
 
260
 
 
261
    if (c.readBoolEntry("EnableBrowserTiles", false))
 
262
    {
 
263
      tile = c.readEntry("BrowserTile", "solid_green");
 
264
      m_browserTile->setCurrentItem(m_tilename.findIndex(tile));
 
265
      m_browserColor->setColor(c.readColorEntry("KMenuTileColor"));
 
266
      m_browserColor->setEnabled(tile == "Colorize");
 
267
    }
 
268
 
 
269
    if (c.readBoolEntry("EnableExeTiles", false))
 
270
    {
 
271
      tile = c.readEntry("ExeTile", "solid_red");
 
272
      m_exeTile->setCurrentItem(m_tilename.findIndex(tile));
 
273
      m_exeColor->setColor(c.readColorEntry("KMenuTileColor"));
 
274
      m_exeColor->setEnabled(tile == "Colorize");
 
275
    }
 
276
 
 
277
    if (c.readBoolEntry("EnableWindowListTiles", false))
 
278
    {
 
279
      tile = c.readEntry("WindowListTile", "solid_green");
 
280
      m_wlTile->setCurrentItem(m_tilename.findIndex(tile));
 
281
      m_wlColor->setColor(c.readColorEntry("KMenuTileColor"));
 
282
      m_wlColor->setEnabled(tile == "Colorize");
 
283
    }
 
284
  }
 
285
  enableTransparency( transparent );
 
286
}
 
287
 
 
288
void LookAndFeelTab::save()
 
289
{
 
290
  KConfig c(KickerConfig::configName(), false, false);
 
291
 
 
292
  c.setGroup("General");
 
293
  c.writeEntry("UseBackgroundTheme", m_backgroundImage->isChecked());
 
294
  c.writeEntry("ColorizeBackground", m_colorizeImage->isChecked());
 
295
  c.writeEntry("Transparent", m_transparent->isChecked());
 
296
  c.writePathEntry("BackgroundTheme", m_backgroundInput->url());
 
297
  c.writeEntry( "ShowToolTips", m_showToolTips->isChecked() );
 
298
 
 
299
  c.setGroup("button_tiles");
 
300
  bool enableTiles = false;
 
301
  int tile = m_kmenuTile->currentItem();
 
302
  if (tile > 0)
 
303
  {
 
304
    enableTiles = true;
 
305
    c.writeEntry("EnableKMenuTiles", true);
 
306
    c.writeEntry("KMenuTile", m_tilename[m_kmenuTile->currentItem()]);
 
307
    c.writeEntry("KMenuTileColor", m_kmenuColor->color());
 
308
  }
 
309
  else
 
310
  {
 
311
    c.writeEntry("EnableKMenuTiles", false);
 
312
  }
 
313
 
 
314
  tile = m_desktopTile->currentItem();
 
315
  if (tile > 0)
 
316
  {
 
317
    enableTiles = true;
 
318
    c.writeEntry("EnableDesktopButtonTiles", true);
 
319
    c.writeEntry("DesktopButtonTile", m_tilename[m_desktopTile->currentItem()]);
 
320
    c.writeEntry("DesktopButtonTileColor", m_desktopColor->color());
 
321
  }
 
322
  else
 
323
  {
 
324
    c.writeEntry("EnableDesktopButtonTiles", false);
 
325
  }
 
326
 
 
327
  tile = m_urlTile->currentItem();
 
328
  if (tile > 0)
 
329
  {
 
330
    enableTiles = true;
 
331
    c.writeEntry("EnableURLTiles", tile > 0);
 
332
    c.writeEntry("URLTile", m_tilename[m_urlTile->currentItem()]);
 
333
    c.writeEntry("URLTileColor", m_urlColor->color());
 
334
  }
 
335
  else
 
336
  {
 
337
    c.writeEntry("EnableURLTiles", false);
 
338
  }
 
339
 
 
340
  tile = m_browserTile->currentItem();
 
341
  if (tile > 0)
 
342
  {
 
343
    enableTiles = true;
 
344
    c.writeEntry("EnableBrowserTiles", tile > 0);
 
345
    c.writeEntry("BrowserTile", m_tilename[m_browserTile->currentItem()]);
 
346
    c.writeEntry("BrowserTileColor", m_browserColor->color());
 
347
  }
 
348
  else
 
349
  {
 
350
    c.writeEntry("EnableBrowserTiles", false);
 
351
  }
 
352
 
 
353
  tile = m_exeTile->currentItem();
 
354
  if (tile > 0)
 
355
  {
 
356
    enableTiles = true;
 
357
    c.writeEntry("EnableExeTiles", tile > 0);
 
358
    c.writeEntry("ExeTile", m_tilename[m_exeTile->currentItem()]);
 
359
    c.writeEntry("ExeTileColor", m_exeColor->color());
 
360
  }
 
361
  else
 
362
  {
 
363
    c.writeEntry("EnableExeTiles", false);
 
364
  }
 
365
 
 
366
  tile = m_wlTile->currentItem();
 
367
  if (tile > 0)
 
368
  {
 
369
    enableTiles = true;
 
370
    c.writeEntry("EnableWindowListTiles", tile > 0);
 
371
    c.writeEntry("WindowListTile", m_tilename[m_wlTile->currentItem()]);
 
372
    c.writeEntry("WindowListTileColor", m_wlColor->color());
 
373
  }
 
374
  else
 
375
  {
 
376
    c.writeEntry("EnableWindowListTiles", false);
 
377
  }
 
378
 
 
379
  c.setGroup("buttons");
 
380
  c.writeEntry("EnableTileBackground", enableTiles);
 
381
  c.writeEntry("EnableIconZoom", m_zoom_cb->isChecked());
 
382
 
 
383
  c.sync();
 
384
}
 
385
 
 
386
void LookAndFeelTab::defaults()
 
387
{
 
388
  m_zoom_cb->setChecked(false);
 
389
  m_showToolTips->setChecked(true);
 
390
 
 
391
  m_kmenuTile->setCurrentItem(0);
 
392
  m_urlTile->setCurrentItem(0);
 
393
  m_browserTile->setCurrentItem(0);
 
394
  m_exeTile->setCurrentItem(0);
 
395
  m_wlTile->setCurrentItem(0);
 
396
  m_desktopTile->setCurrentItem(0);
 
397
 
 
398
  m_kmenuColor->setColor(QColor());
 
399
  m_kmenuColor->setEnabled(false);
 
400
  m_urlColor->setColor(QColor());
 
401
  m_urlColor->setEnabled(false);
 
402
  m_desktopColor->setColor(QColor());
 
403
  m_desktopColor->setEnabled(false);
 
404
  m_browserColor->setColor(QColor());
 
405
  m_browserColor->setEnabled(false);
 
406
  m_wlColor->setColor(QColor());
 
407
  m_wlColor->setEnabled(false);
 
408
  m_exeColor->setColor(QColor());
 
409
  m_exeColor->setEnabled(false);
 
410
 
 
411
  QString theme = "wallpapers/default.png";
 
412
 
 
413
  m_backgroundImage->setChecked(true);
 
414
  m_transparent->setChecked(false);
 
415
  m_backgroundInput->lineEdit()->setText(theme);
 
416
  m_backgroundLabel->clear();
 
417
  m_colorizeImage->setChecked(true);
 
418
 
 
419
  m_backgroundInput->setEnabled(true);
 
420
  m_backgroundLabel->setEnabled(true);
 
421
  m_colorizeImage->setEnabled(true);
 
422
  previewBackground(theme, false);
 
423
}
 
424
 
 
425
void LookAndFeelTab::fillTileCombos()
 
426
{
 
427
/*  m_kmenuTile->clear();
 
428
  m_kmenuTile->insertItem(i18n("Default"));
 
429
  m_desktopTile->clear();
 
430
  m_desktopTile->insertItem(i18n("Default"));
 
431
  m_urlTile->clear();
 
432
  m_urlTile->insertItem(i18n("Default"));
 
433
  m_browserTile->clear();
 
434
  m_browserTile->insertItem(i18n("Default"));
 
435
  m_exeTile->clear();
 
436
  m_exeTile->insertItem(i18n("Default"));
 
437
  m_wlTile->clear();
 
438
  m_wlTile->insertItem(i18n("Default"));*/
 
439
  m_tilename.clear();
 
440
  m_tilename << "" << "Colorize";
 
441
 
 
442
  QStringList list = KGlobal::dirs()->findAllResources("tiles","*_tiny_up.png");
 
443
  int minHeight = 0;
 
444
 
 
445
  for (QStringList::Iterator it = list.begin(); it != list.end(); ++it)
 
446
  {
 
447
    QString tile = (*it);
 
448
    QPixmap pix(tile);
 
449
    QFileInfo fi(tile);
 
450
    tile = fi.fileName();
 
451
    tile.truncate(tile.find("_tiny_up.png"));
 
452
    m_tilename << tile;
 
453
 
 
454
    // Transform tile to words with title case
 
455
    // The same is done when generating messages for translation
 
456
    QStringList words = QStringList::split(QRegExp("[_ ]"), tile);
 
457
    for (QStringList::iterator w = words.begin(); w != words.end(); w++)
 
458
      (*w)[0] = (*w)[0].upper();
 
459
    tile = i18n(words.join(" ").utf8());
 
460
 
 
461
    m_kmenuTile->insertItem(pix, tile);
 
462
    m_desktopTile->insertItem(pix, tile);
 
463
    m_urlTile->insertItem(pix, tile);
 
464
    m_browserTile->insertItem(pix, tile);
 
465
    m_exeTile->insertItem(pix, tile);
 
466
    m_wlTile->insertItem(pix, tile);
 
467
 
 
468
    if (pix.height() > minHeight)
 
469
    {
 
470
        minHeight = pix.height();
 
471
    }
 
472
  }
 
473
 
 
474
  minHeight += 6;
 
475
  m_kmenuTile->setMinimumHeight(minHeight);
 
476
  m_desktopTile->setMinimumHeight(minHeight);
 
477
  m_urlTile->setMinimumHeight(minHeight);
 
478
  m_browserTile->setMinimumHeight(minHeight);
 
479
  m_exeTile->setMinimumHeight(minHeight);
 
480
  m_wlTile->setMinimumHeight(minHeight);
 
481
}
 
482
 
 
483
void LookAndFeelTab::kmenuTileChanged(int i)
 
484
{
 
485
    m_kmenuColor->setEnabled(i == 1);
 
486
}
 
487
 
 
488
void LookAndFeelTab::desktopTileChanged(int i)
 
489
{
 
490
    m_desktopColor->setEnabled(i == 1);
 
491
}
 
492
 
 
493
void LookAndFeelTab::browserTileChanged(int i)
 
494
{
 
495
    m_browserColor->setEnabled(i == 1);
 
496
}
 
497
 
 
498
void LookAndFeelTab::urlTileChanged(int i)
 
499
{
 
500
    m_urlColor->setEnabled(i == 1);
 
501
}
 
502
 
 
503
void LookAndFeelTab::exeTileChanged(int i)
 
504
{
 
505
    m_exeColor->setEnabled(i == 1);
 
506
}
 
507
 
 
508
void LookAndFeelTab::wlTileChanged(int i)
 
509
{
 
510
    m_wlColor->setEnabled(i == 1);
 
511
}