~ubuntu-branches/ubuntu/precise/gwenview/precise-proposed

« back to all changes in this revision

Viewing changes to app/configdialog.cpp

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2011-12-15 14:17:54 UTC
  • mto: This revision was merged to the branch mainline in revision 12.
  • Revision ID: package-import@ubuntu.com-20111215141754-z043hyx69dulbggf
Tags: upstream-4.7.90
Import upstream version 4.7.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// vim: set tabstop=4 shiftwidth=4 noexpandtab:
 
1
// vim: set tabstop=4 shiftwidth=4 expandtab:
2
2
/*
3
3
Gwenview: an image viewer
4
4
Copyright 2007 Aurélien Gâteau <agateau@kde.org>
32
32
#include "ui_advancedconfigpage.h"
33
33
#include <lib/gwenviewconfig.h>
34
34
#include <lib/invisiblebuttongroup.h>
35
 
#include <lib/scrolltool.h>
36
 
 
37
 
namespace Gwenview {
38
 
 
 
35
 
 
36
namespace Gwenview
 
37
{
39
38
 
40
39
struct ConfigDialogPrivate {
41
 
        InvisibleButtonGroup* mAlphaBackgroundModeGroup;
42
 
        InvisibleButtonGroup* mWheelBehaviorGroup;
43
 
        InvisibleButtonGroup* mThumbnailBarOrientationGroup;
44
 
        Ui_GeneralConfigPage mGeneralConfigPage;
45
 
        Ui_ImageViewConfigPage mImageViewConfigPage;
46
 
        Ui_AdvancedConfigPage mAdvancedConfigPage;
 
40
    InvisibleButtonGroup* mAlphaBackgroundModeGroup;
 
41
    InvisibleButtonGroup* mWheelBehaviorGroup;
 
42
    InvisibleButtonGroup* mThumbnailBarOrientationGroup;
 
43
    Ui_GeneralConfigPage mGeneralConfigPage;
 
44
    Ui_ImageViewConfigPage mImageViewConfigPage;
 
45
    Ui_AdvancedConfigPage mAdvancedConfigPage;
47
46
};
48
47
 
49
48
template <class Ui>
50
 
QWidget* setupPage(Ui& ui) {
51
 
        QWidget* widget = new QWidget;
52
 
        ui.setupUi(widget);
53
 
        widget->layout()->setMargin(0);
54
 
        return widget;
 
49
QWidget* setupPage(Ui& ui)
 
50
{
 
51
    QWidget* widget = new QWidget;
 
52
    ui.setupUi(widget);
 
53
    widget->layout()->setMargin(0);
 
54
    return widget;
55
55
}
56
56
 
57
57
ConfigDialog::ConfigDialog(QWidget* parent)
58
58
: KConfigDialog(parent, "Settings", GwenviewConfig::self())
59
 
, d(new ConfigDialogPrivate) {
60
 
        setFaceType(KPageDialog::List);
61
 
        setButtons(KDialog::Ok | KDialog::Cancel | KDialog::Apply | KDialog::Default);
62
 
        showButtonSeparator(true);
63
 
 
64
 
        QWidget* widget;
65
 
        KPageWidgetItem* pageItem;
66
 
 
67
 
        // General
68
 
        widget = setupPage(d->mGeneralConfigPage);
69
 
        pageItem = addPage(widget, i18n("General"));
70
 
        pageItem->setIcon(KIcon("gwenview"));
71
 
        connect(d->mGeneralConfigPage.kcfg_ViewBackgroundValue, SIGNAL(valueChanged(int)), SLOT(updateViewBackgroundFrame()));
72
 
 
73
 
        // Image View
74
 
        widget = setupPage(d->mImageViewConfigPage);
75
 
 
76
 
        d->mAlphaBackgroundModeGroup = new InvisibleButtonGroup(widget);
77
 
        d->mAlphaBackgroundModeGroup->setObjectName( QLatin1String("kcfg_AlphaBackgroundMode" ));
78
 
        d->mAlphaBackgroundModeGroup->addButton(d->mImageViewConfigPage.checkBoardRadioButton, int(ImageView::AlphaBackgroundCheckBoard));
79
 
        d->mAlphaBackgroundModeGroup->addButton(d->mImageViewConfigPage.solidColorRadioButton, int(ImageView::AlphaBackgroundSolid));
80
 
 
81
 
        d->mWheelBehaviorGroup = new InvisibleButtonGroup(widget);
82
 
        d->mWheelBehaviorGroup->setObjectName( QLatin1String("kcfg_MouseWheelBehavior" ));
83
 
        d->mWheelBehaviorGroup->addButton(d->mImageViewConfigPage.mouseWheelScrollRadioButton, int(ScrollTool::MouseWheelScroll));
84
 
        d->mWheelBehaviorGroup->addButton(d->mImageViewConfigPage.mouseWheelBrowseRadioButton, int(ScrollTool::MouseWheelBrowse));
85
 
 
86
 
        d->mThumbnailBarOrientationGroup = new InvisibleButtonGroup(widget);
87
 
        d->mThumbnailBarOrientationGroup->setObjectName( QLatin1String("kcfg_ThumbnailBarOrientation" ));
88
 
        d->mThumbnailBarOrientationGroup->addButton(d->mImageViewConfigPage.horizontalRadioButton, int(Qt::Horizontal));
89
 
        d->mThumbnailBarOrientationGroup->addButton(d->mImageViewConfigPage.verticalRadioButton, int(Qt::Vertical));
90
 
 
91
 
        pageItem = addPage(widget, i18n("Image View"));
92
 
        pageItem->setIcon(KIcon("view-preview"));
93
 
 
94
 
        // Advanced
95
 
        widget = setupPage(d->mAdvancedConfigPage);
96
 
        pageItem = addPage(widget, i18n("Advanced"));
97
 
        pageItem->setIcon(KIcon("preferences-other"));
98
 
        d->mAdvancedConfigPage.cacheHelpLabel->setFont(KGlobalSettings::smallestReadableFont());
99
 
 
100
 
        updateViewBackgroundFrame();
101
 
}
102
 
 
103
 
 
104
 
ConfigDialog::~ConfigDialog() {
105
 
        delete d;
106
 
}
107
 
 
108
 
 
109
 
void ConfigDialog::updateViewBackgroundFrame() {
110
 
        QColor color = QColor::fromHsv(0, 0, d->mGeneralConfigPage.kcfg_ViewBackgroundValue->value());
111
 
        QString css =
112
 
                QString(
113
 
                "background-color: %1;"
114
 
                "border-radius: 5px;"
115
 
                "border: 1px solid %1;")
116
 
                .arg(color.name());
117
 
        // When using Oxygen, setting the background color via palette causes the
118
 
        // pixels outside the frame to be painted with the new background color as
119
 
        // well. Using CSS works more like expected.
120
 
        d->mGeneralConfigPage.backgroundValueFrame->setStyleSheet(css);
121
 
}
122
 
 
 
59
, d(new ConfigDialogPrivate)
 
60
{
 
61
    setFaceType(KPageDialog::List);
 
62
    setButtons(KDialog::Ok | KDialog::Cancel | KDialog::Apply | KDialog::Default);
 
63
    showButtonSeparator(true);
 
64
 
 
65
    QWidget* widget;
 
66
    KPageWidgetItem* pageItem;
 
67
 
 
68
    // General
 
69
    widget = setupPage(d->mGeneralConfigPage);
 
70
    pageItem = addPage(widget, i18n("General"));
 
71
    pageItem->setIcon(KIcon("gwenview"));
 
72
    connect(d->mGeneralConfigPage.kcfg_ViewBackgroundValue, SIGNAL(valueChanged(int)), SLOT(updateViewBackgroundFrame()));
 
73
 
 
74
    // Image View
 
75
    widget = setupPage(d->mImageViewConfigPage);
 
76
 
 
77
    d->mAlphaBackgroundModeGroup = new InvisibleButtonGroup(widget);
 
78
    d->mAlphaBackgroundModeGroup->setObjectName(QLatin1String("kcfg_AlphaBackgroundMode"));
 
79
    d->mAlphaBackgroundModeGroup->addButton(d->mImageViewConfigPage.checkBoardRadioButton, int(RasterImageView::AlphaBackgroundCheckBoard));
 
80
    d->mAlphaBackgroundModeGroup->addButton(d->mImageViewConfigPage.solidColorRadioButton, int(RasterImageView::AlphaBackgroundSolid));
 
81
 
 
82
    d->mWheelBehaviorGroup = new InvisibleButtonGroup(widget);
 
83
    d->mWheelBehaviorGroup->setObjectName(QLatin1String("kcfg_MouseWheelBehavior"));
 
84
    d->mWheelBehaviorGroup->addButton(d->mImageViewConfigPage.mouseWheelScrollRadioButton, int(MouseWheelBehavior::Scroll));
 
85
    d->mWheelBehaviorGroup->addButton(d->mImageViewConfigPage.mouseWheelBrowseRadioButton, int(MouseWheelBehavior::Browse));
 
86
 
 
87
    d->mThumbnailBarOrientationGroup = new InvisibleButtonGroup(widget);
 
88
    d->mThumbnailBarOrientationGroup->setObjectName(QLatin1String("kcfg_ThumbnailBarOrientation"));
 
89
    d->mThumbnailBarOrientationGroup->addButton(d->mImageViewConfigPage.horizontalRadioButton, int(Qt::Horizontal));
 
90
    d->mThumbnailBarOrientationGroup->addButton(d->mImageViewConfigPage.verticalRadioButton, int(Qt::Vertical));
 
91
 
 
92
    pageItem = addPage(widget, i18n("Image View"));
 
93
    pageItem->setIcon(KIcon("view-preview"));
 
94
 
 
95
    // Advanced
 
96
    widget = setupPage(d->mAdvancedConfigPage);
 
97
    pageItem = addPage(widget, i18n("Advanced"));
 
98
    pageItem->setIcon(KIcon("preferences-other"));
 
99
    d->mAdvancedConfigPage.cacheHelpLabel->setFont(KGlobalSettings::smallestReadableFont());
 
100
 
 
101
    updateViewBackgroundFrame();
 
102
}
 
103
 
 
104
ConfigDialog::~ConfigDialog()
 
105
{
 
106
    delete d;
 
107
}
 
108
 
 
109
void ConfigDialog::updateViewBackgroundFrame()
 
110
{
 
111
    QColor color = QColor::fromHsv(0, 0, d->mGeneralConfigPage.kcfg_ViewBackgroundValue->value());
 
112
    QString css =
 
113
        QString(
 
114
            "background-color: %1;"
 
115
            "border-radius: 5px;"
 
116
            "border: 1px solid %1;")
 
117
        .arg(color.name());
 
118
    // When using Oxygen, setting the background color via palette causes the
 
119
    // pixels outside the frame to be painted with the new background color as
 
120
    // well. Using CSS works more like expected.
 
121
    d->mGeneralConfigPage.backgroundValueFrame->setStyleSheet(css);
 
122
}
123
123
 
124
124
} // namespace