From 46a9e14b56700d4c0b4737653d63b59b1e6f9d2a Mon Sep 17 00:00:00 2001 From: Marc Sturm Date: Mon, 11 Dec 2023 10:59:20 +0100 Subject: [PATCH] GSvar: improved logging to find out why IGV is sometimes cleared --- src/GSvar/IGVSession.cpp | 27 +++++++++++++++++---------- src/GSvar/MainWindow.cpp | 19 ++++++++++++++++++- src/GSvar/MainWindow.h | 5 +++++ src/GSvar/MainWindow.ui | 13 +++++++++++++ src/cppCORE | 2 +- 5 files changed, 54 insertions(+), 12 deletions(-) diff --git a/src/GSvar/IGVSession.cpp b/src/GSvar/IGVSession.cpp index ce5674129..54d3ff4f7 100644 --- a/src/GSvar/IGVSession.cpp +++ b/src/GSvar/IGVSession.cpp @@ -143,17 +143,24 @@ bool IGVSession::isIgvRunning() QList commands; commands << IgvWorkerCommand{-1, "echo running"}; - //start command - IGVCommandWorker* command_worker = new IGVCommandWorker(igv_data_, commands, 2000); - command_worker->setAutoDelete(false); - execution_pool_.start(command_worker); - - //get answer - execution_pool_.waitForDone(); - QString answer = command_worker->answer(); - command_worker->deleteLater(); + //try up to four times + for (int i=0; i<4; ++i) + { + //start command + IGVCommandWorker* command_worker = new IGVCommandWorker(igv_data_, commands, 500); + command_worker->setAutoDelete(false); + execution_pool_.start(command_worker); + + //get answer + execution_pool_.waitForDone(); + QString answer = command_worker->answer(); + command_worker->deleteLater(); + + if (answer=="running") return true; + else Log::info("No answer for 'echo running' from IGV (try " + QString::number(i+1) + " of 4)"); + } - return answer=="running"; + return false; } bool IGVSession::hasRunningCommands() diff --git a/src/GSvar/MainWindow.cpp b/src/GSvar/MainWindow.cpp index e68d8c201..81d4ddb85 100644 --- a/src/GSvar/MainWindow.cpp +++ b/src/GSvar/MainWindow.cpp @@ -1821,7 +1821,7 @@ void MainWindow::on_actionDeleteIgvFolder_triggered() return; } - int res = QMessageBox::question(this, "Delete IGV folder", "Do you want to delete the IGV folder?\nLocation: "+path_canonical+"\n\nYou will use all settings (proxy, alignment options, ...)!"); + int res = QMessageBox::question(this, title, "Do you want to delete the IGV folder?\nLocation: "+path_canonical+"\n\nYou will use all settings (proxy, alignment options, ...)!"); if (res==QMessageBox::Yes) { QDir(path_canonical).removeRecursively(); @@ -7046,6 +7046,23 @@ void MainWindow::on_actionBurdenTest_triggered() addModelessDialog(dlg); } +void MainWindow::on_actionOpenLogFile_triggered() +{ + QDesktopServices::openUrl("file:///"+ Log::fileName()); +} + +void MainWindow::on_actionClearLogFile_triggered() +{ + QString title = "Delete GSvar log file"; + QString filename = Log::fileName(); + + int res = QMessageBox::question(this, title, "Do you want to delete the GSvar log file?\nLocation: "+filename); + if (res==QMessageBox::Yes) + { + QFile::remove(filename); + } + } + void MainWindow::editVariantClassification(VariantList& variants, int index, bool is_somatic) { diff --git a/src/GSvar/MainWindow.h b/src/GSvar/MainWindow.h index d7e9e454a..b6182833c 100644 --- a/src/GSvar/MainWindow.h +++ b/src/GSvar/MainWindow.h @@ -294,6 +294,11 @@ public slots: void on_actionVirusDetection_triggered(); ///Perform Burden test void on_actionBurdenTest_triggered(); + ///Shows the GSvar log file + void on_actionOpenLogFile_triggered(); + ///Clears the log file + void on_actionClearLogFile_triggered(); + ///Load report configuration void loadReportConfig(); ///Store report configuration diff --git a/src/GSvar/MainWindow.ui b/src/GSvar/MainWindow.ui index 64c99b971..2e3a3b230 100644 --- a/src/GSvar/MainWindow.ui +++ b/src/GSvar/MainWindow.ui @@ -389,6 +389,9 @@ + + + @@ -1454,6 +1457,16 @@ Delete IGV folder + + + Open log file + + + + + Clear log file + + diff --git a/src/cppCORE b/src/cppCORE index 4dc65aca2..1501467b1 160000 --- a/src/cppCORE +++ b/src/cppCORE @@ -1 +1 @@ -Subproject commit 4dc65aca2b425b5bdd0a6ec3ef270b63689d1511 +Subproject commit 1501467b161b08fb2678ffc9e80ff97f8562b508