#include <QFileDialog>
#include <QHBoxLayout>
#include <QIcon>
+#include <QLibraryInfo>
#include <QMenuBar>
#include <QMessageBox>
+#include <QProcess>
#include <QScrollBar>
#include <QStatusBar>
#include <QString>
#include <QStringList>
+#include <QTextStream>
#include <QUrl>
#include <QWhatsThis>
saveBrowserPixmapAction(0),
whatsThisAction(0),
viewMussaAlignmentAction(0),
- manualAssistant(0)
+ assistantProcess(0)
{
init_resources();
void MussaWindow::setupAssistant()
{
#if defined(QT_QTASSISTANT_FOUND)
+ /*
QStringList manualAssistantArgs;
manualAssistantArgs = QStringList();
manualAssistantArgs << "-profile" << "./doc/manual/mussagl_manual.adp";
manualAssistant->setArguments(manualAssistantArgs);
connect(manualAssistant, SIGNAL(error(QString)),
this, SLOT(assistantError(QString)));
+ */
#endif
}
void MussaWindow::showManual()
{
#if defined(QT_QTASSISTANT_FOUND)
- 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;
}
+
+ // show index page
+ QTextStream str(assistantProcess);
+ str << QLatin1String("SetSource qthelp://edu.caltech.woldlab.mussagl.1_0_0/doc/mussagl_manual.html")
+ << QLatin1Char('\0') << endl;
+
#else
QUrl manual_url("http://woldlab.caltech.edu/~king/mussagl_manual/");
if (not QDesktopServices::openUrl(manual_url)) {
QMessageBox::Ok,
QMessageBox::NoButton,
QMessageBox::NoButton);
- }
#endif //QT_QTASSISTANT_FOUND
}
#include <QProgressDialog>
#include <QSpinBox>
#include <QToolBar>
+#include <QProcess>
#include "qui/MussaAlignedWindow.hpp"
#include "qui/motif_editor/MotifEditor.hpp"
QAction *whatsThisAction;
QAction *viewMussaAlignmentAction;
- QAssistantClient *manualAssistant;
+ //QAssistantClient *manualAssistant;
+ QProcess *assistantProcess;
//! initialze the actions
void setupActions();