added manpage
[qbat.git] / settings.cpp
blob8bcbe907a42f18e1c4de6322b2b46f9d66385f10
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() {
28 void CSettings::applySettings() {
29 m_Settings->handleCritical = ui.criticalGroup->isChecked();
30 m_Settings->criticalCapacity = ui.criticalCapacitySpin->value();
31 m_Settings->executeCommand = ui.criticalCommandRadio->isChecked();
32 m_Settings->mergeBatterys = ui.mergeBatteryCheck->isChecked();
33 m_Settings->pollingRate = ui.pollingRateSpin->value();
35 for (int i = 0; i < UI_COUNT_COLORS; i++)
36 m_Settings->colors[i] = colors[i];
38 emit settingsChanged();
41 bool CSettings::execute(Settings * settings) {
42 ui.criticalGroup->setChecked(settings->handleCritical);
43 ui.criticalCapacitySpin->setValue(settings->criticalCapacity);
44 ui.criticalCommandRadio->setChecked(settings->executeCommand);
45 ui.mergeBatteryCheck->setChecked(settings->mergeBatterys);
46 ui.pollingRateSpin->setValue(settings->pollingRate);
49 QPixmap colorIcon(24, 24);
51 for (int i = 0; i < UI_COUNT_COLORS; i++) {
52 colorIcon.fill(settings->colors[i]);
53 colorSelectButtons.button(i+1)->setIcon(colorIcon);
54 colors[i] = settings->colors[i];
58 m_Settings = settings;
60 if (exec()) {
61 applySettings();
62 return true;
64 else
65 return false;
68 void CSettings::editColor(int id) {
69 QColor color = QColorDialog::getColor(QColor(colors[id-1]), this);
70 if (color.isValid()) {
71 QPixmap colorIcon(24, 24);
72 colorIcon.fill(color);
74 colorSelectButtons.button(id)->setIcon(QIcon(colorIcon));
75 colors[id-1] = color.rgb();