diff options
| author | 2016-11-28 00:36:15 +0100 | |
|---|---|---|
| committer | 2016-11-28 00:36:15 +0100 | |
| commit | 13e297604b00615d47352538e3c82ea1ac700d4c (patch) | |
| tree | 567efe03594d261831897f03a7821c4c6eeac59b /compositevalidator.cpp | |
| parent | cdd1716bd1aa8d9bbd0137aa98ff24867b6b3a0e (diff) | |
| download | OneRoll-13e297604b00615d47352538e3c82ea1ac700d4c.tar.gz OneRoll-13e297604b00615d47352538e3c82ea1ac700d4c.zip | |
-Add API for copying a branch of execution node.
-Allow to use if node several times.
Diffstat (limited to 'compositevalidator.cpp')
| -rw-r--r-- | compositevalidator.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/compositevalidator.cpp b/compositevalidator.cpp index 2de9dba..fce4260 100644 --- a/compositevalidator.cpp +++ b/compositevalidator.cpp @@ -26,6 +26,15 @@ CompositeValidator::CompositeValidator() : m_operators(NULL),m_validatorList(NULL) { } + +CompositeValidator::~CompositeValidator() +{ + qDeleteAll(*m_validatorList); + if(NULL!=m_operators) + { + delete m_operators; + } +} qint64 CompositeValidator::hasValid(Die* b,bool recursive,bool unhighlight) const { @@ -87,7 +96,7 @@ quint64 CompositeValidator::getValidRangeSize(quint64 faces) const { quint64 sum =0; int i = -1; - foreach(Validator* tmp,*m_validatorList) + for(Validator* tmp :*m_validatorList) { quint64 rel = tmp->getValidRangeSize(faces); LogicOperation opt; @@ -117,3 +126,19 @@ void CompositeValidator::setValidatorList(QList<Validator*>* m) { m_validatorList = m; } +Validator* CompositeValidator::getCopy() const +{ + QVector<LogicOperation>* vector = new QVector<LogicOperation>(); + *vector = *m_operators; + + QList<Validator*>* list= new QList<Validator*>(); + for(auto val : *m_validatorList) + { + list->append(val->getCopy()); + } + + CompositeValidator* val = new CompositeValidator(); + val->setOperationList(vector); + val->setValidatorList(list); + return val; +} |