summaryrefslogtreecommitdiffstats
path: root/src/komposepreferences.cpp.orig
diff options
context:
space:
mode:
Diffstat (limited to 'src/komposepreferences.cpp.orig')
-rw-r--r--src/komposepreferences.cpp.orig291
1 files changed, 291 insertions, 0 deletions
diff --git a/src/komposepreferences.cpp.orig b/src/komposepreferences.cpp.orig
new file mode 100644
index 0000000..11ef084
--- /dev/null
+++ b/src/komposepreferences.cpp.orig
@@ -0,0 +1,291 @@
+//
+// C++ Implementation: komposepreferences
+//
+// Description:
+//
+//
+// Author: Hans Oischinger <oisch@sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "komposepreferences.h"
+
+#include "komposesettings.h"
+
+#include <qlayout.h>
+#include <qcheckbox.h>
+#include <qlabel.h>
+#include <kapplication.h>
+#include <qwhatsthis.h>
+#include <qtooltip.h>
+#include <qspinbox.h>
+#include <qgroupbox.h>
+#include <qbuttongroup.h>
+#include <qhbox.h>
+#include <qslider.h>
+#include <qpushbutton.h>
+#include <qgrid.h>
+#include <qvgroupbox.h>
+#include <qradiobutton.h>
+
+#include <kiconloader.h>
+#include <kcolorbutton.h>
+#include <kfontdialog.h>
+
+KomposePreferences::KomposePreferences()
+ : KDialogBase(IconList, i18n(QString::fromUtf8("Komposé Preferences").utf8()), Ok|Apply|Cancel, Ok)
+{
+ QFrame *page1 = addPage( i18n("Behavior"), QString::null, DesktopIcon("winprops", KIcon::SizeMedium) );
+ QFrame *page2 = addPage( i18n("Appearance"), QString::null, DesktopIcon("appearance", KIcon::SizeMedium) );
+ QFrame *page3 = addPage( i18n("Layouts"), QString::null, DesktopIcon("window_list", KIcon::SizeMedium) );
+
+ QVBoxLayout *page1Layout = new QVBoxLayout( page1, 0, KDialog::spacingHint() );
+
+ defaultViewBtnGroup = new QButtonGroup( 2, Horizontal, i18n("Default Layout"), page1 );
+ defaultViewBtnGroup->setExclusive( true );
+ QString defaultViewBtnGroupHelp = i18n("Determines which view should be started by default (e.g. when you click on the systray icon).");
+ QWhatsThis::add( defaultViewBtnGroup, defaultViewBtnGroupHelp );
+ QToolTip::add( defaultViewBtnGroup, defaultViewBtnGroupHelp );
+ defaultViewWorld = new QRadioButton(i18n("Ungrouped"), defaultViewBtnGroup );
+ QString defaultViewWorldHelp = i18n("Fullscreen layout that shows all windows in no specific order");
+ QWhatsThis::add( defaultViewWorld, defaultViewWorldHelp );
+ QToolTip::add( defaultViewWorld, defaultViewWorldHelp );
+ defaultViewVirtualDesks = new QRadioButton(i18n("Grouped by virtual desktops"), defaultViewBtnGroup );
+ QString defaultViewVirtualDesksHelp = i18n("Fullscreen layout that shows a representation of your virtual desktops\n and places the windows inside.");
+ QWhatsThis::add( defaultViewVirtualDesks, defaultViewVirtualDesksHelp );
+ QToolTip::add( defaultViewVirtualDesks, defaultViewVirtualDesksHelp );
+ page1Layout->addWidget(defaultViewBtnGroup);
+
+
+ QGroupBox *screenshotsGroupBox = new QGroupBox( 3, Vertical, i18n("Screenshots"), page1 );
+
+ passiveScreenshots = new QCheckBox(i18n("Passive screenshots"), screenshotsGroupBox);
+ QString passiveScreenshotsHelp = i18n(QString::fromUtf8("Create a screenshot whenever you raise or active a window.\nWhen selected the amount the annoying popup-effect before every Komposé activation will be minimized to nearly zero.\nThe drawback is that the screenshots are not so recent and may not display the actual content.").utf8());
+ QWhatsThis::add( passiveScreenshots, passiveScreenshotsHelp );
+ QToolTip::add( passiveScreenshots, passiveScreenshotsHelp );
+
+ // onlyOneScreenshot = new QCheckBox(i18n("Only grab a screenshot when none exists"), screenshotsGroupBox);
+ // QString onlyOneScreenshotHelp = i18n("When disabled new screenshots will be taken whenever possible.\nEnabling will only create a screenshot once the application is first activated and will never update it.");
+ // QWhatsThis::add( onlyOneScreenshot, onlyOneScreenshotHelp );
+ // QToolTip::add( onlyOneScreenshot, onlyOneScreenshotHelp );
+
+ QHBox *hLayScreenshotGrabDelay = new QHBox(screenshotsGroupBox);
+ QLabel *screenshotGrabDelayLabel = new QLabel(i18n("Delay between screenshots (ms):"), hLayScreenshotGrabDelay);
+ screenshotGrabDelay = new QSpinBox(0, 2000, 1, hLayScreenshotGrabDelay);
+ screenshotGrabDelayLabel->setBuddy(screenshotGrabDelay);
+ QString screenshotGrabDelayHelp = i18n("Specifies the time to wait between the activation of a window and the screenshot taking.\nIncrease it when your windows need more time to draw themselves after activation.\nValues below 300ms are not recommended, but may work in some cases." );
+ QWhatsThis::add( screenshotGrabDelay, screenshotGrabDelayHelp );
+ QToolTip::add( screenshotGrabDelay, screenshotGrabDelayHelp );
+ QWhatsThis::add( screenshotGrabDelayLabel, screenshotGrabDelayHelp );
+ QToolTip::add( screenshotGrabDelayLabel, screenshotGrabDelayHelp );
+
+ page1Layout->addWidget(screenshotsGroupBox);
+
+ page1Layout->insertStretch(-1);
+
+
+
+ QVBoxLayout *page2Layout = new QVBoxLayout( page2, 0, KDialog::spacingHint() );
+
+ imageEffects = new QCheckBox(i18n("Enable image effects"), page2);
+ QString imageEffectsHelp = i18n("Lighten windows when the mouse moves over it or gray out minimized windows.\nDepending on your system specs this can be a bit slower." );
+ QWhatsThis::add( imageEffects, imageEffectsHelp );
+ QToolTip::add( imageEffects, imageEffectsHelp );
+ page2Layout->addWidget(imageEffects);
+
+
+ QGroupBox *windowTitleGroupBox = new QGroupBox( 3, Vertical, i18n("Window Titles"), page2 );
+
+ QHBox *hBoxWindowTitles = new QHBox(windowTitleGroupBox);
+ showWindowTitles = new QCheckBox(i18n("Show window titles"), hBoxWindowTitles);
+ windowTitleFontBtn = new QPushButton(i18n("Select Font..."), hBoxWindowTitles);
+ QString showWindowTitlesHelp = i18n( QString::fromUtf8("Display the name of every window in Komposé") );
+ QWhatsThis::add( showWindowTitles, showWindowTitlesHelp );
+ QToolTip::add( showWindowTitles, showWindowTitlesHelp );
+ connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontBtn, SLOT(setEnabled(bool)) );
+ connect( windowTitleFontBtn, SIGNAL(clicked()), this, SLOT(showWindowTitleFontDialog()) );
+
+ QGrid *gridWindowTitlesColor = new QGrid(2, windowTitleGroupBox);
+ // windowTitleFontColorLabel = new QLabel(windowTitleFontColor, i18n("Text color: "), gridWindowTitlesColor); // FIXME: How to link to a buddy that doesn't yet exist?
+ windowTitleFontColorLabel = new QLabel(i18n("Text color:"), gridWindowTitlesColor);
+ windowTitleFontColor = new KColorButton(Qt::black, gridWindowTitlesColor);
+ connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontColorLabel, SLOT(setEnabled(bool)) );
+ connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontColor, SLOT(setEnabled(bool)) );
+ showWindowTitleShadow = new QCheckBox(i18n("Shadow color:"), gridWindowTitlesColor);
+ windowTitleFontShadowColor = new KColorButton(Qt::lightGray, gridWindowTitlesColor);
+ connect( showWindowTitles, SIGNAL(toggled(bool)), showWindowTitleShadow, SLOT(setEnabled(bool)) );
+ connect( showWindowTitles, SIGNAL(toggled(bool)), windowTitleFontShadowColor, SLOT(setEnabled(bool)) );
+ connect( showWindowTitleShadow, SIGNAL(toggled(bool)), windowTitleFontShadowColor, SLOT(setEnabled(bool)) );
+
+ page2Layout->addWidget(windowTitleGroupBox);
+
+
+
+ QGroupBox *iconGroupBox = new QGroupBox( 3, Vertical, i18n("Task Icons"), page2 );
+ showIcons = new QCheckBox(i18n("Show icons"), iconGroupBox);
+ iconSize = new QSlider(0, 3, 1, 0, Qt::Horizontal, iconGroupBox);
+ iconSizeDescription = new QLabel( iconSize, "", iconGroupBox);
+ connect( iconSize, SIGNAL( sliderMoved(int) ), this, SLOT( updateIconSliderDesc(int) ) );
+ connect( iconSize, SIGNAL( valueChanged(int) ), this, SLOT( updateIconSliderDesc(int) ) );
+ connect( showIcons, SIGNAL( toggled(bool) ), iconSize, SLOT( setEnabled(bool) ) );
+ connect( showIcons, SIGNAL( toggled(bool) ), iconSizeDescription, SLOT( setEnabled(bool) ) );
+ page2Layout->addWidget(iconGroupBox);
+
+ page2Layout->insertStretch(-1);
+
+
+
+ QVBoxLayout *page3Layout = new QVBoxLayout( page3, 0, KDialog::spacingHint() );
+
+ QVGroupBox *virtDesksLayoutGroupBox = new QVGroupBox( i18n("Grouped by Virtual Desktops"), page3 );
+ dynamicVirtDeskLayout = new QCheckBox(i18n("Layout empty virtual desktops minimized"), virtDesksLayoutGroupBox );
+ QString dynamicVirtDeskLayoutHelp = i18n("Check this if you want empty virtual desktops to take less space on the screen.\nUncheck it if you want them to be arranged statically, each of the same size.");
+ QWhatsThis::add( dynamicVirtDeskLayout, dynamicVirtDeskLayoutHelp );
+ QToolTip::add( dynamicVirtDeskLayout, dynamicVirtDeskLayoutHelp );
+
+ QGrid *desktopColorsGroupBox = new QGrid( 2, virtDesksLayoutGroupBox );
+ desktopColorsGroupBox->setSpacing( 4 );
+ tintVirtDesks = new QCheckBox(i18n("Tint virtual desktop widgets:"), desktopColorsGroupBox);
+ tintVirtDesksColor = new KColorButton(Qt::blue, desktopColorsGroupBox);
+ QString tintVirtDesksHelp = i18n("Colorize the transparent background of the virtual desktop widgets" );
+ QWhatsThis::add( tintVirtDesks, tintVirtDesksHelp );
+ QToolTip::add( tintVirtDesks, tintVirtDesksHelp );
+ QWhatsThis::add( tintVirtDesksColor, tintVirtDesksHelp );
+ QToolTip::add( tintVirtDesksColor, tintVirtDesksHelp );
+ connect( tintVirtDesks, SIGNAL(toggled(bool)), tintVirtDesksColor, SLOT(setEnabled(bool)) );
+ desktopTitleFontColorLabel = new QLabel(i18n("Desktop frame color:"), desktopColorsGroupBox);
+ desktopTitleFontColor = new KColorButton(Qt::black, desktopColorsGroupBox);
+ desktopTitleFontHighlightColorLabel = new QLabel(i18n("Desktop frame highlight color:"), desktopColorsGroupBox);
+ desktopTitleFontHighlightColor = new KColorButton(Qt::black, desktopColorsGroupBox);
+
+ page3Layout->addWidget(virtDesksLayoutGroupBox);
+
+ desktopTitleFontBtn = new QPushButton(i18n("Select Desktop Names Font..."), virtDesksLayoutGroupBox);
+ connect( desktopTitleFontBtn, SIGNAL(clicked()), this, SLOT(showDesktopTitleFontDialog()) );
+
+ page3Layout->insertStretch(-1);
+
+
+ fillPages();
+}
+
+
+KomposePreferences::~KomposePreferences()
+{}
+
+void KomposePreferences::updateIconSliderDesc( int val )
+{
+ switch( val )
+ {
+ case 0:
+ iconSizeDescription->setText( i18n("16x16") );
+ break;
+ case 1:
+ iconSizeDescription->setText( i18n("32x32") );
+ break;
+ case 2:
+ iconSizeDescription->setText( i18n("64x64") );
+ break;
+ case 3:
+ iconSizeDescription->setText( i18n("Don't scale, show as they are (preferably bigger)") );
+ break;
+ }
+}
+
+void KomposePreferences::showWindowTitleFontDialog()
+{
+ KFontDialog::getFont( *windowTitleFont );
+ // if ( result == KFontDialog::Accepted )
+}
+
+void KomposePreferences::showDesktopTitleFontDialog()
+{
+ KFontDialog::getFont( *desktopTitleFont );
+}
+
+void KomposePreferences::fillPages()
+{
+ // Sync Settings to Preferences dialog
+ switch ( KomposeSettings::instance()->getDefaultView() )
+ {
+ case KOMPOSEDISPLAY_VIRTUALDESKS:
+ defaultViewVirtualDesks->setChecked( true );
+ break;
+ case KOMPOSEDISPLAY_WORLD:
+ defaultViewWorld->setChecked( true );
+ break;
+ }
+
+ passiveScreenshots->setChecked( KomposeSettings::instance()->getPassiveScreenshots() );
+ screenshotGrabDelay->setValue( KomposeSettings::instance()->getScreenshotGrabDelay() / 1000000 );
+ dynamicVirtDeskLayout->setChecked( KomposeSettings::instance()->getDynamicVirtDeskLayout() );
+
+ imageEffects->setChecked( KomposeSettings::instance()->getImageEffects() );
+ tintVirtDesks->setChecked( KomposeSettings::instance()->getTintVirtDesks() );
+ tintVirtDesksColor->setColor( KomposeSettings::instance()->getTintVirtDesksColor() );
+ tintVirtDesksColor->setEnabled( KomposeSettings::instance()->getTintVirtDesks() );
+
+ showWindowTitles->setChecked( KomposeSettings::instance()->getShowWindowTitles() );
+ windowTitleFont = new QFont(KomposeSettings::instance()->getWindowTitleFont());
+ windowTitleFontColor->setColor( KomposeSettings::instance()->getWindowTitleFontColor() );
+ windowTitleFontShadowColor->setColor( KomposeSettings::instance()->getWindowTitleFontShadowColor() );
+ showWindowTitleShadow->setChecked( KomposeSettings::instance()->getShowWindowTitleShadow() );
+ // Disable dependant widgets
+ windowTitleFontBtn->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
+ windowTitleFontColorLabel->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
+ windowTitleFontColor->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
+ showWindowTitleShadow->setEnabled( KomposeSettings::instance()->getShowWindowTitles() );
+ windowTitleFontShadowColor->setEnabled( KomposeSettings::instance()->getShowWindowTitles() || KomposeSettings::instance()->getShowWindowTitleShadow() );
+
+ desktopTitleFont = new QFont(KomposeSettings::instance()->getDesktopTitleFont());
+ desktopTitleFontColor->setColor( KomposeSettings::instance()->getDesktopTitleFontColor() );
+ desktopTitleFontHighlightColor->setColor( KomposeSettings::instance()->getDesktopTitleFontHighlightColor() );
+
+ showIcons->setChecked( KomposeSettings::instance()->getShowIcons() );
+ iconSize->setValue( KomposeSettings::instance()->getIconSize() );
+ iconSize->setEnabled( showIcons->isChecked() );
+ iconSizeDescription->setEnabled( showIcons->isChecked() );
+ updateIconSliderDesc( iconSize->value() );
+}
+
+
+
+
+void KomposePreferences::slotApply()
+{
+ KomposeSettings::instance()->setDefaultView( defaultViewBtnGroup->selectedId() );
+
+ KomposeSettings::instance()->setPassiveScreenshots( passiveScreenshots->isChecked() );
+ KomposeSettings::instance()->setScreenshotGrabDelay( screenshotGrabDelay->value() * 1000000 );
+ KomposeSettings::instance()->setDynamicVirtDeskLayout( dynamicVirtDeskLayout->isChecked() );
+ KomposeSettings::instance()->setImageEffects( imageEffects->isChecked() );
+ KomposeSettings::instance()->setTintVirtDesks( tintVirtDesks->isChecked() );
+ KomposeSettings::instance()->setTintVirtDesksColor( tintVirtDesksColor->color() );
+
+ KomposeSettings::instance()->setShowWindowTitles( showWindowTitles->isChecked() );
+ KomposeSettings::instance()->setWindowTitleFont( *windowTitleFont );
+ KomposeSettings::instance()->setWindowTitleFontColor( windowTitleFontColor->color() );
+ KomposeSettings::instance()->setWindowTitleFontShadowColor( windowTitleFontShadowColor->color() );
+ KomposeSettings::instance()->setShowWindowTitleShadow( showWindowTitleShadow->isChecked() );
+
+ KomposeSettings::instance()->setDesktopTitleFont( *desktopTitleFont );
+ KomposeSettings::instance()->setDesktopTitleFontColor( desktopTitleFontColor->color() );
+ KomposeSettings::instance()->setDesktopTitleFontHighlightColor( desktopTitleFontHighlightColor->color() );
+
+ KomposeSettings::instance()->setShowIcons( showIcons->isChecked() );
+ KomposeSettings::instance()->setIconSize( iconSize->value() );
+
+ KomposeSettings::instance()->writeConfig();
+
+ KDialogBase::slotApply();
+}
+
+void KomposePreferences::slotOk()
+{
+ slotApply();
+ KDialogBase::slotOk();
+}
+
+
+#include "komposepreferences.moc"