#include "numberoutorder.h" NumberOutOrder::NumberOutOrder(NumberListModel *oldModel) { this->stop =false; this->oldModel = oldModel; } NumberOutOrder::~NumberOutOrder() { qDebug()<stop = true; } void NumberOutOrder::run() { newModel = new NumberListModel(); QTime t = QTime::currentTime(); qsrand(t.msec()+t.second()*1000); QList orderIndex = oldModel->getOrderIndex(); emit progressMaxUpdated(oldModel->getCount()); for(int i=0;igetCount();i++) { if(stop) break; if(i%1000000==0 ||i==oldModel->getCount()-1 ) { emit progressUpdated(i+1); } int n = qrand()%(oldModel->getCount()-1); int tmp = orderIndex.at(i); orderIndex[i] = orderIndex[n]; orderIndex[n] = tmp; } newModel->setNumberList(oldModel->getSegments(),oldModel->getNumbers()); newModel->setOrderIndex(orderIndex); emit numberProcessed(newModel); }