diff options
| author | 2018-08-27 01:03:08 +0200 | |
|---|---|---|
| committer | 2018-08-27 01:03:08 +0200 | |
| commit | 64e9988ba715e6e196b84e4a69c871c761562bbd (patch) | |
| tree | 4159ff6831ac34c01069604bebf6b99aad99954a /compositevalidator.cpp | |
| parent | 45d618b710483ee1ae42cbdfcaa0406f1132f384 (diff) | |
| download | OneRoll-64e9988ba715e6e196b84e4a69c871c761562bbd.tar.gz OneRoll-64e9988ba715e6e196b84e4a69c871c761562bbd.zip | |
-New API for validating validor.
Prevent endless loop in R operator.
Diffstat (limited to 'compositevalidator.cpp')
| -rw-r--r-- | compositevalidator.cpp | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/compositevalidator.cpp b/compositevalidator.cpp index 56dc136..7e003a4 100644 --- a/compositevalidator.cpp +++ b/compositevalidator.cpp @@ -104,31 +104,18 @@ QString CompositeValidator::toString() return QString("[%1%2]").arg(str).arg(m_value);*/ return str; } -quint64 CompositeValidator::getValidRangeSize(quint64 faces) const +bool CompositeValidator::isValidRangeSize(std::pair<qint64,qint64> range) const { - quint64 sum =0; + bool val = true; int i = -1; for(Validator* tmp :*m_validatorList) { - quint64 rel = tmp->getValidRangeSize(faces); - LogicOperation opt = NONE; - if(i>=0) - { - opt = m_operators->at(i); - } - if(opt == OR) - { - sum += rel; - } - else if((opt == AND)&&(opt == EXCLUSIVE_OR)) - { - sum = qMax(rel,sum); - } - + quint64 rel = tmp->isValidRangeSize(range); + val |= rel; ++i; } - return sum; + return val; } void CompositeValidator::setOperationList(QVector<LogicOperation>* m) { |