fixed little logical bug
[qbat.git] / settings.cpp
blob84d948f00ebc1846e0347aa0545b01ae84d86a8e
1 //
2 // C++ Implementation: settings
3 //
4 // Author: Oliver Groß <z.o.gross@gmx.de>, (C) 2008
5 //
6 // Copyright: See COPYING file that comes with this distribution
7 //
8 #include "settings.h"
9 #include <QColorDialog>
11 namespace qbat {
12 CSettings::CSettings(QWidget * parent) : QDialog(parent) {
13 ui.setupUi(this);
14 colorSelectButtons.setExclusive(false);
15 colorSelectButtons.addButton(ui.mainFullColorButton, 1 + UI_COLOR_BRUSH_FULL);
16 colorSelectButtons.addButton(ui.mainChargedColorButton, 1 + UI_COLOR_BRUSH_CHARGED);
17 colorSelectButtons.addButton(ui.mainEmptyColorButton, 1 + UI_COLOR_BRUSH_EMPTY);
18 colorSelectButtons.addButton(ui.textColorButton, 1 + UI_COLOR_PEN);
19 colorSelectButtons.addButton(ui.textFullColorButton, 1 + UI_COLOR_PEN_FULL);
20 colorSelectButtons.addButton(ui.poleColorButton, 1 + UI_COLOR_BRUSH_POLE);
21 colorSelectButtons.addButton(ui.poleFullColorButton, 1 + UI_COLOR_BRUSH_POLE_FULL);
22 connect(&colorSelectButtons, SIGNAL(buttonClicked(int)), this, SLOT(editColor(int)));
25 CSettings::~CSettings() {}
27 void CSettings::applySettings() {
28 m_Settings->handleCritical = ui.criticalGroup->isChecked();
29 m_Settings->criticalCapacity = ui.criticalCapacitySpin->value();
31 m_Settings->executeCommand = ui.criticalCommandRadio->isChecked();
32 m_Settings->criticalCommand = ui.criticalCommandEdit->text();
34 m_Settings->confirmCommand = ui.confirmCommandBox->isChecked();
35 m_Settings->confirmWithTimeout = ui.timeoutCheck->isChecked();
36 m_Settings->timeoutValue = ui.timeoutSpin->value();
38 for (int i = 0; i < UI_COUNT_COLORS; i++)
39 m_Settings->colors[i] = colors[i];
41 m_Settings->mergeBatterys = ui.mergeBatteryCheck->isChecked();
43 m_Settings->showBalloon = ui.showBalloonCheck->isChecked();
44 m_Settings->pollingRate = ui.pollingRateSpin->value();
46 emit settingsChanged();
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);
55 else
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.mergeBatteryCheck->setChecked(settings->mergeBatterys);
74 ui.pollingRateSpin->setValue(settings->pollingRate);
75 ui.showBalloonCheck->setChecked(settings->showBalloon);
77 m_Settings = settings;
79 if (exec()) {
80 applySettings();
81 return true;
83 else
84 return false;
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();