diff options
| author | 2020-08-01 19:41:53 +0200 | |
|---|---|---|
| committer | 2020-08-01 20:29:20 +0200 | |
| commit | bc9ba4f09e94a40595e4ddb3f0ae76a0175e682e (patch) | |
| tree | 53bb398e278bb23a6fcb0060623f86c792bdba20 | |
| parent | c35ae0246f09432d4ab54d6216fcab2167318967 (diff) | |
| download | OneRoll-bc9ba4f09e94a40595e4ddb3f0ae76a0175e682e.tar.gz OneRoll-bc9ba4f09e94a40595e4ddb3f0ae76a0175e682e.zip | |
Add left aside in group complex output.
| -rw-r--r-- | node/groupnode.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/node/groupnode.cpp b/node/groupnode.cpp index 0ad5cfe..860d758 100644 --- a/node/groupnode.cpp +++ b/node/groupnode.cpp @@ -87,7 +87,16 @@ void GroupNode::run(ExecutionNode* previous) std::sort(allResult.begin(), allResult.end(), std::greater<qint64>()); if(allResult.getSum() > m_groupValue) { + auto copy= allResult; auto const die= getGroup(allResult); + + for(auto list : die) + { + for(auto val : list) + { + copy.removeOne(val); + } + } m_scalarResult->setValue(die.size()); QStringList list; for(auto group : die) @@ -97,7 +106,14 @@ void GroupNode::run(ExecutionNode* previous) [](qint64 val) { return QString::number(val); }); list << QStringLiteral("{%1}").arg(values.join(",")); } - m_stringResult->addText(QStringLiteral("%1 (%2)").arg(die.size()).arg(list.join(","))); + QStringList unused; + std::transform(copy.begin(), copy.end(), std::back_inserter(unused), + [](qint64 val) { return QString::number(val); }); + if(!unused.isEmpty()) + m_stringResult->addText( + QStringLiteral("%1 (%2 - [%3])").arg(die.size()).arg(list.join(",")).arg(unused.join(","))); + else + m_stringResult->addText(QStringLiteral("%1 (%2)").arg(die.size()).arg(list.join(","))); } else { |