aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils/lumina-calculator/EqValidator.h
diff options
context:
space:
mode:
authorWeblate <noreply@weblate.org>2016-12-14 21:52:08 +0000
committerWeblate <noreply@weblate.org>2016-12-14 21:52:08 +0000
commitf274dd0526568b50e113baa85fcb26a87575eed9 (patch)
treecabcdb147e5dbf2cbe4c321c5ad59963c40c3e89 /src-qt5/desktop-utils/lumina-calculator/EqValidator.h
parentTranslated using Weblate (lumina_CONFIG@sl (generated)) (diff)
parentMerge branch 'master' of github.com:trueos/lumina (diff)
downloadlumina-f274dd0526568b50e113baa85fcb26a87575eed9.tar.gz
lumina-f274dd0526568b50e113baa85fcb26a87575eed9.tar.bz2
lumina-f274dd0526568b50e113baa85fcb26a87575eed9.zip
Merge branch 'master' of github.com:trueos/lumina
Diffstat (limited to 'src-qt5/desktop-utils/lumina-calculator/EqValidator.h')
-rw-r--r--src-qt5/desktop-utils/lumina-calculator/EqValidator.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src-qt5/desktop-utils/lumina-calculator/EqValidator.h b/src-qt5/desktop-utils/lumina-calculator/EqValidator.h
new file mode 100644
index 00000000..8bceb240
--- /dev/null
+++ b/src-qt5/desktop-utils/lumina-calculator/EqValidator.h
@@ -0,0 +1,39 @@
+//===========================================
+// Lumina Desktop source code
+// Copyright (c) 2016, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#ifndef _LUMINA_CALCULATOR_VALIDATOR_H
+#define _LUMINA_CALCULATOR_VALIDATOR_H
+
+#define VALIDCHARS QString("x*+-/^%eE().0123456789#acosinthqrlog\u03C0")
+#define NOSTARTCHARS QString("x*/^%)eE.")
+#define NOENDCHARS QString("x*/^(eE.#")
+#define NOCHANGE QString("().#")
+
+#include <QValidator>
+#include <QString>
+#include <QDebug>
+
+class EqValidator : public QValidator{
+ Q_OBJECT
+public:
+ EqValidator(QObject *parent = 0) : QValidator(parent){}
+ ~EqValidator(){}
+
+ virtual void fixup(QString &input) const{
+ if(input.isEmpty()){ return; }
+ if( NOSTARTCHARS.contains(input.left(1)) && !NOCHANGE.contains(input.left(1)) ){ input.prepend("1"); }
+ if( NOENDCHARS.contains(input.right(1)) && !NOCHANGE.contains(input.right(1)) ){ input.append("1"); }
+ }
+
+ virtual QValidator::State validate(QString &input, int&pos) const {
+ //qDebug() << "Got validate:" << input << pos;
+ if(pos>0 && !VALIDCHARS.contains(input[pos-1])){ return QValidator::Invalid; }
+ if(!input.isEmpty() && NOSTARTCHARS.contains(input.left(1))){ return QValidator::Intermediate; }
+ if(!input.isEmpty() && NOENDCHARS.contains(input.right(1))){ return QValidator::Intermediate; }
+ return QValidator::Acceptable;
+ }
+};
+#endif
bgstack15