diff options
Diffstat (limited to 'kuickshow/src/generalwidget.cpp')
-rw-r--r-- | kuickshow/src/generalwidget.cpp | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/kuickshow/src/generalwidget.cpp b/kuickshow/src/generalwidget.cpp new file mode 100644 index 00000000..3b718d69 --- /dev/null +++ b/kuickshow/src/generalwidget.cpp @@ -0,0 +1,163 @@ +/* This file is part of the KDE project + Copyright (C) 1998-2002 Carsten Pfeiffer <[email protected]> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public + License as published by the Free Software Foundation, version 2. + + This program 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 + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include <qcheckbox.h> +#include <qlabel.h> +#include <qlayout.h> +#include <qtooltip.h> +#include <qvgroupbox.h> + +#include <kapplication.h> +#include <kcolorbutton.h> +#include <kdialog.h> +#include <kiconloader.h> +#include <klineedit.h> +#include <klocale.h> +#include <knuminput.h> +#include <kurllabel.h> + +#include "generalwidget.h" + +GeneralWidget::GeneralWidget( QWidget *parent, const char *name ) + : QWidget( parent, name ) +{ + QVBoxLayout *layout = new QVBoxLayout( this ); + layout->setSpacing( KDialog::spacingHint() ); + + QPixmap pixmap = UserIcon( "logo" ); + KURLLabel *logo = new KURLLabel( this ); + logo->setURL( "http://devel-home.kde.org/~pfeiffer/kuickshow/" ); + logo->setPixmap( pixmap ); + logo->setFixedSize( pixmap.size() ); + logo->setTipText( i18n( "Open KuickShow Website" ) ); + logo->setUseTips( true ); + + connect( logo, SIGNAL( leftClickedURL( const QString & ) ), + SLOT( slotURLClicked( const QString & ) ) ); + + layout->addWidget( logo, 0, AlignRight ); + + cbFullscreen = new QCheckBox( i18n("Fullscreen mode"), this, "boscreen" ); + + cbPreload = new QCheckBox( i18n("Preload next image"), this, "preload"); + cbLastdir = new QCheckBox( i18n("Remember last folder"), this, "restart_lastdir"); + + QGridLayout *gridLayout = new QGridLayout( 2, 2 ); + gridLayout->setSpacing( KDialog::spacingHint() ); + QLabel *l0 = new QLabel( i18n("Background color:"), this ); + colorButton = new KColorButton( this ); + + QLabel *l1 = new QLabel( i18n("Show only files with extension: "), this, "label" ); + editFilter = new KLineEdit( this, "filteredit" ); + + gridLayout->addWidget( l0, 0, 0 ); + gridLayout->addWidget( colorButton, 0, 1 ); + gridLayout->addWidget( l1, 1, 0 ); + gridLayout->addWidget( editFilter, 1, 1 ); + + layout->addWidget( cbFullscreen ); + layout->addWidget( cbPreload ); + layout->addWidget( cbLastdir ); + layout->addLayout( gridLayout ); + + //////////////////////////////////////////////////////////////////////// + + QVGroupBox *gbox2 = new QVGroupBox( i18n("Quality/Speed"), + this, "qualitybox" ); + layout->addWidget( gbox2 ); + layout->addStretch(); + + cbSmoothScale = new QCheckBox( i18n("Smooth scaling"), gbox2, "smoothscale" ); + cbFastRender = new QCheckBox( i18n("Fast rendering"), gbox2, "fastrender" ); + cbDither16bit = new QCheckBox( i18n("Dither in HiColor (15/16bit) modes"), + gbox2, "dither16bit" ); + + cbDither8bit = new QCheckBox( i18n("Dither in LowColor (<=8bit) modes"), + gbox2, "dither8bit" ); + + cbOwnPalette = new QCheckBox( i18n("Use own color palette"), + gbox2, "pal"); + connect( cbOwnPalette, SIGNAL( clicked() ), this, SLOT( useOwnPalette() ) ); + + cbFastRemap = new QCheckBox( i18n("Fast palette remapping"), gbox2, "remap"); + + maxCacheSpinBox = new KIntNumInput( gbox2, "editmaxcache" ); + maxCacheSpinBox->setLabel( i18n("Maximum cache size: "), AlignVCenter ); + maxCacheSpinBox->setSuffix( i18n( " MB" ) ); + maxCacheSpinBox->setSpecialValueText( i18n( "Unlimited" ) ); + maxCacheSpinBox->setRange( 0, 400, 1 ); + + loadSettings( *kdata ); + cbFullscreen->setFocus(); +} + +GeneralWidget::~GeneralWidget() +{ +} + +void GeneralWidget::slotURLClicked( const QString & url ) +{ + kapp->invokeBrowser( url ); +} + +void GeneralWidget::loadSettings( const KuickData& data ) +{ + ImData *idata = data.idata; + + colorButton->setColor( data.backgroundColor ); + editFilter->setText( data.fileFilter ); + cbFullscreen->setChecked( data.fullScreen ); + cbPreload->setChecked( data.preloadImage ); + cbLastdir->setChecked( data.startInLastDir ); + cbFastRemap->setChecked( idata->fastRemap ); + cbOwnPalette->setChecked( idata->ownPalette ); + cbSmoothScale->setChecked( idata->smoothScale ); + cbFastRender->setChecked( idata->fastRender ); + cbDither16bit->setChecked( idata->dither16bit ); + cbDither8bit->setChecked( idata->dither8bit ); + maxCacheSpinBox->setValue( idata->maxCache / 1024 ); + + useOwnPalette(); // enable/disable remap-checkbox +} + +void GeneralWidget::applySettings( KuickData& data) +{ + ImData *idata = data.idata; + + data.backgroundColor = colorButton->color(); + data.fileFilter = editFilter->text(); + data.fullScreen = cbFullscreen->isChecked(); + data.preloadImage = cbPreload->isChecked(); + data.startInLastDir = cbLastdir->isChecked(); + + idata->smoothScale = cbSmoothScale->isChecked(); + idata->fastRemap = cbFastRemap->isChecked(); + idata->ownPalette = cbOwnPalette->isChecked(); + idata->fastRender = cbFastRender->isChecked(); + idata->dither16bit = cbDither16bit->isChecked(); + idata->dither8bit = cbDither8bit->isChecked(); + + idata->maxCache = (uint) maxCacheSpinBox->value() * 1024; +} + +void GeneralWidget::useOwnPalette() +{ + cbFastRemap->setEnabled( cbOwnPalette->isChecked() ); +} + +#include "generalwidget.moc" |