diff --git a/ChangeLog b/ChangeLog index db796135..3efe956d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17880,3 +17880,5 @@ 2018-10-22 Fred Gleason * Fixed a ''qt_sql_default_connection' is still in use' runtime warning emitted by the 'RDDbValid()' function. +2018-10-22 Fred Gleason + * Modified rdmonitor(1) to use QProcess to spawn rdselect(1). diff --git a/rdmonitor/rdmonitor.cpp b/rdmonitor/rdmonitor.cpp index 1fad0ab1..e2e8ebb9 100644 --- a/rdmonitor/rdmonitor.cpp +++ b/rdmonitor/rdmonitor.cpp @@ -23,29 +23,24 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include -#include +#include +#include +#include +#include #include +#include +#include #include #include -#include #include -#include -#include -#include +#include #include +#include +#include -#include +#include "rdmonitor.h" // // Icons @@ -217,8 +212,28 @@ void MainWidget::mouseDoubleClickEvent(QMouseEvent *e) dir.setFilter(QDir::Files|QDir::Readable); dir.setNameFilter("*.conf"); if(dir.entryList().size()>1) { - system(QString().sprintf("rdselect -geometry +%d+%d", - mon_rdselect_x,mon_rdselect_y)); + QProcess *proc=new QProcess(this); + QStringList args; + args.push_back("-geometry"); + args.push_back(QString().sprintf("+%d+%d",mon_rdselect_x,mon_rdselect_y)); + proc->start("rdselect",args); + proc->waitForFinished(-1); + if(proc->exitStatus()!=QProcess::NormalExit) { + QMessageBox::critical(this,"RDMonitor - "+tr("Error"), + tr("RDSelect crashed!")); + delete proc; + return; + } + if(proc->exitCode()!=0) { + QMessageBox::critical(this,"RDMonitor - "+tr("Error"), + tr("RDSelect returned non-zero exit code")+ + QString().sprintf(" %d.",proc->exitCode())+ + "\n\nERROR MESSAGE:\n"+ + proc->readAllStandardError()); + delete proc; + return; + } + delete proc; validate(); } } diff --git a/rdmonitor/rdmonitor_cs.ts b/rdmonitor/rdmonitor_cs.ts index 481d9429..19eb875e 100644 --- a/rdmonitor/rdmonitor_cs.ts +++ b/rdmonitor/rdmonitor_cs.ts @@ -1,6 +1,21 @@ + + MainWidget + + Error + + + + RDSelect crashed! + + + + RDSelect returned non-zero exit code + + + QObject diff --git a/rdmonitor/rdmonitor_de.ts b/rdmonitor/rdmonitor_de.ts index 3347096e..886f9444 100644 --- a/rdmonitor/rdmonitor_de.ts +++ b/rdmonitor/rdmonitor_de.ts @@ -1,6 +1,21 @@ + + MainWidget + + Error + + + + RDSelect crashed! + + + + RDSelect returned non-zero exit code + + + QObject diff --git a/rdmonitor/rdmonitor_es.ts b/rdmonitor/rdmonitor_es.ts index 3347096e..886f9444 100644 --- a/rdmonitor/rdmonitor_es.ts +++ b/rdmonitor/rdmonitor_es.ts @@ -1,6 +1,21 @@ + + MainWidget + + Error + + + + RDSelect crashed! + + + + RDSelect returned non-zero exit code + + + QObject diff --git a/rdmonitor/rdmonitor_fr.ts b/rdmonitor/rdmonitor_fr.ts index 3347096e..886f9444 100644 --- a/rdmonitor/rdmonitor_fr.ts +++ b/rdmonitor/rdmonitor_fr.ts @@ -1,6 +1,21 @@ + + MainWidget + + Error + + + + RDSelect crashed! + + + + RDSelect returned non-zero exit code + + + QObject diff --git a/rdmonitor/rdmonitor_nb.ts b/rdmonitor/rdmonitor_nb.ts index 3347096e..886f9444 100644 --- a/rdmonitor/rdmonitor_nb.ts +++ b/rdmonitor/rdmonitor_nb.ts @@ -1,6 +1,21 @@ + + MainWidget + + Error + + + + RDSelect crashed! + + + + RDSelect returned non-zero exit code + + + QObject diff --git a/rdmonitor/rdmonitor_nn.ts b/rdmonitor/rdmonitor_nn.ts index 3347096e..886f9444 100644 --- a/rdmonitor/rdmonitor_nn.ts +++ b/rdmonitor/rdmonitor_nn.ts @@ -1,6 +1,21 @@ + + MainWidget + + Error + + + + RDSelect crashed! + + + + RDSelect returned non-zero exit code + + + QObject diff --git a/rdmonitor/rdmonitor_pt_BR.ts b/rdmonitor/rdmonitor_pt_BR.ts index 3347096e..886f9444 100644 --- a/rdmonitor/rdmonitor_pt_BR.ts +++ b/rdmonitor/rdmonitor_pt_BR.ts @@ -1,6 +1,21 @@ + + MainWidget + + Error + + + + RDSelect crashed! + + + + RDSelect returned non-zero exit code + + + QObject