summaryrefslogtreecommitdiff
path: root/client/widgets/checkbox.cc
diff options
context:
space:
mode:
Diffstat (limited to 'client/widgets/checkbox.cc')
-rw-r--r--client/widgets/checkbox.cc81
1 files changed, 37 insertions, 44 deletions
diff --git a/client/widgets/checkbox.cc b/client/widgets/checkbox.cc
index e550289..19b59e6 100644
--- a/client/widgets/checkbox.cc
+++ b/client/widgets/checkbox.cc
@@ -26,19 +26,24 @@
*/
#include "checkbox.h"
+#include <QCheckBox>
+
#include "common.h"
CheckBox::CheckBox(QDomNode &node, MacroWindow *macrowindow)
- : QCheckBox(), Widget(node, macrowindow)
+ : Widget(node, macrowindow)
{
+ checkbox = new QCheckBox();
+ widget = checkbox;
+
changedByUser = true;
- setCommonAttributes(this, node);
+ setCommonAttributes(checkbox, node);
QDomElement elem = node.toElement();
if(elem.hasAttribute("caption")) {
- setText(elem.attribute("caption"));
+ checkbox->setText(elem.attribute("caption"));
}
if(elem.hasAttribute("truevalue")) {
@@ -53,12 +58,18 @@ CheckBox::CheckBox(QDomNode &node, MacroWindow *macrowindow)
falsevalue = "false";
}
- connect(this, SIGNAL(stateChanged(int)), this, SLOT(state_change(int)));
+ connect(checkbox, SIGNAL(stateChanged(int)), this, SLOT(state_change(int)));
+}
+
+CheckBox::~CheckBox()
+{
+ printf("Delete (CheckBox) %p\n", this); fflush(stdout);
+ // delete checkbox;
}
-QString CheckBox::getValue()
+QString CheckBox::value()
{
- if(isChecked()) return truevalue;
+ if(checkbox->isChecked()) return truevalue;
return falsevalue;
}
@@ -68,69 +79,51 @@ void CheckBox::setValue(QString value, QString source)
changedByUser = false;
- bool old = isChecked();
+ bool old = checkbox->isChecked();
if(value == truevalue) {
- setChecked(true);
+ checkbox->setChecked(true);
} else if(value == falsevalue) {
- setChecked(false);
+ checkbox->setChecked(false);
} else {
printf("Unknown checkbox value: %s\n", value.toStdString().c_str());
}
// If set operation did not change the value we must invocate the code manually.
- if(old == isChecked()) state_change(0);
+ if(old == checkbox->isChecked()) state_change(0);
setInitialValue(value);
changedByUser = true;
}
-/*
-bool CheckBox::isValid()
-{
- return luaValidator();
-}
-*/
+
void CheckBox::state_change(int)
{
if(changedByUser) emit wasChanged();
- luaValidator();
+ eventOnChange();
}
-void CheckBox::connectFrom(const char *signal,
- const QObject *receiver, const char *method)
+bool CheckBox::checked()
{
- connect(this, signal, receiver, method);
+ return value() == truevalue;
}
-void CheckBox::connectTo(const QObject *sender, const char *signal,
- const char *method)
+void CheckBox::setChecked(bool checked)
{
- connect(sender, signal, this, method);
+ setValue(checked ? truevalue : falsevalue);
}
-void CheckBox::setVisibility(bool visible)
+void CheckBox::setWdgValid(bool valid)
{
- setVisible(visible);
-}
+ QPalette palette;
-bool CheckBox::setKeyboardFocus()
-{
- setFocus();
- return true;
-}
-
-void CheckBox::enable()
-{
- setEnabled(true);
-}
-
-void CheckBox::disable()
-{
- setEnabled(false);
-}
+ if(valid) {
+ // valid string
+ palette.setBrush(QPalette::Base, QBrush(QColor(255, 255, 255)));
+ } else {
+ // invalid string
+ palette.setBrush(QPalette::Base, QBrush(QColor(230, 200, 200)));
+ }
-bool CheckBox::isDisabled()
-{
- return isEnabled() == false;
+ checkbox->setPalette(palette);
}