diff options
| author | 2025-12-22 21:45:47 +0100 | |
|---|---|---|
| committer | 2025-12-22 21:46:59 +0100 | |
| commit | 241ab15be837b681f3cdfc555ec2e8d2638f759f (patch) | |
| tree | 3399a11acb3f50b4ed05a551551c2c6feeb4b4e5 /src/libparser/node/repeaternode.cpp | |
| parent | 84c82d205fea95c5cdea1a3ba084f9fa74417649 (diff) | |
| download | OneRoll-241ab15be837b681f3cdfc555ec2e8d2638f759f.tar.gz OneRoll-241ab15be837b681f3cdfc555ec2e8d2638f759f.zip | |
[various fixes]Cli improvement of managing color.
Diffstat (limited to 'src/libparser/node/repeaternode.cpp')
| -rw-r--r-- | src/libparser/node/repeaternode.cpp | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/src/libparser/node/repeaternode.cpp b/src/libparser/node/repeaternode.cpp index 320e0d4..11a0728 100644 --- a/src/libparser/node/repeaternode.cpp +++ b/src/libparser/node/repeaternode.cpp @@ -76,13 +76,13 @@ void RepeaterNode::run(ExecutionNode* previousNode) if(!times) return; - std::vector<InstructionSet> m_startingNodes; + std::vector<InstructionSet> startingNodes; auto timeCount= times->getResult(Dice::RESULT_TYPE::SCALAR).toInt(); auto cmd= makeCopy(m_cmd); std::vector<Result*> resultVec; for(int i= 0; i < timeCount; ++i) { - m_startingNodes.push_back(cmd); + startingNodes.push_back(cmd); std::for_each(cmd.begin(), cmd.end(), [this, &resultVec](ExecutionNode* node) { @@ -111,7 +111,7 @@ void RepeaterNode::run(ExecutionNode* previousNode) auto string= new StringResult(); QStringList listOfStrResult; - for(auto instructions : m_startingNodes) + for(const auto& instructions : startingNodes) { ParsingToolBox parsingBox; parsingBox.setStartNodes(instructions); @@ -127,13 +127,12 @@ void RepeaterNode::run(ExecutionNode* previousNode) // qDebug().noquote() << listOfStrResult.join('\n'); } - /*if(nullptr != m_nextNode) - m_nextNode->run(this);*/ + m_startingNodes= startingNodes; } QString RepeaterNode::toString(bool withLabel) const { - return withLabel ? QStringLiteral("") : QStringLiteral(""); + return withLabel ? QStringLiteral("%1 [label=\"RepeaterNode\"]").arg(m_id) : m_id; } qint64 RepeaterNode::getPriority() const @@ -160,3 +159,22 @@ void RepeaterNode::setSumAll(bool b) { m_sumAll= b; } + +void RepeaterNode::generateDotTree(QString& s) +{ + s.append(toString(true)); + s.append(";\n"); + + for(auto const& commands : m_startingNodes) + { + ExecutionNode* previous= this; + for(auto const& cmd : commands) + { + s.append(previous->toString(false)); + s.append(" -> "); + s.append(cmd->toString(false)); + cmd->generateDotTree(s); + previous= cmd; + } + } +} |