#include "numbermove.h" NumberMove::NumberMove(QStringList sourceSegments, QList sourceNumbers, NumberMoveType moveType) { this->sourceSegments = sourceSegments; this->sourceNumbers = sourceNumbers; this->moveType = moveType; this->stop = false; } NumberMove::~NumberMove() { qDebug()<range1 = range1; this->range2 = range2; } void NumberMove::setRegex(QList regexpList) { this->regexpList = regexpList; } void NumberMove::abort() { this->stop = true; } void NumberMove::run() { switch(moveType) { case MoveByAll: moveByAll(); break; case MoveByRange: moveByRange(); break; case MoveByRegex: moveByRegex(); break; default: break; } } void NumberMove::moveByRange() { QString number; QString segment; destSegments = sourceSegments; destNumbers = sourceNumbers ; for(int i=0;isourceSegments.size();i++) { if(stop) return ; msleep(10); segment = sourceSegments.at(i); for(int j=0;jsourceNumbers.at(i).at(j); if (number>=this->range1 && number<=range2) { QString tail = this->sourceNumbers.at(i).at(j); destNumbers[i]<sourceNumbers[i].removeAt(j); j--; } } } for(int i=0;isourceSegments.size();i++) { if(stop) return ; msleep(10); segment = sourceSegments.at(i); for(int j=0;jsourceNumbers.at(i).at(j); bool allmatch = true ; for(int k=0;kregexpList.size();k++) { //qDebug()<regexpList.at(k); if(regexp.exactMatch(number)) { continue; } else { allmatch = false ; break; } } if (allmatch) { QString tail = this->sourceNumbers.at(i).at(j); destNumbers[i]<sourceNumbers[i].removeAt(j); j--; } } } for(int i=0;i