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 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
;
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();