summaryrefslogtreecommitdiffstats
path: root/addon/doxywizard/inputbool.cpp
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2008-12-06 16:00:07 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2008-12-06 16:00:07 (GMT)
commit752d21c112291e2a2e3bfa82a915b3c091965bfb (patch)
tree76ffc77ee3c3548adca2711a1ad2ba2d0595ae70 /addon/doxywizard/inputbool.cpp
parentb35a84b39214af8340a75ea086df299a2c3343e3 (diff)
downloadDoxygen-752d21c112291e2a2e3bfa82a915b3c091965bfb.zip
Doxygen-752d21c112291e2a2e3bfa82a915b3c091965bfb.tar.gz
Doxygen-752d21c112291e2a2e3bfa82a915b3c091965bfb.tar.bz2
Release-1.5.7.1-20081206
Diffstat (limited to 'addon/doxywizard/inputbool.cpp')
-rw-r--r--addon/doxywizard/inputbool.cpp111
1 files changed, 81 insertions, 30 deletions
diff --git a/addon/doxywizard/inputbool.cpp b/addon/doxywizard/inputbool.cpp
index fef7b9d..8dbedb1 100644
--- a/addon/doxywizard/inputbool.cpp
+++ b/addon/doxywizard/inputbool.cpp
@@ -2,7 +2,7 @@
*
*
*
- * Copyright (C) 1997-2008 by Dimitri van Heesch.
+ * Copyright (C) 1997-2007 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -13,47 +13,98 @@
*/
#include "inputbool.h"
-//#if QT_VERSION >= 300
-//#include <qstylefactory.h>
-//#else
-//#include <qwindowsstyle.h>
-//#endif
-#include <qlayout.h>
+#include "helplabel.h"
+#include <QtGui>
-InputBool::InputBool( const QString & text, QWidget * parent, bool &flag )
- : QWidget(parent), state(flag)
+InputBool::InputBool( QGridLayout *layout, int &row,
+ const QString &id, bool checked,
+ const QString &docs )
+ : m_default(checked), m_docs(docs), m_id(id)
{
- QBoxLayout *layout = new QHBoxLayout(this);
- cb = new QCheckBox(text,this);
- layout->addWidget(cb);
- layout->addStretch(10);
-
-//#if QT_VERSION >= 300
-// QStyle *winStyle = QStyleFactory::create("windows");
-//#else
-// QWindowsStyle *winStyle = new QWindowsStyle();
-//#endif
- cb->setChecked( flag );
-// if (winStyle) cb->setStyle( winStyle );
- cb->setMinimumSize( sizeHint() );
+ m_lab = new HelpLabel(id);
+ m_cb = new QCheckBox;
+ layout->addWidget(m_lab,row, 0);
+ layout->addWidget(m_cb,row, 1);
+ m_enabled = true;
+ m_state=!checked; // force update
+ setValue(checked);
+ connect( m_cb, SIGNAL(toggled(bool)), SLOT(setValue(bool)) );
+ connect( m_lab, SIGNAL(enter()), SLOT(help()) );
+ connect( m_lab, SIGNAL(reset()), SLOT(reset()) );
+ row++;
+}
- connect( cb, SIGNAL(toggled(bool)), SLOT(setState(bool)) );
+void InputBool::help()
+{
+ showHelp(this);
+}
- layout->activate();
+void InputBool::setEnabled(bool b)
+{
+ m_enabled = b;
+ m_cb->setEnabled(b);
+ updateDependencies();
}
-void InputBool::init()
+void InputBool::updateDependencies()
{
- cb->setChecked(state);
+ for (int i=0;i<m_dependencies.count();i++)
+ {
+ m_dependencies[i]->setEnabled(m_enabled && m_state);
+ }
}
-void InputBool::setState( bool s )
+void InputBool::setValue( bool s )
{
- if (state!=s)
+ if (m_state!=s)
{
+ m_state=s;
+ updateDefault();
+ updateDependencies();
+ m_cb->setChecked( s );
+ m_value = m_state;
emit changed();
- emit toggle(cb->text(),s);
}
- state=s;
+}
+
+void InputBool::updateDefault()
+{
+ if (m_state==m_default)
+ {
+ m_lab->setText(QString::fromAscii("<qt>")+m_id+QString::fromAscii("</qt"));
+ }
+ else
+ {
+ m_lab->setText(QString::fromAscii("<qt><font color='red'>")+m_id+QString::fromAscii("</font></qt>"));
+ }
+}
+
+QVariant &InputBool::value()
+{
+ return m_value;
+}
+
+void InputBool::update()
+{
+ QString v = m_value.toString().toLower();
+ m_state = (v==QString::fromAscii("yes") ||
+ v==QString::fromAscii("true") ||
+ v==QString::fromAscii("1"));
+ m_cb->setChecked( m_state );
+ updateDefault();
+ updateDependencies();
+}
+
+void InputBool::reset()
+{
+ setValue(m_default);
+}
+
+void InputBool::writeValue(QTextStream &t,QTextCodec *codec)
+{
+ if (m_state)
+ t << codec->fromUnicode(QString::fromAscii("YES"));
+ else
+ t << codec->fromUnicode(QString::fromAscii("NO"));
}