- if (manualAssistant) {
- manualAssistant->openAssistant();
- } else {
- QMessageBox::warning(this,
- tr("Mussa Help Error"),
- tr("QtAssistant not setup correctly"),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton);
+
+ // Only define the process once.
+ if (!assistantProcess)
+ assistantProcess = new QProcess(this);
+
+ // No need to fire up the process again if it is already running.
+ if (assistantProcess->state() == QProcess::Running)
+ return;
+
+ QString app = QLibraryInfo::location(QLibraryInfo::BinariesPath)
+ + QLatin1String("/assistant");
+
+ assistantProcess->start(app, QStringList() << QLatin1String("-enableRemoteControl")
+ << QLatin1String("-collectionFile") << QLatin1String("mussagl_manual.qhc"));
+ if (!assistantProcess->waitForStarted()) {
+ QMessageBox::critical(this, tr("Remote Control"),
+ tr("Could not start Qt Assistant from %1.").arg(app));
+ return;