You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
252 lines
9.5 KiB
252 lines
9.5 KiB
//
|
|
// C++ Implementation: komposesettings
|
|
//
|
|
// Description:
|
|
//
|
|
//
|
|
// Author: Hans Oischinger <hans.oischinger@kde-mail.net>, (C) 2004
|
|
//
|
|
// Copyright: See COPYING file that comes with this distribution
|
|
//
|
|
//
|
|
#include "komposesettings.h"
|
|
|
|
#include "komposeviewmanager.h"
|
|
#include "komposetaskmanager.h"
|
|
#include "komposepreferences.h"
|
|
|
|
#include <tqcolor.h>
|
|
|
|
#include <kglobalaccel.h>
|
|
#include <tdeapplication.h>
|
|
#include <tdeconfig.h>
|
|
#include <tdeglobal.h>
|
|
#include <kiconloader.h>
|
|
#include <kdebug.h>
|
|
|
|
static KomposeSettings* settingsInstance = 0;
|
|
|
|
|
|
/*
|
|
* KomposeSettings is a singleton
|
|
*/
|
|
KomposeSettings* KomposeSettings::instance()
|
|
{
|
|
if ( !settingsInstance )
|
|
{
|
|
// kdDebug() << "KomposeSettings::instance() - Creating Singleton instance"); // FIXME: How can this apper multiple times??
|
|
settingsInstance = new KomposeSettings();
|
|
}
|
|
return settingsInstance;
|
|
}
|
|
|
|
|
|
KomposeSettings::KomposeSettings(TQObject *parent, const char *name)
|
|
: TQObject(parent, name),
|
|
dialogOpen(0),
|
|
windowTitleFontMetrics(0)
|
|
{
|
|
|
|
// Init global shortcut object
|
|
globalAccel = new TDEGlobalAccel( this );
|
|
globalAccel->insert( "showDefaultView", i18n("Show Komposé (default view)"),
|
|
i18n("Displays the view you have configured as default"),
|
|
KKey::QtWIN+Key_Tab, KKey::QtWIN+CTRL+SHIFT+Key_Tab,
|
|
KomposeViewManager::instance(), SLOT(createDefaultView()) );
|
|
globalAccel->insert( "showWorldView", i18n("Show Komposé (ungrouped)"),
|
|
i18n("Displays all windows unsorted"),
|
|
CTRL+SHIFT+Key_J, KKey::QtWIN+CTRL+SHIFT+Key_J,
|
|
KomposeViewManager::instance(), SLOT(createWorldView()) );
|
|
globalAccel->insert( "showVirtualDesktopView", i18n("Show Komposé (grouped by virtual desktops)"),
|
|
i18n("Displays all windows sorted by virtual desktops"),
|
|
CTRL+SHIFT+Key_I, KKey::QtWIN+CTRL+SHIFT+Key_I,
|
|
KomposeViewManager::instance(), SLOT(createVirtualDesktopView()) );
|
|
globalAccel->insert( "showCurrentDesktopView", i18n("Show Komposé (current virtual desktop)"),
|
|
i18n("Displays all windows on the current desktop"),
|
|
CTRL+SHIFT+Key_K, KKey::QtWIN+CTRL+SHIFT+Key_K,
|
|
KomposeViewManager::instance(), SLOT(createCurrentDesktopView()) );
|
|
|
|
// read Settings from cfg file
|
|
readConfig();
|
|
|
|
settingsInstance = this;
|
|
}
|
|
|
|
|
|
KomposeSettings::~KomposeSettings()
|
|
{
|
|
delete globalAccel;
|
|
delete settingsInstance;
|
|
}
|
|
|
|
|
|
void KomposeSettings::readConfig()
|
|
{
|
|
kdDebug() << "KomposeSettings::readConfig()" << endl;
|
|
// Read Shortcut Settings from config
|
|
globalAccel->readSettings();
|
|
globalAccel->updateConnections();
|
|
|
|
kapp->config()->setGroup("Main window");
|
|
|
|
defaultView = kapp->config()->readNumEntry("defaultView", KOMPOSEDISPLAY_VIRTUALDESKS);
|
|
|
|
useComposite = kapp->config()->readBoolEntry("useComposite", false);
|
|
|
|
passiveScreenshots = kapp->config()->readBoolEntry("passiveScreenshots", true);
|
|
screenshotGrabDelay = kapp->config()->readNumEntry("screenshotGrabDelay", 400000000);
|
|
|
|
dynamicVirtDeskLayout = kapp->config()->readBoolEntry("dynamicVirtDeskLayout", true);
|
|
|
|
imageEffects = kapp->config()->readBoolEntry("imageEffects", true);
|
|
blurBackground = kapp->config()->readBoolEntry("blurBackground", true);
|
|
|
|
showIcons = kapp->config()->readBoolEntry("showIcons", true);
|
|
iconSize = kapp->config()->readNumEntry("iconSize", 3);
|
|
|
|
showWindowTitles = kapp->config()->readBoolEntry("showWindowTitles", true );
|
|
windowTitleFont = kapp->config()->readFontEntry("windowTitleFont", new TQFont( "arial", 11, TQFont::Bold ) );
|
|
windowTitleFontColor = kapp->config()->readColorEntry("windowTitleFontColor", new TQColor(TQt::black) );
|
|
showWindowTitleShadow = kapp->config()->readBoolEntry("showWindowTitleShadow", true );
|
|
windowTitleFontShadowColor = kapp->config()->readColorEntry("windowTitleFontShadowColor", new TQColor(TQt::lightGray) );
|
|
|
|
windowBorderActiveColor = kapp->config()->readColorEntry("windowBorderActiveColor", new TQColor(TQt::gray) );
|
|
windowBorderInactiveColor = kapp->config()->readColorEntry("windowBorderInactiveColor", new TQColor(TQt::black) );
|
|
windowBorderActiveWidth = kapp->config()->readNumEntry("windowBorderActiveWidth", 2 );
|
|
windowBorderInactiveWidth = kapp->config()->readNumEntry("windowBorderInactiveWidth", 1 );
|
|
windowBorderActiveStyle = kapp->config()->readNumEntry("windowBorderActiveStyle", 3 ); // dotted
|
|
windowBorderInactiveStyle = kapp->config()->readNumEntry("windowBorderInactiveStyle", 1 ); // solid
|
|
|
|
desktopTitleFont = kapp->config()->readFontEntry("desktopTitleFont", new TQFont( "arial", 10 ) );
|
|
desktopTitleFontColor = kapp->config()->readColorEntry("desktopTitleFontColor", new TQColor(TQt::gray) );
|
|
desktopTitleFontHighlightColor = kapp->config()->readColorEntry("desktopTitleFontHighlightColor", new TQColor(TQt::black) );
|
|
|
|
cacheScaledPixmaps = kapp->config()->readBoolEntry("cacheScaledPixmaps", true);
|
|
|
|
activateOnTopLeftCorner = kapp->config()->readBoolEntry("activateOnTopLeftCorner", false );
|
|
activateOnTopRightCorner = kapp->config()->readBoolEntry("activateOnTopRightCorner", false );
|
|
activateOnBottomLeftCorner = kapp->config()->readBoolEntry("activateOnBottomLeftCorner", false );
|
|
activateOnBottomRightCorner = kapp->config()->readBoolEntry("activateOnBottomRightCorner", false );
|
|
|
|
activateOnTopEdge = kapp->config()->readBoolEntry("activateOnTopEdge", false );
|
|
activateOnBottomEdge = kapp->config()->readBoolEntry("activateOnBottomEdge", false );
|
|
activateOnLeftEdge = kapp->config()->readBoolEntry("activateOnLeftEdge", false );
|
|
activateOnRightEdge = kapp->config()->readBoolEntry("activateOnRightEdge", false );
|
|
|
|
autoLockDelay = kapp->config()->readNumEntry("autoLockDelay", 1000);
|
|
|
|
showDesktopNum = kapp->config()->readBoolEntry("showDesktopNum", false );
|
|
|
|
viewScreen = kapp->config()->readNumEntry("viewScreen", -1);
|
|
|
|
calcFontMetrics();
|
|
emit settingsChanged();
|
|
}
|
|
|
|
void KomposeSettings::writeConfig()
|
|
{
|
|
kdDebug() << "KomposeSettings::writeConfig()" << endl;
|
|
|
|
globalAccel->writeSettings();
|
|
globalAccel->updateConnections();
|
|
|
|
// Read from config file
|
|
kapp->config()->setGroup("Main window");
|
|
|
|
kapp->config()->writeEntry("defaultView", defaultView );
|
|
|
|
kapp->config()->writeEntry("useComposite", useComposite );
|
|
|
|
kapp->config()->writeEntry("passiveScreenshots", passiveScreenshots );
|
|
kapp->config()->writeEntry("screenshotGrabDelay", screenshotGrabDelay);
|
|
|
|
kapp->config()->writeEntry("dynamicVirtDeskLayout", dynamicVirtDeskLayout);
|
|
|
|
kapp->config()->writeEntry("imageEffects", imageEffects);
|
|
kapp->config()->writeEntry("blurBackground", blurBackground);
|
|
|
|
kapp->config()->writeEntry("showIcons", showIcons);
|
|
kapp->config()->writeEntry("iconSize", iconSize);
|
|
|
|
kapp->config()->writeEntry("showWindowTitles", showWindowTitles);
|
|
kapp->config()->writeEntry("windowTitleFont", windowTitleFont);
|
|
kapp->config()->writeEntry("windowTitleFontColor", windowTitleFontColor);
|
|
kapp->config()->writeEntry("showWindowTitleShadow", showWindowTitleShadow);
|
|
kapp->config()->writeEntry("windowTitleFontShadowColor", windowTitleFontShadowColor);
|
|
|
|
kapp->config()->writeEntry("windowBorderActiveColor", windowBorderActiveColor);
|
|
kapp->config()->writeEntry("windowBorderInactiveColor", windowBorderInactiveColor );
|
|
kapp->config()->writeEntry("windowBorderActiveWidth", windowBorderActiveWidth );
|
|
kapp->config()->writeEntry("windowBorderInactiveWidth", windowBorderInactiveWidth );
|
|
kapp->config()->writeEntry("windowBorderActiveStyle", windowBorderActiveStyle );
|
|
kapp->config()->writeEntry("windowBorderInactiveStyle", windowBorderInactiveStyle );
|
|
|
|
kapp->config()->writeEntry("desktopTitleFont", desktopTitleFont);
|
|
kapp->config()->writeEntry("desktopTitleFontColor", desktopTitleFontColor);
|
|
kapp->config()->writeEntry("desktopTitleFontHighlightColor", desktopTitleFontHighlightColor);
|
|
|
|
kapp->config()->writeEntry("cacheScaledPixmaps", cacheScaledPixmaps);
|
|
|
|
kapp->config()->writeEntry("activateOnTopLeftCorner", activateOnTopLeftCorner);
|
|
kapp->config()->writeEntry("activateOnTopRightCorner", activateOnTopRightCorner);
|
|
kapp->config()->writeEntry("activateOnBottomLeftCorner", activateOnBottomLeftCorner);
|
|
kapp->config()->writeEntry("activateOnBottomRightCorner", activateOnBottomRightCorner);
|
|
|
|
kapp->config()->writeEntry("activateOnTopEdge", activateOnTopEdge);
|
|
kapp->config()->writeEntry("activateOnBottomEdge", activateOnBottomEdge);
|
|
kapp->config()->writeEntry("activateOnLeftEdge", activateOnLeftEdge);
|
|
kapp->config()->writeEntry("activateOnRightEdge", activateOnRightEdge);
|
|
kapp->config()->writeEntry("autoLockDelay", autoLockDelay);
|
|
|
|
kapp->config()->writeEntry("showDesktopNum", showDesktopNum);
|
|
|
|
kapp->config()->writeEntry("viewScreen", viewScreen);
|
|
|
|
kapp->config()->sync();
|
|
|
|
kdDebug() << "KomposeSettings::writeConfig() - Settings saved to cfg file" << endl;
|
|
|
|
calcFontMetrics();
|
|
emit settingsChanged();
|
|
}
|
|
|
|
|
|
void KomposeSettings::showPreferencesDlg()
|
|
{
|
|
dialogOpen = true;
|
|
// popup preference dialog
|
|
KomposePreferences *dlg = new KomposePreferences();
|
|
|
|
dlg->exec();
|
|
|
|
delete dlg;
|
|
dialogOpen = false;
|
|
}
|
|
|
|
int KomposeSettings::getIconSizePixels()
|
|
{
|
|
switch( iconSize )
|
|
{
|
|
case 0:
|
|
return 16;
|
|
case 1:
|
|
return 32;
|
|
case 2:
|
|
return 64;
|
|
case 3:
|
|
return -1;
|
|
}
|
|
return 32;
|
|
}
|
|
|
|
void KomposeSettings::calcFontMetrics()
|
|
{
|
|
if (windowTitleFontMetrics != 0)
|
|
delete windowTitleFontMetrics;
|
|
windowTitleFontMetrics = new TQFontMetrics( windowTitleFont );
|
|
windowTitleFontAscent = windowTitleFontMetrics->ascent();
|
|
windowTitleFontHeight = windowTitleFontMetrics->height();
|
|
}
|
|
|
|
#include "komposesettings.moc"
|