summaryrefslogtreecommitdiffstats
path: root/addon/doxywizard/inputint.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'addon/doxywizard/inputint.cpp')
-rw-r--r--addon/doxywizard/inputint.cpp47
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;
+}