[companion] Adjust GVAR not possible in global functions (fix #5425)
[opentx.git] / companion / src / shared / autocheckbox.h
blobdf99278a20ef79aee4b7db63765e21bf01630a57
1 /*
2 * Copyright (C) OpenTX
4 * Based on code named
5 * th9x - http://code.google.com/p/th9x
6 * er9x - http://code.google.com/p/er9x
7 * gruvin9x - http://code.google.com/p/gruvin9x
9 * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
21 #ifndef _AUTOCHECKBOX_H_
22 #define _AUTOCHECKBOX_H_
24 #include <QCheckBox>
25 #include "modeledit/modeledit.h"
27 class AutoCheckBox: public QCheckBox
29 Q_OBJECT
31 public:
32 explicit AutoCheckBox(QWidget *parent = 0):
33 QCheckBox(parent),
34 field(NULL),
35 panel(NULL),
36 lock(false)
38 connect(this, SIGNAL(toggled(bool)), this, SLOT(onToggled(bool)));
41 void setField(bool & field, ModelPanel * panel=NULL)
43 this->field = &field;
44 this->panel = panel;
45 updateValue();
48 void updateValue()
50 lock = true;
51 if (field) {
52 setChecked(*field);
54 lock = false;
57 protected slots:
58 void onToggled(bool checked)
60 if (field && !lock) {
61 *field = checked;
62 if (panel) {
63 emit panel->modified();
68 protected:
69 bool * field;
70 ModelPanel * panel;
71 bool lock;
74 #endif // _AUTOCHECKBOX_H_