diff --git a/client/mainwindow.cpp b/client/mainwindow.cpp index 1afc8d8..a3a9aa7 100644 --- a/client/mainwindow.cpp +++ b/client/mainwindow.cpp @@ -345,6 +345,11 @@ void MainWindow::onLocalServerError(QProcess::ProcessError error) "error 0x%1, exit code 0x%2.
") .arg(error, 0, 16) .arg(localServer_->exitCode(), 0, 16); + if (error == QProcess::FailedToStart) + errorStr.append(tr("The drone program does not exist at %1 or you " + "don't have sufficient permissions to execute it." + "
") + .arg(QCoreApplication::applicationDirPath())); #ifdef Q_OS_WIN32 if (localServer_->exitCode() == STATUS_DLL_NOT_FOUND) errorStr.append(tr("This is most likely because Packet.dll " @@ -353,14 +358,17 @@ void MainWindow::onLocalServerError(QProcess::ProcessError error) "installed.
")); #endif msgBox.setText(errorStr); - msgBox.setInformativeText(tr("Run drone directly for more information.")); + msgBox.setInformativeText(tr("Try running drone directly.")); msgBox.exec(); + QString archUrl("https://userguide.ostinato.org/Architecture.html"); QMessageBox::information(this, QString(), tr("If you have remote drone agents running, you can still add " "and connect to them.
" "If you don't want to start the local drone agent at startup, " - "provide the -s option to Ostinato on the command line
")); + "provide the -s option to Ostinato on the command line." + "Learn about Ostinato's Controller-Agent " + "architecture
").arg(archUrl)); } void MainWindow::onNewVersion(QString newVersion)