32
32
#include "ui_advancedconfigpage.h"
33
33
#include <lib/gwenviewconfig.h>
34
34
#include <lib/invisiblebuttongroup.h>
35
#include <lib/scrolltool.h>
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;
49
48
template <class Ui>
50
QWidget* setupPage(Ui& ui) {
51
QWidget* widget = new QWidget;
53
widget->layout()->setMargin(0);
49
QWidget* setupPage(Ui& ui)
51
QWidget* widget = new QWidget;
53
widget->layout()->setMargin(0);
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);
65
KPageWidgetItem* pageItem;
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()));
74
widget = setupPage(d->mImageViewConfigPage);
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));
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));
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));
91
pageItem = addPage(widget, i18n("Image View"));
92
pageItem->setIcon(KIcon("view-preview"));
95
widget = setupPage(d->mAdvancedConfigPage);
96
pageItem = addPage(widget, i18n("Advanced"));
97
pageItem->setIcon(KIcon("preferences-other"));
98
d->mAdvancedConfigPage.cacheHelpLabel->setFont(KGlobalSettings::smallestReadableFont());
100
updateViewBackgroundFrame();
104
ConfigDialog::~ConfigDialog() {
109
void ConfigDialog::updateViewBackgroundFrame() {
110
QColor color = QColor::fromHsv(0, 0, d->mGeneralConfigPage.kcfg_ViewBackgroundValue->value());
113
"background-color: %1;"
114
"border-radius: 5px;"
115
"border: 1px solid %1;")
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);
59
, d(new ConfigDialogPrivate)
61
setFaceType(KPageDialog::List);
62
setButtons(KDialog::Ok | KDialog::Cancel | KDialog::Apply | KDialog::Default);
63
showButtonSeparator(true);
66
KPageWidgetItem* pageItem;
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()));
75
widget = setupPage(d->mImageViewConfigPage);
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));
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));
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));
92
pageItem = addPage(widget, i18n("Image View"));
93
pageItem->setIcon(KIcon("view-preview"));
96
widget = setupPage(d->mAdvancedConfigPage);
97
pageItem = addPage(widget, i18n("Advanced"));
98
pageItem->setIcon(KIcon("preferences-other"));
99
d->mAdvancedConfigPage.cacheHelpLabel->setFont(KGlobalSettings::smallestReadableFont());
101
updateViewBackgroundFrame();
104
ConfigDialog::~ConfigDialog()
109
void ConfigDialog::updateViewBackgroundFrame()
111
QColor color = QColor::fromHsv(0, 0, d->mGeneralConfigPage.kcfg_ViewBackgroundValue->value());
114
"background-color: %1;"
115
"border-radius: 5px;"
116
"border: 1px solid %1;")
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);