void RemoteBlastHttpRequestTask::updateProgress() { if(stateInfo.progress >= 99) { return; } int timeoutInSecs = timer.interval() / 1000; int elapsedTime = GTimer::secsBetween(timeInfo.startTime, GTimer::currentTimeMicros()); int taskProgress = elapsedTime * 99 / timeoutInSecs; stateInfo.progress = qMin(taskProgress, 99); emit si_progressChanged(); }
QList<Task*> Kalign_Load_Align_Compare_Task::onSubTaskFinished(Task* subTask) { Q_UNUSED(subTask); QList<Task*> res; if (hasError() || isCanceled()) { return res; } if (subTask == loadTask1) { Document *doc = loadTask1->getDocument(); if(loadTask1->hasError()) { return res; } assert(doc!=NULL); QList<GObject*> list = doc->findGObjectByType(GObjectTypes::SEQUENCE); if (list.size() == 0) { stateInfo.setError( QString("container of object with type \"%1\" is empty").arg(GObjectTypes::SEQUENCE) ); return res; } MAlignment malign = dna_to_ma(list); if(hasError()) { return res; } ma1 = MAlignmentImporter::createAlignment(doc->getDbiRef(), malign, stateInfo); CHECK_OP(stateInfo, res); if(ma1 == NULL){ stateInfo.setError( QString("can't convert dna sequences to MAlignment") ); return res; } res << kalignTask; this->connect(kalignTask,SIGNAL(si_progressChanged()),SLOT(sl_kalignProgressChg())); } else if (subTask == kalignTask) { if(kalignTask->hasError()) { setError( kalignTask->getError() ); return res; } KalignTask * localKalign = qobject_cast<KalignTask*>( subTask ); assert( NULL != localKalign ); ma1->copyGapModel(localKalign->resultMA.getRows()); } else if (subTask == loadTask2) { if (loadTask2->hasError()) { return res; } Document *doc = loadTask2->getDocument(); if(loadTask2->hasError()) { return res; } assert(doc!=NULL); QList<GObject*> list = doc->findGObjectByType(GObjectTypes::SEQUENCE); if (list.size() == 0) { stateInfo.setError( QString("container of object with type \"%1\" is empty").arg(GObjectTypes::SEQUENCE) ); return res; } MAlignment malign = dna_to_ma(list); if(hasError()) { return res; } ma2 = MAlignmentImporter::createAlignment(doc->getDbiRef(), malign, stateInfo); CHECK_OP(stateInfo, res); if(ma2 == NULL){ stateInfo.setError( QString("can't convert dna sequences to MAlignment") ); return res; } } return res; }