2 // C++ Implementation: settings
4 // Author: Oliver Groß <z.o.gross@gmx.de>, (C) 2008
6 // Copyright: See COPYING file that comes with this distribution
9 #include <QColorDialog>
12 CSettings::CSettings(QWidget
* parent
) : QDialog(parent
) {
14 setWindowIcon(QIcon(UI_ICON_QBAT_SMALL
));
16 colorSelectButtons
.setExclusive(false);
17 colorSelectButtons
.addButton(ui
.mainFullColorButton
, 1 + UI_COLOR_BRUSH_FULL
);
18 colorSelectButtons
.addButton(ui
.mainChargedColorButton
, 1 + UI_COLOR_BRUSH_CHARGED
);
19 colorSelectButtons
.addButton(ui
.mainEmptyColorButton
, 1 + UI_COLOR_BRUSH_EMPTY
);
20 colorSelectButtons
.addButton(ui
.textColorButton
, 1 + UI_COLOR_PEN
);
21 colorSelectButtons
.addButton(ui
.textFullColorButton
, 1 + UI_COLOR_PEN_FULL
);
22 colorSelectButtons
.addButton(ui
.poleColorButton
, 1 + UI_COLOR_BRUSH_POLE
);
23 colorSelectButtons
.addButton(ui
.poleFullColorButton
, 1 + UI_COLOR_BRUSH_POLE_FULL
);
24 connect(&colorSelectButtons
, SIGNAL(buttonClicked(int)), this, SLOT(editColor(int)));
27 CSettings::~CSettings() {}
29 void CSettings::applySettings() {
30 m_Settings
->handleCritical
= ui
.criticalGroup
->isChecked();
31 m_Settings
->criticalCapacity
= ui
.criticalCapacitySpin
->value();
33 m_Settings
->executeCommand
= ui
.criticalCommandRadio
->isChecked();
34 m_Settings
->criticalCommand
= ui
.criticalCommandEdit
->text();
36 m_Settings
->confirmCommand
= ui
.confirmCommandBox
->isChecked();
37 m_Settings
->confirmWithTimeout
= ui
.timeoutCheck
->isChecked();
38 m_Settings
->timeoutValue
= ui
.timeoutSpin
->value();
40 for (int i
= 0; i
< UI_COUNT_COLORS
; i
++)
41 m_Settings
->colors
[i
] = colors
[i
];
43 m_Settings
->mergeBatteries
= ui
.mergeBatteriesCheck
->isChecked();
45 m_Settings
->showBalloon
= ui
.showBalloonCheck
->isChecked();
46 m_Settings
->pollingRate
= ui
.pollingRateSpin
->value();
49 bool CSettings::execute(Settings
* settings
) {
50 ui
.criticalGroup
->setChecked(settings
->handleCritical
);
51 ui
.criticalCapacitySpin
->setValue(settings
->criticalCapacity
);
53 if (settings
->executeCommand
)
54 ui
.criticalCommandRadio
->setChecked(true);
56 ui
.criticalWarningRadio
->setChecked(true);
58 ui
.criticalCommandEdit
->setText(settings
->criticalCommand
);
59 ui
.confirmCommandBox
->setChecked(settings
->confirmCommand
);
60 ui
.timeoutCheck
->setChecked(settings
->confirmWithTimeout
);
61 ui
.timeoutSpin
->setValue(settings
->timeoutValue
);
64 QPixmap
colorIcon(24, 24);
66 for (int i
= 0; i
< UI_COUNT_COLORS
; i
++) {
67 colorIcon
.fill(settings
->colors
[i
]);
68 colorSelectButtons
.button(i
+1)->setIcon(colorIcon
);
69 colors
[i
] = settings
->colors
[i
];
72 ui
.mergeBatteriesCheck
->setChecked(settings
->mergeBatteries
);
74 ui
.pollingRateSpin
->setValue(settings
->pollingRate
);
75 ui
.showBalloonCheck
->setChecked(settings
->showBalloon
);
77 m_Settings
= settings
;
87 void CSettings::editColor(int id
) {
88 QColor color
= QColorDialog::getColor(QColor(colors
[id
-1]), this);
89 if (color
.isValid()) {
90 QPixmap
colorIcon(24, 24);
91 colorIcon
.fill(color
);
93 colorSelectButtons
.button(id
)->setIcon(QIcon(colorIcon
));
94 colors
[id
-1] = color
.rgb();