Skip to content
Snippets Groups Projects
Commit acfbac05 authored by Langella Olivier's avatar Langella Olivier
Browse files

new feature to stop X\!Tandem run process

parent dd4e2ddf
No related branches found
No related tags found
No related merge requests found
......@@ -41,6 +41,10 @@ TandemBatchProcess::TandemBatchProcess(WorkMonitorInterface * p_monitor, const T
TandemBatchProcess::~TandemBatchProcess() {
}
bool TandemBatchProcess::shouldIstop() {
return false;
}
void TandemBatchProcess::writeXmlDatabaseFile (QXmlStreamWriter * p_out) {
p_out->setAutoFormatting(true);
p_out->writeStartDocument("1.0");
......@@ -94,6 +98,9 @@ void TandemBatchProcess::run() {
int i=0;
_p_monitor->setProgressMaximumValue(_tandem_run_batch._mz_file_list.size());
for (QString mz_file : _tandem_run_batch._mz_file_list) {
if (shouldIstop()) {
throw pappso::PappsoException(QObject::tr("X!Tandem stopped by the user processing %1 sample").arg(mz_file));
}
_p_monitor->message(QObject::tr("running X!Tandem on %1\n").arg(mz_file), i);
runOne(mz_file);
i++;
......@@ -209,6 +216,11 @@ void TandemBatchProcess::runOne(const QString & mz_file) {
while(xt_process->waitForReadyRead(_max_xt_time_ms)) {
_p_monitor->appendText( xt_process->readAll().data());
//data.append(xt_process->readAll());
if (shouldIstop()) {
xt_process->kill();
delete xt_process;
throw pappso::PappsoException(QObject::tr("X!Tandem stopped by the user processing %1 sample").arg(mz_file));
}
}
/*
if (!xt_process->waitForFinished(_max_xt_time_ms)) {
......@@ -219,11 +231,11 @@ void TandemBatchProcess::runOne(const QString & mz_file) {
QProcess::ExitStatus Status = xt_process->exitStatus();
delete xt_process;
if (Status != 0)
{
// != QProcess::NormalExit
throw pappso::PappsoException(QObject::tr("error executing X!Tandem Status != 0 : %1 %2\n%3").arg(_tandem_run_batch._tandem_bin_path).arg(arguments.join(" ").arg(result.data())));
}
delete xt_process;
}
......@@ -47,6 +47,7 @@ protected:
virtual void prepareXmlDatabaseFile();
private:
void runOne(const QString & mz_file);
bool shouldIstop();
protected:
QString _preset_file;
......
......@@ -43,6 +43,7 @@
WorkerThread::WorkerThread(MainWindow * p_main_window)
{
_p_main_window = p_main_window;
qDebug() << "WorkerThread::WorkerThread begin MainWindow";
_p_work_monitor = new WorkMonitor();
......
......@@ -79,6 +79,7 @@ signals:
private:
WorkMonitor * _p_work_monitor;
MainWindow * _p_main_window;
};
#endif // WORKERTHREAD_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment