diff options
Diffstat (limited to 'addon/doxywizard/inputint.cpp')
-rw-r--r-- | addon/doxywizard/inputint.cpp | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/addon/doxywizard/inputint.cpp b/addon/doxywizard/inputint.cpp index 2aa019b..ce3fa02 100644 --- a/addon/doxywizard/inputint.cpp +++ b/addon/doxywizard/inputint.cpp @@ -3,8 +3,8 @@ * Copyright (C) 1997-2019 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 - * granted. No representations are made about the suitability of this software + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * @@ -12,6 +12,7 @@ #include "inputint.h" #include "helplabel.h" +#include "config_msg.h" #include <QSpinBox> #include <QGridLayout> @@ -28,7 +29,7 @@ class NoWheelSpinBox : public QSpinBox }; InputInt::InputInt( QGridLayout *layout,int &row, - const QString & id, + const QString & id, int defVal, int minVal,int maxVal, const QString & docs ) : m_default(defVal), m_minVal(minVal), m_maxVal(maxVal), m_docs(docs), m_id(id) @@ -44,7 +45,7 @@ InputInt::InputInt( QGridLayout *layout,int &row, layout->addWidget( m_lab, row, 0 ); layout->addWidget( m_sp, row, 1 ); - connect(m_sp, SIGNAL(valueChanged(int)), + connect(m_sp, SIGNAL(valueChanged(int)), this, SLOT(setValue(int)) ); connect( m_lab, SIGNAL(enter()), SLOT(help()) ); connect( m_lab, SIGNAL(reset()), SLOT(reset()) ); @@ -59,12 +60,19 @@ void InputInt::help() void InputInt::setValue(int val) { - val = qMax(m_minVal,val); - val = qMin(m_maxVal,val); - if (val!=m_val) + int newVal = val; + newVal = qMax(m_minVal,newVal); + newVal = qMin(m_maxVal,newVal); + if (val != newVal) { - m_val = val; - m_sp->setValue(val); + config_warn("argument '%d' for option %s is not a valid number in the range [%d..%d]!" + " Using the default: %d!\n",val,qPrintable(m_id),m_minVal,m_maxVal,m_default); + newVal = m_default; + } + if (newVal!=m_val) + { + m_val = newVal; + m_sp->setValue(newVal); m_value = m_val; updateDefault(); } @@ -75,13 +83,13 @@ void InputInt::updateDefault() { if (m_val==m_default || !m_lab->isEnabled()) { - m_lab->setText(QString::fromLatin1("<qt>")+m_id+QString::fromLatin1("</qt")); + m_lab->setText(QString::fromLatin1("<qt>")+m_id+QString::fromLatin1("</qt>")); } else { m_lab->setText(QString::fromLatin1("<qt><font color='red'>")+m_id+QString::fromLatin1("</font></qt>")); } - emit changed(); + emit changed(); } } @@ -92,14 +100,22 @@ void InputInt::setEnabled(bool state) updateDefault(); } -QVariant &InputInt::value() +QVariant &InputInt::value() { return m_value; } void InputInt::update() { - setValue(m_value.toInt()); + bool ok; + int newVal = m_value.toInt(&ok); + if (!ok) + { + config_warn("argument '%s' for option %s is not a valid number in the range [%d..%d]!" + " Using the default: %d!\n",qPrintable(m_value.toString()),qPrintable(m_id),m_minVal,m_maxVal,m_default); + newVal = m_default; + } + setValue(newVal); } void InputInt::reset() @@ -112,3 +128,8 @@ void InputInt::writeValue(QTextStream &t,QTextCodec *) t << m_val; } + +bool InputInt::isDefault() +{ + return m_val == m_default; +} |