X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FValidator.cpp;h=e156dcb099dedbe83a86326438d197cae0c494b3;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=ccc23d3ba96047e58cb9d237aa29c99e7f7eb19c;hpb=d93679c1db2692a85637f2db08b605e16ab29c8b;p=lyx.git diff --git a/src/frontends/qt4/Validator.cpp b/src/frontends/qt4/Validator.cpp index ccc23d3ba9..e156dcb099 100644 --- a/src/frontends/qt4/Validator.cpp +++ b/src/frontends/qt4/Validator.cpp @@ -15,7 +15,7 @@ #include "Validator.h" #include "qt_helpers.h" -#include "gettext.h" +#include "support/gettext.h" #include "LyXRC.h" #include "frontends/alert.h" @@ -24,10 +24,10 @@ #include "support/lstrings.h" #include +#include #include -using std::string; - +using namespace std; namespace lyx { namespace frontend { @@ -40,10 +40,13 @@ LengthValidator::LengthValidator(QWidget * parent) 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)) ? @@ -86,30 +89,39 @@ LengthValidator * unsignedLengthValidator(QLineEdit * ed) } -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) {} @@ -120,7 +132,7 @@ DoubleAutoValidator::DoubleAutoValidator(double bottom, QValidator::State DoubleAutoValidator::validate(QString & input, int & pos) const { - if (input == "auto") + if (input == autotext_) return QValidator::Acceptable; return QDoubleValidator::validate(input, pos); } @@ -205,4 +217,4 @@ PathValidator * getPathValidator(QLineEdit * ed) } // namespace frontend } // namespace lyx -#include "Validator_moc.cpp" +#include "moc_Validator.cpp"