From 71abba5631126445560d6ab309a51c28745a0b74 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Fri, 15 Feb 2013 23:21:33 -0600 Subject: Fix prior commit --- tdecore/tdeglobalsettings.cpp | 774 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 774 insertions(+) create mode 100644 tdecore/tdeglobalsettings.cpp (limited to 'tdecore/tdeglobalsettings.cpp') diff --git a/tdecore/tdeglobalsettings.cpp b/tdecore/tdeglobalsettings.cpp new file mode 100644 index 000000000..c0c6329c7 --- /dev/null +++ b/tdecore/tdeglobalsettings.cpp @@ -0,0 +1,774 @@ +/* This file is part of the KDE libraries + Copyright (C) 2000 David Faure + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "config.h" +#include "tdeglobalsettings.h" + +#include +#include +#include +#include + +#include +#include +#include + +#include + +#ifdef Q_WS_WIN +#include +#include "qt_windows.h" +#include +static QRgb qt_colorref2qrgb(COLORREF col) +{ + return tqRgb(GetRValue(col),GetGValue(col),GetBValue(col)); +} +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#ifdef Q_WS_X11 +#include +#endif + +TQString* TDEGlobalSettings::s_desktopPath = 0; +TQString* TDEGlobalSettings::s_autostartPath = 0; +TQString* TDEGlobalSettings::s_trashPath = 0; +TQString* TDEGlobalSettings::s_documentPath = 0; +TQFont *TDEGlobalSettings::_generalFont = 0; +TQFont *TDEGlobalSettings::_fixedFont = 0; +TQFont *TDEGlobalSettings::_toolBarFont = 0; +TQFont *TDEGlobalSettings::_menuFont = 0; +TQFont *TDEGlobalSettings::_windowTitleFont = 0; +TQFont *TDEGlobalSettings::_taskbarFont = 0; +TQFont *TDEGlobalSettings::_largeFont = 0; +TQColor *TDEGlobalSettings::_trinity4Blue = 0; +TQColor *TDEGlobalSettings::_inactiveBackground = 0; +TQColor *TDEGlobalSettings::_inactiveForeground = 0; +TQColor *TDEGlobalSettings::_activeBackground = 0; +TQColor *TDEGlobalSettings::_buttonBackground = 0; +TQColor *TDEGlobalSettings::_selectBackground = 0; +TQColor *TDEGlobalSettings::_linkColor = 0; +TQColor *TDEGlobalSettings::_visitedLinkColor = 0; +TQColor *TDEGlobalSettings::alternateColor = 0; + +TDEGlobalSettings::KMouseSettings *TDEGlobalSettings::s_mouseSettings = 0; + +// helper function for reading xdg user dirs: it is required in order to take +// care of locale stuff +void readXdgUserDirs(TQString *desktop, TQString *documents) +{ + TQFile f( TQDir::homeDirPath() + "/.config/user-dirs.dirs" ); + + if (!f.open(IO_ReadOnly)) + return; + + // set the codec for the current locale + TQTextStream s(&f); + s.setCodec( TQTextCodec::codecForLocale() ); + + TQString line = s.readLine(); + while (!line.isNull()) + { + if (line.startsWith("XDG_DESKTOP_DIR=")) + *desktop = line.remove("XDG_DESKTOP_DIR=").remove("\"").replace("$HOME", TQDir::homeDirPath()); + else if (line.startsWith("XDG_DOCUMENTS_DIR=")) + *documents = line.remove("XDG_DOCUMENTS_DIR=").remove("\"").replace("$HOME", TQDir::homeDirPath()); + + line = s.readLine(); + } +} + +int TDEGlobalSettings::dndEventDelay() +{ + TDEConfigGroup g( TDEGlobal::config(), "General" ); + return g.readNumEntry("StartDragDist", TQApplication::startDragDistance()); +} + +bool TDEGlobalSettings::singleClick() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return g.readBoolEntry("SingleClick", KDE_DEFAULT_SINGLECLICK); +} + +bool TDEGlobalSettings::iconUseRoundedRect() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return g.readBoolEntry("IconUseRoundedRect", KDE_DEFAULT_ICONTEXTROUNDED); +} + +TDEGlobalSettings::TearOffHandle TDEGlobalSettings::insertTearOffHandle() +{ + int tearoff; + bool effectsenabled; + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + effectsenabled = g.readBoolEntry( "EffectsEnabled", false); + tearoff = g.readNumEntry("InsertTearOffHandle", KDE_DEFAULT_INSERTTEAROFFHANDLES); + return effectsenabled ? (TearOffHandle) tearoff : Disable; +} + +bool TDEGlobalSettings::changeCursorOverIcon() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return g.readBoolEntry("ChangeCursor", KDE_DEFAULT_CHANGECURSOR); +} + +bool TDEGlobalSettings::visualActivate() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return g.readBoolEntry("VisualActivate", KDE_DEFAULT_VISUAL_ACTIVATE); +} + +unsigned int TDEGlobalSettings::visualActivateSpeed() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return + g.readNumEntry( + "VisualActivateSpeed", + KDE_DEFAULT_VISUAL_ACTIVATE_SPEED + ); +} + + + +int TDEGlobalSettings::autoSelectDelay() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return g.readNumEntry("AutoSelectDelay", KDE_DEFAULT_AUTOSELECTDELAY); +} + +TDEGlobalSettings::Completion TDEGlobalSettings::completionMode() +{ + int completion; + TDEConfigGroup g( TDEGlobal::config(), "General" ); + completion = g.readNumEntry("completionMode", -1); + if ((completion < (int) CompletionNone) || + (completion > (int) CompletionPopupAuto)) + { + completion = (int) CompletionPopup; // Default + } + return (Completion) completion; +} + +bool TDEGlobalSettings::showContextMenusOnPress () +{ + TDEConfigGroup g(TDEGlobal::config(), "ContextMenus"); + return g.readBoolEntry("ShowOnPress", true); +} + +int TDEGlobalSettings::contextMenuKey () +{ + TDEConfigGroup g(TDEGlobal::config(), "Shortcuts"); + TDEShortcut cut (g.readEntry ("PopupMenuContext", "Menu")); + return cut.keyCodeQt(); +} + +TQColor TDEGlobalSettings::toolBarHighlightColor() +{ + initColors(); + TDEConfigGroup g( TDEGlobal::config(), "Toolbar style" ); + return g.readColorEntry("HighlightColor", _trinity4Blue); +} + +TQColor TDEGlobalSettings::inactiveTitleColor() +{ +#ifdef Q_WS_WIN + return qt_colorref2qrgb(GetSysColor(COLOR_INACTIVECAPTION)); +#else + if (!_inactiveBackground) + _inactiveBackground = new TQColor(157, 170, 186); + TDEConfigGroup g( TDEGlobal::config(), "WM" ); + return g.readColorEntry( "inactiveBackground", _inactiveBackground ); +#endif +} + +TQColor TDEGlobalSettings::inactiveTextColor() +{ +#ifdef Q_WS_WIN + return qt_colorref2qrgb(GetSysColor(COLOR_INACTIVECAPTIONTEXT)); +#else + if (!_inactiveForeground) + _inactiveForeground = new TQColor(221,221,221); + TDEConfigGroup g( TDEGlobal::config(), "WM" ); + return g.readColorEntry( "inactiveForeground", _inactiveForeground ); +#endif +} + +TQColor TDEGlobalSettings::activeTitleColor() +{ +#ifdef Q_WS_WIN + return qt_colorref2qrgb(GetSysColor(COLOR_ACTIVECAPTION)); +#else + initColors(); + if (!_activeBackground) + _activeBackground = new TQColor(65,142,220); + TDEConfigGroup g( TDEGlobal::config(), "WM" ); + return g.readColorEntry( "activeBackground", _activeBackground); +#endif +} + +TQColor TDEGlobalSettings::activeTextColor() +{ +#ifdef Q_WS_WIN + return qt_colorref2qrgb(GetSysColor(COLOR_CAPTIONTEXT)); +#else + TDEConfigGroup g( TDEGlobal::config(), "WM" ); + return g.readColorEntry( "activeForeground", tqwhiteptr ); +#endif +} + +int TDEGlobalSettings::contrast() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return g.readNumEntry( "contrast", 7 ); +} + +TQColor TDEGlobalSettings::buttonBackground() +{ + if (!_buttonBackground) + _buttonBackground = new TQColor(221,223,228); + TDEConfigGroup g( TDEGlobal::config(), "General" ); + return g.readColorEntry( "buttonBackground", _buttonBackground ); +} + +TQColor TDEGlobalSettings::buttonTextColor() +{ + TDEConfigGroup g( TDEGlobal::config(), "General" ); + return g.readColorEntry( "buttonForeground", tqblackptr ); +} + +// IMPORTANT: +// This function should be kept in sync with +// TDEApplication::tdedisplaySetPalette() +TQColor TDEGlobalSettings::baseColor() +{ + TDEConfigGroup g( TDEGlobal::config(), "General" ); + return g.readColorEntry( "windowBackground", tqwhiteptr ); +} + +// IMPORTANT: +// This function should be kept in sync with +// TDEApplication::tdedisplaySetPalette() +TQColor TDEGlobalSettings::textColor() +{ + TDEConfigGroup g( TDEGlobal::config(), "General" ); + return g.readColorEntry( "windowForeground", tqblackptr ); +} + +// IMPORTANT: +// This function should be kept in sync with +// TDEApplication::tdedisplaySetPalette() +TQColor TDEGlobalSettings::highlightedTextColor() +{ + TDEConfigGroup g( TDEGlobal::config(), "General" ); + return g.readColorEntry( "selectForeground", tqwhiteptr ); +} + +// IMPORTANT: +// This function should be kept in sync with +// TDEApplication::tdedisplaySetPalette() +TQColor TDEGlobalSettings::highlightColor() +{ + initColors(); + if (!_selectBackground) + _selectBackground = new TQColor(103,141,178); + TDEConfigGroup g( TDEGlobal::config(), "General" ); + return g.readColorEntry( "selectBackground", _selectBackground ); +} + +TQColor TDEGlobalSettings::alternateBackgroundColor() +{ + initColors(); + TDEConfigGroup g( TDEGlobal::config(), "General" ); + *alternateColor = calculateAlternateBackgroundColor( baseColor() ); + return g.readColorEntry( "alternateBackground", alternateColor ); +} + +TQColor TDEGlobalSettings::calculateAlternateBackgroundColor(const TQColor& base) +{ + if (base == Qt::white) + return TQColor(238,246,255); + else + { + int h, s, v; + base.hsv( &h, &s, &v ); + if (v > 128) + return base.dark(106); + else if (base != Qt::black) + return base.light(110); + + return TQColor(32,32,32); + } +} + +bool TDEGlobalSettings::shadeSortColumn() +{ + TDEConfigGroup g( TDEGlobal::config(), "General" ); + return g.readBoolEntry( "shadeSortColumn", KDE_DEFAULT_SHADE_SORT_COLUMN ); +} + +TQColor TDEGlobalSettings::linkColor() +{ + initColors(); + if (!_linkColor) + _linkColor = new TQColor(0,0,238); + TDEConfigGroup g( TDEGlobal::config(), "General" ); + return g.readColorEntry( "linkColor", _linkColor ); +} + +TQColor TDEGlobalSettings::visitedLinkColor() +{ + if (!_visitedLinkColor) + _visitedLinkColor = new TQColor(82,24,139); + TDEConfigGroup g( TDEGlobal::config(), "General" ); + return g.readColorEntry( "visitedLinkColor", _visitedLinkColor ); +} + +TQFont TDEGlobalSettings::generalFont() +{ + if (_generalFont) + return *_generalFont; + + // Sync default with tdebase/kcontrol/fonts/fonts.cpp + _generalFont = new TQFont("Sans Serif", 10); + _generalFont->setPointSize(10); + _generalFont->setStyleHint(TQFont::SansSerif); + + TDEConfigGroup g( TDEGlobal::config(), "General" ); + *_generalFont = g.readFontEntry("font", _generalFont); + + return *_generalFont; +} + +TQFont TDEGlobalSettings::fixedFont() +{ + if (_fixedFont) + return *_fixedFont; + + // Sync default with tdebase/kcontrol/fonts/fonts.cpp + _fixedFont = new TQFont("Monospace", 10); + _fixedFont->setPointSize(10); + _fixedFont->setStyleHint(TQFont::TypeWriter); + + TDEConfigGroup g( TDEGlobal::config(), "General" ); + *_fixedFont = g.readFontEntry("fixed", _fixedFont); + + return *_fixedFont; +} + +TQFont TDEGlobalSettings::toolBarFont() +{ + if(_toolBarFont) + return *_toolBarFont; + + // Sync default with tdebase/kcontrol/fonts/fonts.cpp + _toolBarFont = new TQFont("Sans Serif", 10); + _toolBarFont->setPointSize(10); + _toolBarFont->setStyleHint(TQFont::SansSerif); + + TDEConfigGroup g( TDEGlobal::config(), "General" ); + *_toolBarFont = g.readFontEntry("toolBarFont", _toolBarFont); + + return *_toolBarFont; +} + +TQFont TDEGlobalSettings::menuFont() +{ + if(_menuFont) + return *_menuFont; + + // Sync default with tdebase/kcontrol/fonts/fonts.cpp + _menuFont = new TQFont("Sans Serif", 10); + _menuFont->setPointSize(10); + _menuFont->setStyleHint(TQFont::SansSerif); + + TDEConfigGroup g( TDEGlobal::config(), "General" ); + *_menuFont = g.readFontEntry("menuFont", _menuFont); + + return *_menuFont; +} + +TQFont TDEGlobalSettings::windowTitleFont() +{ + if(_windowTitleFont) + return *_windowTitleFont; + + // Sync default with tdebase/kcontrol/fonts/fonts.cpp + _windowTitleFont = new TQFont("Sans Serif", 9, TQFont::Bold); + _windowTitleFont->setPointSize(10); + _windowTitleFont->setStyleHint(TQFont::SansSerif); + + TDEConfigGroup g( TDEGlobal::config(), "WM" ); + *_windowTitleFont = g.readFontEntry("activeFont", _windowTitleFont); // inconsistency + + return *_windowTitleFont; +} + +TQFont TDEGlobalSettings::taskbarFont() +{ + if(_taskbarFont) + return *_taskbarFont; + + // Sync default with tdebase/kcontrol/fonts/fonts.cpp + _taskbarFont = new TQFont("Sans Serif", 10); + _taskbarFont->setPointSize(10); + _taskbarFont->setStyleHint(TQFont::SansSerif); + + TDEConfigGroup g( TDEGlobal::config(), "General" ); + *_taskbarFont = g.readFontEntry("taskbarFont", _taskbarFont); + + return *_taskbarFont; +} + + +TQFont TDEGlobalSettings::largeFont(const TQString &text) +{ + TQFontDatabase db; + TQStringList fam = db.families(); + + // Move a bunch of preferred fonts to the front. + if (fam.remove("Arial")) + fam.prepend("Arial"); + if (fam.remove("Verdana")) + fam.prepend("Verdana"); + if (fam.remove("Tahoma")) + fam.prepend("Tahoma"); + if (fam.remove("Lucida Sans")) + fam.prepend("Lucida Sans"); + if (fam.remove("Lucidux Sans")) + fam.prepend("Lucidux Sans"); + if (fam.remove("Nimbus Sans")) + fam.prepend("Nimbus Sans"); + if (fam.remove("Gothic I")) + fam.prepend("Gothic I"); + + if (_largeFont) + fam.prepend(_largeFont->family()); + + for(TQStringList::ConstIterator it = fam.begin(); + it != fam.end(); ++it) + { + if (db.isSmoothlyScalable(*it) && !db.isFixedPitch(*it)) + { + TQFont font(*it); + font.setPixelSize(75); + TQFontMetrics metrics(font); + int h = metrics.height(); + if ((h < 60) || ( h > 90)) + continue; + + bool ok = true; + for(unsigned int i = 0; i < text.length(); i++) + { + if (!metrics.inFont(text[i])) + { + ok = false; + break; + } + } + if (!ok) + continue; + + font.setPointSize(48); + _largeFont = new TQFont(font); + return *_largeFont; + } + } + _largeFont = new TQFont(TDEGlobalSettings::generalFont()); + _largeFont->setPointSize(48); + return *_largeFont; +} + +void TDEGlobalSettings::initStatic() // should be called initPaths(). Don't put anything else here. +{ + if ( s_desktopPath != 0 ) + return; + + s_desktopPath = new TQString(); + s_autostartPath = new TQString(); + s_trashPath = new TQString(); + s_documentPath = new TQString(); + + TDEConfigGroup g( TDEGlobal::config(), "Paths" ); + + // Read desktop and documents path using XDG_USER_DIRS + readXdgUserDirs(s_desktopPath, s_documentPath); + + if (s_desktopPath->isEmpty() == true) { + *s_desktopPath = TQDir::homeDirPath() + "/Desktop/"; + } + *s_desktopPath = TQDir::cleanDirPath( *s_desktopPath ); + if ( !s_desktopPath->endsWith("/") ) + s_desktopPath->append('/'); + + if (s_documentPath->isEmpty() == true) { +#ifdef Q_WS_WIN + *s_documentPath = getWin32ShellFoldersPath("Personal"); +#else + *s_documentPath = TQDir::homeDirPath() + "/Documents/"; +#endif + } + *s_documentPath = TQDir::cleanDirPath( *s_documentPath ); + if ( !s_documentPath->endsWith("/")) + s_documentPath->append('/'); + + // Trash Path - TODO remove in KDE4 (tdeio_trash can't use it for interoperability reasons) + *s_trashPath = *s_desktopPath + i18n("Trash") + "/"; + *s_trashPath = g.readPathEntry( "Trash" , *s_trashPath); + *s_trashPath = TQDir::cleanDirPath( *s_trashPath ); + if ( !s_trashPath->endsWith("/") ) + s_trashPath->append('/'); + // We need to save it in any case, in case the language changes later on, + if ( !g.hasKey( "Trash" ) ) + { + g.writePathEntry( "Trash", *s_trashPath, true, true ); + g.sync(); + } + + // Autostart Path + *s_autostartPath = TDEGlobal::dirs()->localtdedir() + "Autostart/"; + *s_autostartPath = g.readPathEntry( "Autostart" , *s_autostartPath); + *s_autostartPath = TQDir::cleanDirPath( *s_autostartPath ); + if ( !s_autostartPath->endsWith("/") ) + s_autostartPath->append('/'); + + // Make sure this app gets the notifications about those paths + if (kapp) + kapp->addKipcEventMask(KIPC::SettingsChanged); +} + +void TDEGlobalSettings::initColors() +{ + if (!_trinity4Blue) { + if (TQPixmap::defaultDepth() > 8) + _trinity4Blue = new TQColor(103,141,178); + else + _trinity4Blue = new TQColor(0, 0, 192); + } + if (!alternateColor) + alternateColor = new TQColor(237, 244, 249); +} + +void TDEGlobalSettings::rereadFontSettings() +{ + delete _generalFont; + _generalFont = 0L; + delete _fixedFont; + _fixedFont = 0L; + delete _menuFont; + _menuFont = 0L; + delete _toolBarFont; + _toolBarFont = 0L; + delete _windowTitleFont; + _windowTitleFont = 0L; + delete _taskbarFont; + _taskbarFont = 0L; +} + +void TDEGlobalSettings::rereadPathSettings() +{ + kdDebug() << "TDEGlobalSettings::rereadPathSettings" << endl; + delete s_autostartPath; + s_autostartPath = 0L; + delete s_trashPath; + s_trashPath = 0L; + delete s_desktopPath; + s_desktopPath = 0L; + delete s_documentPath; + s_documentPath = 0L; +} + +TDEGlobalSettings::KMouseSettings & TDEGlobalSettings::mouseSettings() +{ + if ( ! s_mouseSettings ) + { + s_mouseSettings = new KMouseSettings; + KMouseSettings & s = *s_mouseSettings; // for convenience + +#ifndef Q_WS_WIN + TDEConfigGroup g( TDEGlobal::config(), "Mouse" ); + TQString setting = g.readEntry("MouseButtonMapping"); + if (setting == "RightHanded") + s.handed = KMouseSettings::RightHanded; + else if (setting == "LeftHanded") + s.handed = KMouseSettings::LeftHanded; + else + { +#ifdef Q_WS_X11 + // get settings from X server + // This is a simplified version of the code in input/mouse.cpp + // Keep in sync ! + s.handed = KMouseSettings::RightHanded; + unsigned char map[20]; + int num_buttons = XGetPointerMapping(kapp->getDisplay(), map, 20); + if( num_buttons == 2 ) + { + if ( (int)map[0] == 1 && (int)map[1] == 2 ) + s.handed = KMouseSettings::RightHanded; + else if ( (int)map[0] == 2 && (int)map[1] == 1 ) + s.handed = KMouseSettings::LeftHanded; + } + else if( num_buttons >= 3 ) + { + if ( (int)map[0] == 1 && (int)map[2] == 3 ) + s.handed = KMouseSettings::RightHanded; + else if ( (int)map[0] == 3 && (int)map[2] == 1 ) + s.handed = KMouseSettings::LeftHanded; + } +#else + // FIXME(E): Implement in Qt Embedded +#endif + } +#endif //Q_WS_WIN + } +#ifdef Q_WS_WIN + //not cached + s_mouseSettings->handed = (GetSystemMetrics(SM_SWAPBUTTON) ? KMouseSettings::LeftHanded : KMouseSettings::RightHanded); +#endif + return *s_mouseSettings; +} + +void TDEGlobalSettings::rereadMouseSettings() +{ +#ifndef Q_WS_WIN + delete s_mouseSettings; + s_mouseSettings = 0L; +#endif +} + +bool TDEGlobalSettings::isMultiHead() +{ +#ifdef Q_WS_WIN + return GetSystemMetrics(SM_CMONITORS) > 1; +#else + TQCString multiHead = getenv("TDE_MULTIHEAD"); + if (!multiHead.isEmpty()) { + return (multiHead.lower() == "true"); + } + return false; +#endif +} + +bool TDEGlobalSettings::wheelMouseZooms() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return g.readBoolEntry( "WheelMouseZooms", KDE_DEFAULT_WHEEL_ZOOM ); +} + +TQRect TDEGlobalSettings::splashScreenDesktopGeometry() +{ + TQDesktopWidget *dw = TQApplication::desktop(); + + if (dw->isVirtualDesktop()) { + TDEConfigGroup group(TDEGlobal::config(), "Windows"); + int scr = group.readNumEntry("Unmanaged", -3); + if (group.readBoolEntry("XineramaEnabled", true) && scr != -2) { + if (scr == -3) + scr = dw->screenNumber(TQCursor::pos()); + return dw->screenGeometry(scr); + } else { + return dw->geometry(); + } + } else { + return dw->geometry(); + } +} + +TQRect TDEGlobalSettings::desktopGeometry(const TQPoint& point) +{ + TQDesktopWidget *dw = TQApplication::desktop(); + + if (dw->isVirtualDesktop()) { + TDEConfigGroup group(TDEGlobal::config(), "Windows"); + if (group.readBoolEntry("XineramaEnabled", true) && + group.readBoolEntry("XineramaPlacementEnabled", true)) { + return dw->screenGeometry(dw->screenNumber(point)); + } else { + return dw->geometry(); + } + } else { + return dw->geometry(); + } +} + +TQRect TDEGlobalSettings::desktopGeometry(TQWidget* w) +{ + TQDesktopWidget *dw = TQApplication::desktop(); + + if (dw->isVirtualDesktop()) { + TDEConfigGroup group(TDEGlobal::config(), "Windows"); + if (group.readBoolEntry("XineramaEnabled", true) && + group.readBoolEntry("XineramaPlacementEnabled", true)) { + if (w) + return dw->screenGeometry(dw->screenNumber(w)); + else return dw->screenGeometry(-1); + } else { + return dw->geometry(); + } + } else { + return dw->geometry(); + } +} + +bool TDEGlobalSettings::showIconsOnPushButtons() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return g.readBoolEntry("ShowIconsOnPushButtons", + KDE_DEFAULT_ICON_ON_PUSHBUTTON); +} + +bool TDEGlobalSettings::showFilePreview(const KURL &url) +{ + TDEConfigGroup g(TDEGlobal::config(), "PreviewSettings"); + TQString protocol = url.protocol(); + bool defaultSetting = KProtocolInfo::showFilePreview( protocol ); + return g.readBoolEntry(protocol, defaultSetting ); +} + +bool TDEGlobalSettings::showKonqIconActivationEffect() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return g.readBoolEntry("ShowKonqIconActivationEffect", + KDE_DEFAULT_KONQ_ACTIVATION_EFFECT); +} + +bool TDEGlobalSettings::opaqueResize() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return g.readBoolEntry("OpaqueResize", + KDE_DEFAULT_OPAQUE_RESIZE); +} + +int TDEGlobalSettings::buttonLayout() +{ + TDEConfigGroup g( TDEGlobal::config(), "KDE" ); + return g.readNumEntry("ButtonLayout", + KDE_DEFAULT_BUTTON_LAYOUT); +} -- cgit v1.2.1