| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- #include "numberoutorder.h"
- NumberOutOrder::NumberOutOrder(NumberListModel *oldModel)
- {
- this->stop =false;
- this->oldModel = oldModel;
- }
- NumberOutOrder::~NumberOutOrder()
- {
- qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
- <<"NumberOutOrder Destroyed.";
- }
- void NumberOutOrder::abort()
- {
- this->stop = true;
- }
- void NumberOutOrder::run()
- {
- newModel = new NumberListModel();
- QTime t = QTime::currentTime();
- qsrand(t.msec()+t.second()*1000);
- QList<int> orderIndex = oldModel->getOrderIndex();
- emit progressMaxUpdated(oldModel->getCount());
- for(int i=0;i<oldModel->getCount();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);
- }
|