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