#include "sortresult.h" #include #include "die.h" SortResultNode::SortResultNode() : m_diceResult(new DiceResult) { m_ascending = true; m_result = m_diceResult; } void SortResultNode::run(ExecutionNode* node) { // qDebug() << "SortResultNode node"; if(NULL==node) { return; } DiceResult* previousDiceResult = static_cast(node->getResult()); m_diceResult->setPrevious(previousDiceResult); if(NULL!=previousDiceResult) { QList diceList=previousDiceResult->getResultList(); QList diceList2=m_diceResult->getResultList(); // Dichotomic sorting for(int i = 0; igetValue() < tmp2->getValue()) { end=j; } else { start=j+1; } } } //qDebug() << tmp1->getValue() << j << found; //if(found) diceList2.insert(j,tmp1); /*else diceList2.append(tmp1);*/ } if(!m_ascending) { for(int i = 0; i< diceList2.size()/2; ++i) { diceList2.swap(i,diceList2.size()-(1+i)); } } m_diceResult->setResultList(diceList2); if(NULL!=m_nextNode) { m_nextNode->run(this); } } } void SortResultNode::setSortAscending(bool asc) { m_ascending = asc; } QString SortResultNode::toString() const { return "SortResultNode"; }