#include "support/lstrings.h"
#include <QLineEdit>
+#include <QLocale>
#include <QWidget>
-using std::string;
-
+using namespace std;
namespace lyx {
namespace frontend {
QValidator::State LengthValidator::validate(QString & qtext, int &) const
{
- string const text = fromqstr(qtext);
- if (text.empty() || support::isStrDbl(text))
+ bool ok;
+ qtext.trimmed().toDouble(&ok);
+ if (qtext.isEmpty() || ok)
return QValidator::Acceptable;
+ string const text = fromqstr(qtext);
+
if (glue_length_) {
GlueLength gl;
return (isValidGlueLength(text, &gl)) ?
}
-LengthAutoValidator::LengthAutoValidator(QWidget * parent)
- : LengthValidator(parent)
+LengthValidator * unsignedGlueLengthValidator(QLineEdit * ed)
+{
+ LengthValidator * v = new LengthValidator(ed);
+ v->setBottom(GlueLength());
+ return v;
+}
+
+
+LengthAutoValidator::LengthAutoValidator(QWidget * parent, QString const & autotext)
+ : LengthValidator(parent),
+ autotext_(autotext)
{}
QValidator::State LengthAutoValidator::validate(QString & qtext, int & dummy) const
{
- string const text = fromqstr(qtext);
- if (text == "auto")
+ if (qtext == autotext_)
return QValidator::Acceptable;
return LengthValidator::validate(qtext, dummy);
}
-LengthAutoValidator * unsignedLengthAutoValidator(QLineEdit * ed)
+LengthAutoValidator * unsignedLengthAutoValidator(QLineEdit * ed, QString const & autotext)
{
- LengthAutoValidator * v = new LengthAutoValidator(ed);
+ LengthAutoValidator * v = new LengthAutoValidator(ed, autotext);
v->setBottom(Length());
return v;
}
-DoubleAutoValidator::DoubleAutoValidator(QWidget * parent)
- : QDoubleValidator(parent)
+DoubleAutoValidator::DoubleAutoValidator(QWidget * parent, QString const & autotext)
+ : QDoubleValidator(parent),
+ autotext_(autotext)
{}
QValidator::State DoubleAutoValidator::validate(QString & input, int & pos) const {
- if (input == "auto")
+ if (input == autotext_)
return QValidator::Acceptable;
return QDoubleValidator::validate(input, pos);
}
+NoNewLineValidator::NoNewLineValidator(QWidget * parent)
+ : QValidator(parent)
+{}
+
+
+QValidator::State NoNewLineValidator::validate(QString & qtext, int &) const
+{
+ qtext.remove(QRegExp("[\\n\\r]"));
+ return QValidator::Acceptable;
+}
+
+
PathValidator::PathValidator(bool acceptable_if_empty,
QWidget * parent)
: QValidator(parent),
} // namespace frontend
} // namespace lyx
-#include "Validator_moc.cpp"
+#include "moc_Validator.cpp"