00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
#include "config.h"
00019
#include "kglobalsettings.h"
00020
00021
#include <qdir.h>
00022
#include <qpixmap.h>
00023
#include <qfontdatabase.h>
00024
#include <qcursor.h>
00025
00026
#include <kconfig.h>
00027
#include <ksimpleconfig.h>
00028
#include <kapplication.h>
00029
00030
#include <kipc.h>
00031
00032
#ifdef Q_WS_WIN
00033
#include <windows.h>
00034
#include "qt_windows.h"
00035
static QRgb qt_colorref2qrgb(COLORREF col)
00036 {
00037
return qRgb(GetRValue(col),GetGValue(col),GetBValue(col));
00038 }
00039
#endif
00040
00041
#include <kdebug.h>
00042
#include <kglobal.h>
00043
#include <kshortcut.h>
00044
#include <kstandarddirs.h>
00045
#include <kcharsets.h>
00046
#include <kaccel.h>
00047
#include <klocale.h>
00048
#include <qfontinfo.h>
00049
#include <stdlib.h>
00050
#include <kprotocolinfo.h>
00051
00052
#ifdef Q_WS_X11
00053
#include <X11/Xlib.h>
00054
#endif
00055
00056
QString* KGlobalSettings::s_desktopPath = 0;
00057
QString* KGlobalSettings::s_autostartPath = 0;
00058
QString* KGlobalSettings::s_trashPath = 0;
00059
QString* KGlobalSettings::s_documentPath = 0;
00060
QFont *KGlobalSettings::_generalFont = 0;
00061
QFont *KGlobalSettings::_fixedFont = 0;
00062
QFont *KGlobalSettings::_toolBarFont = 0;
00063
QFont *KGlobalSettings::_menuFont = 0;
00064
QFont *KGlobalSettings::_windowTitleFont = 0;
00065
QFont *KGlobalSettings::_taskbarFont = 0;
00066
QFont *KGlobalSettings::_largeFont = 0;
00067
QColor *KGlobalSettings::_kde34Blue = 0;
00068
QColor *KGlobalSettings::_inactiveBackground = 0;
00069
QColor *KGlobalSettings::_inactiveForeground = 0;
00070
QColor *KGlobalSettings::_activeBackground = 0;
00071
QColor *KGlobalSettings::_buttonBackground = 0;
00072
QColor *KGlobalSettings::_selectBackground = 0;
00073
QColor *KGlobalSettings::_linkColor = 0;
00074
QColor *KGlobalSettings::_visitedLinkColor = 0;
00075
QColor *KGlobalSettings::alternateColor = 0;
00076
00077
KGlobalSettings::KMouseSettings *KGlobalSettings::s_mouseSettings = 0;
00078
00079 int KGlobalSettings::dndEventDelay()
00080 {
00081
KConfigGroup g( KGlobal::config(),
"General" );
00082
return g.
readNumEntry(
"StartDragDist", QApplication::startDragDistance());
00083 }
00084
00085 bool KGlobalSettings::singleClick()
00086 {
00087
KConfigGroup g( KGlobal::config(),
"KDE" );
00088
return g.
readBoolEntry(
"SingleClick", KDE_DEFAULT_SINGLECLICK);
00089 }
00090
00091 KGlobalSettings::TearOffHandle KGlobalSettings::insertTearOffHandle()
00092 {
00093
int tearoff;
00094
bool effectsenabled;
00095
KConfigGroup g( KGlobal::config(),
"KDE" );
00096 effectsenabled = g.
readBoolEntry(
"EffectsEnabled",
true);
00097 tearoff = g.
readNumEntry(
"InsertTearOffHandle", KDE_DEFAULT_INSERTTEAROFFHANDLES);
00098
return effectsenabled ? (
TearOffHandle) tearoff :
Disable;
00099 }
00100
00101 bool KGlobalSettings::changeCursorOverIcon()
00102 {
00103
KConfigGroup g( KGlobal::config(),
"KDE" );
00104
return g.
readBoolEntry(
"ChangeCursor", KDE_DEFAULT_CHANGECURSOR);
00105 }
00106
00107 bool KGlobalSettings::visualActivate()
00108 {
00109
KConfigGroup g( KGlobal::config(),
"KDE" );
00110
return g.
readBoolEntry(
"VisualActivate", KDE_DEFAULT_VISUAL_ACTIVATE);
00111 }
00112
00113 unsigned int KGlobalSettings::visualActivateSpeed()
00114 {
00115
KConfigGroup g( KGlobal::config(),
"KDE" );
00116
return
00117 g.
readNumEntry(
00118
"VisualActivateSpeed",
00119 KDE_DEFAULT_VISUAL_ACTIVATE_SPEED
00120 );
00121 }
00122
00123
00124
00125 int KGlobalSettings::autoSelectDelay()
00126 {
00127
KConfigGroup g( KGlobal::config(),
"KDE" );
00128
return g.
readNumEntry(
"AutoSelectDelay", KDE_DEFAULT_AUTOSELECTDELAY);
00129 }
00130
00131 KGlobalSettings::Completion KGlobalSettings::completionMode()
00132 {
00133
int completion;
00134
KConfigGroup g( KGlobal::config(),
"General" );
00135 completion = g.
readNumEntry(
"completionMode", -1);
00136
if ((completion < (
int)
CompletionNone) ||
00137 (completion > (
int)
CompletionPopupAuto))
00138 {
00139 completion = (
int)
CompletionPopup;
00140 }
00141
return (
Completion) completion;
00142 }
00143
00144 bool KGlobalSettings::showContextMenusOnPress ()
00145 {
00146
KConfigGroup g(KGlobal::config(),
"ContextMenus");
00147
return g.
readBoolEntry(
"ShowOnPress",
true);
00148 }
00149
00150 int KGlobalSettings::contextMenuKey ()
00151 {
00152
KConfigGroup g(KGlobal::config(),
"Shortcuts");
00153
KShortcut cut (g.
readEntry (
"PopupMenuContext",
"Menu"));
00154
return cut.keyCodeQt();
00155 }
00156
00157 QColor KGlobalSettings::toolBarHighlightColor()
00158 {
00159 initColors();
00160
KConfigGroup g( KGlobal::config(),
"Toolbar style" );
00161
return g.
readColorEntry(
"HighlightColor", _kde34Blue);
00162 }
00163
00164 QColor KGlobalSettings::inactiveTitleColor()
00165 {
00166
#ifdef Q_WS_WIN
00167
return qt_colorref2qrgb(GetSysColor(COLOR_INACTIVECAPTION));
00168
#else
00169
if (!_inactiveBackground)
00170 _inactiveBackground =
new QColor(237, 237, 237);
00171
KConfigGroup g( KGlobal::config(),
"WM" );
00172
return g.
readColorEntry(
"inactiveBackground", _inactiveBackground );
00173
#endif
00174
}
00175
00176 QColor KGlobalSettings::inactiveTextColor()
00177 {
00178
#ifdef Q_WS_WIN
00179
return qt_colorref2qrgb(GetSysColor(COLOR_INACTIVECAPTIONTEXT));
00180
#else
00181
if (!_inactiveForeground)
00182 _inactiveForeground =
new QColor(221,221,221);
00183
KConfigGroup g( KGlobal::config(),
"WM" );
00184
return g.
readColorEntry(
"inactiveForeground", _inactiveForeground );
00185
#endif
00186
}
00187
00188 QColor KGlobalSettings::activeTitleColor()
00189 {
00190
#ifdef Q_WS_WIN
00191
return qt_colorref2qrgb(GetSysColor(COLOR_ACTIVECAPTION));
00192
#else
00193
initColors();
00194
if (!_activeBackground)
00195 _activeBackground =
new QColor(65,142,220);
00196
KConfigGroup g( KGlobal::config(),
"WM" );
00197
return g.
readColorEntry(
"activeBackground", _activeBackground);
00198
#endif
00199
}
00200
00201 QColor KGlobalSettings::activeTextColor()
00202 {
00203
#ifdef Q_WS_WIN
00204
return qt_colorref2qrgb(GetSysColor(COLOR_CAPTIONTEXT));
00205
#else
00206
KConfigGroup g( KGlobal::config(),
"WM" );
00207
return g.
readColorEntry(
"activeForeground", &Qt::white );
00208
#endif
00209
}
00210
00211 int KGlobalSettings::contrast()
00212 {
00213
KConfigGroup g( KGlobal::config(),
"KDE" );
00214
return g.
readNumEntry(
"contrast", 7 );
00215 }
00216
00217 QColor KGlobalSettings::buttonBackground()
00218 {
00219
if (!_buttonBackground)
00220 _buttonBackground =
new QColor(221,223,228);
00221
KConfigGroup g( KGlobal::config(),
"General" );
00222
return g.
readColorEntry(
"buttonBackground", _buttonBackground );
00223 }
00224
00225 QColor KGlobalSettings::buttonTextColor()
00226 {
00227
KConfigGroup g( KGlobal::config(),
"General" );
00228
return g.
readColorEntry(
"buttonForeground", &Qt::black );
00229 }
00230
00231
00232
00233
00234 QColor KGlobalSettings::baseColor()
00235 {
00236
KConfigGroup g( KGlobal::config(),
"General" );
00237
return g.
readColorEntry(
"windowBackground", &Qt::white );
00238 }
00239
00240
00241
00242
00243 QColor KGlobalSettings::textColor()
00244 {
00245
KConfigGroup g( KGlobal::config(),
"General" );
00246
return g.
readColorEntry(
"windowForeground", &Qt::black );
00247 }
00248
00249
00250
00251
00252 QColor KGlobalSettings::highlightedTextColor()
00253 {
00254
KConfigGroup g( KGlobal::config(),
"General" );
00255
return g.
readColorEntry(
"selectForeground", &Qt::white );
00256 }
00257
00258
00259
00260
00261 QColor KGlobalSettings::highlightColor()
00262 {
00263 initColors();
00264
if (!_selectBackground)
00265 _selectBackground =
new QColor(103,141,178);
00266
KConfigGroup g( KGlobal::config(),
"General" );
00267
return g.
readColorEntry(
"selectBackground", _selectBackground );
00268 }
00269
00270 QColor KGlobalSettings::alternateBackgroundColor()
00271 {
00272 initColors();
00273
KConfigGroup g( KGlobal::config(),
"General" );
00274 *alternateColor =
calculateAlternateBackgroundColor(
baseColor() );
00275
return g.
readColorEntry(
"alternateBackground", alternateColor );
00276 }
00277
00278 QColor KGlobalSettings::calculateAlternateBackgroundColor(
const QColor& base)
00279 {
00280
if (base == Qt::white)
00281
return QColor(238,246,255);
00282
else
00283 {
00284
int h, s, v;
00285 base.hsv( &h, &s, &v );
00286
if (v > 128)
00287
return base.
dark(106);
00288
else if (base != Qt::black)
00289
return base.
light(110);
00290
00291
return QColor(32,32,32);
00292 }
00293 }
00294
00295 bool KGlobalSettings::shadeSortColumn()
00296 {
00297
KConfigGroup g( KGlobal::config(),
"General" );
00298
return g.
readBoolEntry(
"shadeSortColumn", KDE_DEFAULT_SHADE_SORT_COLUMN );
00299 }
00300
00301 QColor KGlobalSettings::linkColor()
00302 {
00303 initColors();
00304
if (!_linkColor)
00305 _linkColor =
new QColor(0,0,238);
00306
KConfigGroup g( KGlobal::config(),
"General" );
00307
return g.
readColorEntry(
"linkColor", _linkColor );
00308 }
00309
00310 QColor KGlobalSettings::visitedLinkColor()
00311 {
00312
if (!_visitedLinkColor)
00313 _visitedLinkColor =
new QColor(82,24,139);
00314
KConfigGroup g( KGlobal::config(),
"General" );
00315
return g.
readColorEntry(
"visitedLinkColor", _visitedLinkColor );
00316 }
00317
00318 QFont KGlobalSettings::generalFont()
00319 {
00320
if (_generalFont)
00321
return *_generalFont;
00322
00323
00324 _generalFont =
new QFont(
"Sans", 10);
00325 _generalFont->
setPointSize(10);
00326 _generalFont->
setStyleHint(QFont::SansSerif);
00327
00328
KConfigGroup g( KGlobal::config(),
"General" );
00329 *_generalFont = g.
readFontEntry(
"font", _generalFont);
00330
00331
return *_generalFont;
00332 }
00333
00334 QFont KGlobalSettings::fixedFont()
00335 {
00336
if (_fixedFont)
00337
return *_fixedFont;
00338
00339
00340 _fixedFont =
new QFont(
"Monospace", 10);
00341 _fixedFont->
setPointSize(10);
00342 _fixedFont->
setStyleHint(QFont::TypeWriter);
00343
00344
KConfigGroup g( KGlobal::config(),
"General" );
00345 *_fixedFont = g.
readFontEntry(
"fixed", _fixedFont);
00346
00347
return *_fixedFont;
00348 }
00349
00350 QFont KGlobalSettings::toolBarFont()
00351 {
00352
if(_toolBarFont)
00353
return *_toolBarFont;
00354
00355
00356 _toolBarFont =
new QFont(
"Sans", 10);
00357 _toolBarFont->
setPointSize(10);
00358 _toolBarFont->
setStyleHint(QFont::SansSerif);
00359
00360
KConfigGroup g( KGlobal::config(),
"General" );
00361 *_toolBarFont = g.
readFontEntry(
"toolBarFont", _toolBarFont);
00362
00363
return *_toolBarFont;
00364 }
00365
00366 QFont KGlobalSettings::menuFont()
00367 {
00368
if(_menuFont)
00369
return *_menuFont;
00370
00371
00372 _menuFont =
new QFont(
"Sans", 10);
00373 _menuFont->
setPointSize(10);
00374 _menuFont->
setStyleHint(QFont::SansSerif);
00375
00376
KConfigGroup g( KGlobal::config(),
"General" );
00377 *_menuFont = g.
readFontEntry(
"menuFont", _menuFont);
00378
00379
return *_menuFont;
00380 }
00381
00382 QFont KGlobalSettings::windowTitleFont()
00383 {
00384
if(_windowTitleFont)
00385
return *_windowTitleFont;
00386
00387
00388 _windowTitleFont =
new QFont(
"Sans", 10, QFont::Bold);
00389 _windowTitleFont->
setPointSize(10);
00390 _windowTitleFont->
setStyleHint(QFont::SansSerif);
00391
00392
KConfigGroup g( KGlobal::config(),
"WM" );
00393 *_windowTitleFont = g.
readFontEntry(
"activeFont", _windowTitleFont);
00394
00395
return *_windowTitleFont;
00396 }
00397
00398 QFont KGlobalSettings::taskbarFont()
00399 {
00400
if(_taskbarFont)
00401
return *_taskbarFont;
00402
00403
00404 _taskbarFont =
new QFont(
"Sans", 11);
00405 _taskbarFont->
setPointSize(11);
00406 _taskbarFont->
setStyleHint(QFont::SansSerif);
00407
00408
KConfigGroup g( KGlobal::config(),
"General" );
00409 *_taskbarFont = g.
readFontEntry(
"taskbarFont", _taskbarFont);
00410
00411
return *_taskbarFont;
00412 }
00413
00414
00415 QFont KGlobalSettings::largeFont(
const QString &text)
00416 {
00417
QFontDatabase db;
00418
QStringList fam = db.
families();
00419
00420
00421
if (fam.remove(
"Arial"))
00422 fam.prepend(
"Arial");
00423
if (fam.remove(
"Verdana"))
00424 fam.prepend(
"Verdana");
00425
if (fam.remove(
"Tahoma"))
00426 fam.prepend(
"Tahoma");
00427
if (fam.remove(
"Lucida Sans"))
00428 fam.prepend(
"Lucida Sans");
00429
if (fam.remove(
"Lucidux Sans"))
00430 fam.prepend(
"Lucidux Sans");
00431
if (fam.remove(
"Nimbus Sans"))
00432 fam.prepend(
"Nimbus Sans");
00433
if (fam.remove(
"Gothic I"))
00434 fam.prepend(
"Gothic I");
00435
00436
if (_largeFont)
00437 fam.prepend(_largeFont->
family());
00438
00439
for(QStringList::ConstIterator it = fam.begin();
00440 it != fam.end(); ++it)
00441 {
00442
if (db.
isSmoothlyScalable(*it) && !db.
isFixedPitch(*it))
00443 {
00444
QFont font(*it);
00445 font.
setPixelSize(75);
00446
QFontMetrics metrics(font);
00447
int h = metrics.
height();
00448
if ((h < 60) || ( h > 90))
00449
continue;
00450
00451
bool ok =
true;
00452
for(
unsigned int i = 0; i < text.
length(); i++)
00453 {
00454
if (!metrics.
inFont(text[i]))
00455 {
00456 ok =
false;
00457
break;
00458 }
00459 }
00460
if (!ok)
00461
continue;
00462
00463 font.
setPointSize(48);
00464 _largeFont =
new QFont(font);
00465
return *_largeFont;
00466 }
00467 }
00468 _largeFont =
new QFont(
KGlobalSettings::generalFont());
00469 _largeFont->
setPointSize(48);
00470
return *_largeFont;
00471 }
00472
00473
void KGlobalSettings::initStatic()
00474 {
00475
if ( s_desktopPath != 0 )
00476
return;
00477
00478 s_desktopPath =
new QString();
00479 s_autostartPath =
new QString();
00480 s_trashPath =
new QString();
00481 s_documentPath =
new QString();
00482
00483
KConfigGroup g( KGlobal::config(),
"Paths" );
00484
00485
00486 *s_desktopPath =
QDir::homeDirPath() +
"/Desktop/";
00487 *s_desktopPath = g.
readPathEntry(
"Desktop", *s_desktopPath);
00488 *s_desktopPath = QDir::cleanDirPath( *s_desktopPath );
00489
if ( !s_desktopPath->
endsWith(
"/") )
00490 s_desktopPath->
append(
'/');
00491
00492
00493 *s_trashPath = *s_desktopPath + i18n(
"Trash") +
"/";
00494 *s_trashPath = g.
readPathEntry(
"Trash" , *s_trashPath);
00495 *s_trashPath = QDir::cleanDirPath( *s_trashPath );
00496
if ( !s_trashPath->
endsWith(
"/") )
00497 s_trashPath->
append(
'/');
00498
00499
if ( !g.
hasKey(
"Trash" ) )
00500 {
00501 g.
writePathEntry(
"Trash", *s_trashPath,
true,
true );
00502 g.
sync();
00503 }
00504
00505
00506 *s_autostartPath =
KGlobal::dirs()->
localkdedir() +
"Autostart/";
00507 *s_autostartPath = g.
readPathEntry(
"Autostart" , *s_autostartPath);
00508 *s_autostartPath =
QDir::cleanDirPath( *s_autostartPath );
00509
if ( !s_autostartPath->
endsWith(
"/") )
00510 s_autostartPath->
append(
'/');
00511
00512
00513 *s_documentPath = g.
readPathEntry(
"Documents", (QDir::homeDirPath()+
"/Documents/") );
00514 *s_documentPath =
QDir::cleanDirPath( *s_documentPath );
00515
if ( !s_documentPath->
endsWith(
"/"))
00516 s_documentPath->
append(
'/');
00517
00518
00519
if (kapp)
00520 kapp->addKipcEventMask(KIPC::SettingsChanged);
00521 }
00522
00523
void KGlobalSettings::initColors()
00524 {
00525
if (!_kde34Blue) {
00526
if (
QPixmap::defaultDepth() > 8)
00527 _kde34Blue =
new QColor(33, 68, 156);
00528
else
00529 _kde34Blue =
new QColor(0, 0, 192);
00530 }
00531
if (!alternateColor)
00532 alternateColor =
new QColor(237, 244, 249);
00533 }
00534
00535
void KGlobalSettings::rereadFontSettings()
00536 {
00537
delete _generalFont;
00538 _generalFont = 0L;
00539
delete _fixedFont;
00540 _fixedFont = 0L;
00541
delete _menuFont;
00542 _menuFont = 0L;
00543
delete _toolBarFont;
00544 _toolBarFont = 0L;
00545
delete _windowTitleFont;
00546 _windowTitleFont = 0L;
00547
delete _taskbarFont;
00548 _taskbarFont = 0L;
00549 }
00550
00551
void KGlobalSettings::rereadPathSettings()
00552 {
00553 kdDebug() <<
"KGlobalSettings::rereadPathSettings" <<
endl;
00554
delete s_autostartPath;
00555 s_autostartPath = 0L;
00556
delete s_trashPath;
00557 s_trashPath = 0L;
00558
delete s_desktopPath;
00559 s_desktopPath = 0L;
00560
delete s_documentPath;
00561 s_documentPath = 0L;
00562 }
00563
00564 KGlobalSettings::KMouseSettings &
KGlobalSettings::mouseSettings()
00565 {
00566
if ( ! s_mouseSettings )
00567 {
00568 s_mouseSettings =
new KMouseSettings;
00569 KMouseSettings & s = *s_mouseSettings;
00570
00571
#ifndef Q_WS_WIN
00572
KConfigGroup g( KGlobal::config(),
"Mouse" );
00573 QString setting = g.
readEntry(
"MouseButtonMapping");
00574
if (setting ==
"RightHanded")
00575 s.
handed = KMouseSettings::RightHanded;
00576
else if (setting ==
"LeftHanded")
00577 s.
handed = KMouseSettings::LeftHanded;
00578
else
00579 {
00580
#ifdef Q_WS_X11
00581
00582
00583
00584 s.
handed = KMouseSettings::RightHanded;
00585
unsigned char map[20];
00586
int num_buttons = XGetPointerMapping(kapp->getDisplay(), map, 20);
00587
if( num_buttons == 2 )
00588 {
00589
if ( (
int)map[0] == 1 && (
int)map[1] == 2 )
00590 s.
handed = KMouseSettings::RightHanded;
00591
else if ( (
int)map[0] == 2 && (
int)map[1] == 1 )
00592 s.
handed = KMouseSettings::LeftHanded;
00593 }
00594
else if( num_buttons >= 3 )
00595 {
00596
if ( (
int)map[0] == 1 && (
int)map[2] == 3 )
00597 s.
handed = KMouseSettings::RightHanded;
00598
else if ( (
int)map[0] == 3 && (
int)map[2] == 1 )
00599 s.
handed = KMouseSettings::LeftHanded;
00600 }
00601
#else
00602
00603
#endif
00604
}
00605
#endif //Q_WS_WIN
00606
}
00607
#ifdef Q_WS_WIN
00608
00609 s_mouseSettings->
handed = (GetSystemMetrics(SM_SWAPBUTTON) ? KMouseSettings::LeftHanded : KMouseSettings::RightHanded);
00610
#endif
00611
return *s_mouseSettings;
00612 }
00613
00614
void KGlobalSettings::rereadMouseSettings()
00615 {
00616
#ifndef Q_WS_WIN
00617
delete s_mouseSettings;
00618 s_mouseSettings = 0L;
00619
#endif
00620
}
00621
00622 bool KGlobalSettings::isMultiHead()
00623 {
00624
#ifdef Q_WS_WIN
00625
return GetSystemMetrics(SM_CMONITORS) > 1;
00626
#else
00627
QCString multiHead = getenv(
"KDE_MULTIHEAD");
00628
if (!multiHead.
isEmpty()) {
00629
return (multiHead.
lower() ==
"true");
00630 }
00631
return false;
00632
#endif
00633
}
00634
00635 bool KGlobalSettings::wheelMouseZooms()
00636 {
00637
KConfigGroup g( KGlobal::config(),
"KDE" );
00638
return g.
readBoolEntry(
"WheelMouseZooms", KDE_DEFAULT_WHEEL_ZOOM );
00639 }
00640
00641 QRect KGlobalSettings::splashScreenDesktopGeometry()
00642 {
00643
QDesktopWidget *dw =
QApplication::desktop();
00644
00645
if (dw->
isVirtualDesktop()) {
00646
KConfigGroup group(KGlobal::config(),
"Windows");
00647
int scr = group.readNumEntry(
"Unmanaged", -3);
00648
if (group.readBoolEntry(
"XineramaEnabled",
true) && scr != -2) {
00649
if (scr == -3)
00650 scr = dw->
screenNumber(QCursor::pos());
00651
return dw->
screenGeometry(scr);
00652 }
else {
00653
return dw->geometry();
00654 }
00655 }
else {
00656
return dw->geometry();
00657 }
00658 }
00659
00660 QRect KGlobalSettings::desktopGeometry(
const QPoint& point)
00661 {
00662
QDesktopWidget *dw =
QApplication::desktop();
00663
00664
if (dw->
isVirtualDesktop()) {
00665
KConfigGroup group(KGlobal::config(),
"Windows");
00666
if (group.readBoolEntry(
"XineramaEnabled",
true) &&
00667 group.readBoolEntry(
"XineramaPlacementEnabled",
true)) {
00668
return dw->
screenGeometry(dw->
screenNumber(point));
00669 }
else {
00670
return dw->geometry();
00671 }
00672 }
else {
00673
return dw->geometry();
00674 }
00675 }
00676
00677 QRect KGlobalSettings::desktopGeometry(
QWidget* w)
00678 {
00679
QDesktopWidget *dw =
QApplication::desktop();
00680
00681
if (dw->
isVirtualDesktop()) {
00682
KConfigGroup group(KGlobal::config(),
"Windows");
00683
if (group.readBoolEntry(
"XineramaEnabled",
true) &&
00684 group.readBoolEntry(
"XineramaPlacementEnabled",
true)) {
00685
if (w)
00686
return dw->
screenGeometry(dw->
screenNumber(w));
00687
else return dw->
screenGeometry(-1);
00688 }
else {
00689
return dw->geometry();
00690 }
00691 }
else {
00692
return dw->geometry();
00693 }
00694 }
00695
00696 bool KGlobalSettings::showIconsOnPushButtons()
00697 {
00698
KConfigGroup g( KGlobal::config(),
"KDE" );
00699
return g.
readBoolEntry(
"ShowIconsOnPushButtons",
00700 KDE_DEFAULT_ICON_ON_PUSHBUTTON);
00701 }
00702
00703 bool KGlobalSettings::showFilePreview(
const KURL &url)
00704 {
00705
KConfigGroup g(KGlobal::config(),
"PreviewSettings");
00706 QString protocol = url.
protocol();
00707
bool defaultSetting = KProtocolInfo::showFilePreview( protocol );
00708
return g.
readBoolEntry(protocol, defaultSetting );
00709 }
00710
00711 bool KGlobalSettings::opaqueResize()
00712 {
00713
KConfigGroup g( KGlobal::config(),
"KDE" );
00714
return g.
readBoolEntry(
"OpaqueResize",
00715 KDE_DEFAULT_OPAQUE_RESIZE);
00716 }
00717
00718 int KGlobalSettings::buttonLayout()
00719 {
00720
KConfigGroup g( KGlobal::config(),
"KDE" );
00721
return g.
readNumEntry(
"ButtonLayout",
00722 KDE_DEFAULT_BUTTON_LAYOUT);
00723 }