// vim: set tabstop=4 shiftwidth=4 expandtab: /* Gwenview: an image viewer Copyright 2007 Aurélien Gâteau 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; either version 2 of the License, or (at your option) any later version. 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; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ // Self #include "configdialog.h" // Katie #include // KDE #include #include // Local #include "ui_generalconfigpage.h" #include "ui_imageviewconfigpage.h" #include "ui_advancedconfigpage.h" #include #include namespace Gwenview { class BackgroundFrame : public QFrame { }; struct ConfigDialogPrivate { InvisibleButtonGroup* mAlphaBackgroundModeGroup; InvisibleButtonGroup* mWheelBehaviorGroup; InvisibleButtonGroup* mAnimationMethodGroup; InvisibleButtonGroup* mThumbnailBarOrientationGroup; Ui_GeneralConfigPage mGeneralConfigPage; Ui_ImageViewConfigPage mImageViewConfigPage; Ui_AdvancedConfigPage mAdvancedConfigPage; }; template QWidget* setupPage(Ui& ui) { QWidget* widget = new QWidget; ui.setupUi(widget); widget->layout()->setMargin(0); return widget; } ConfigDialog::ConfigDialog(QWidget* parent) : KConfigDialog(parent, "Settings", GwenviewConfig::self()) , d(new ConfigDialogPrivate) { setFaceType(KPageDialog::List); setButtons(KDialog::Ok | KDialog::Cancel | KDialog::Apply | KDialog::Default); showButtonSeparator(true); QWidget* widget; KPageWidgetItem* pageItem; // General widget = setupPage(d->mGeneralConfigPage); pageItem = addPage(widget, i18n("General")); pageItem->setIcon(KIcon("gwenview")); connect(d->mGeneralConfigPage.kcfg_ViewBackgroundValue, SIGNAL(valueChanged(int)), SLOT(updateViewBackgroundFrame())); // Image View widget = setupPage(d->mImageViewConfigPage); d->mAlphaBackgroundModeGroup = new InvisibleButtonGroup(widget); d->mAlphaBackgroundModeGroup->setObjectName(QLatin1String("kcfg_AlphaBackgroundMode")); d->mAlphaBackgroundModeGroup->addButton(d->mImageViewConfigPage.checkBoardRadioButton, int(RasterImageView::AlphaBackgroundCheckBoard)); d->mAlphaBackgroundModeGroup->addButton(d->mImageViewConfigPage.solidColorRadioButton, int(RasterImageView::AlphaBackgroundSolid)); d->mWheelBehaviorGroup = new InvisibleButtonGroup(widget); d->mWheelBehaviorGroup->setObjectName(QLatin1String("kcfg_MouseWheelBehavior")); d->mWheelBehaviorGroup->addButton(d->mImageViewConfigPage.mouseWheelScrollRadioButton, int(MouseWheelBehavior::Scroll)); d->mWheelBehaviorGroup->addButton(d->mImageViewConfigPage.mouseWheelBrowseRadioButton, int(MouseWheelBehavior::Browse)); d->mAnimationMethodGroup = new InvisibleButtonGroup(widget); d->mAnimationMethodGroup->setObjectName(QLatin1String("kcfg_AnimationMethod")); d->mAnimationMethodGroup->addButton(d->mImageViewConfigPage.softwareAnimationRadioButton, int(DocumentView::SoftwareAnimation)); d->mAnimationMethodGroup->addButton(d->mImageViewConfigPage.noAnimationRadioButton, int(DocumentView::NoAnimation)); d->mThumbnailBarOrientationGroup = new InvisibleButtonGroup(widget); d->mThumbnailBarOrientationGroup->setObjectName(QLatin1String("kcfg_ThumbnailBarOrientation")); d->mThumbnailBarOrientationGroup->addButton(d->mImageViewConfigPage.horizontalRadioButton, int(Qt::Horizontal)); d->mThumbnailBarOrientationGroup->addButton(d->mImageViewConfigPage.verticalRadioButton, int(Qt::Vertical)); pageItem = addPage(widget, i18n("Image View")); pageItem->setIcon(KIcon("view-preview")); // Advanced widget = setupPage(d->mAdvancedConfigPage); pageItem = addPage(widget, i18n("Advanced")); pageItem->setIcon(KIcon("preferences-other")); updateViewBackgroundFrame(); } ConfigDialog::~ConfigDialog() { delete d; } void ConfigDialog::updateViewBackgroundFrame() { QColor color = QColor::fromHsv(0, 0, d->mGeneralConfigPage.kcfg_ViewBackgroundValue->value()); d->mGeneralConfigPage.backgroundValueFrame->setColor(color); } } // namespace