Mussagl Manual QAssistant Patch
[mussa.git] / qui / MussaWindow.cpp
index 2d34414e390eef3bb052f790bb65d37342e041cd..e76e7a1c2860699c2bbd12b0177034c60c8f0757 100644 (file)
@@ -1,4 +1,5 @@
 #include <QAction>
+#include <QAssistantClient>
 #include <QDir>
 #include <QFileDialog>
 #include <QHBoxLayout>
@@ -8,6 +9,7 @@
 #include <QScrollBar>
 #include <QStatusBar>
 #include <QString>
+#include <QStringList>
 #include <QWhatsThis>
 
 #include "qui/MussaWindow.hpp"
@@ -36,16 +38,20 @@ MussaWindow::MussaWindow(Mussa *analysis_, QWidget *parent) :
   loadMotifListAction(0),
   loadMupaAction(0),
   loadSavedAnalysisAction(0),
+  mussaManualAssistantAction(0),
   newMussaWindowAction(0),
   saveMotifListAction(0),
   showMussaViewToolbarAction(0),
   toggleMotifsAction(0),
   saveBrowserPixmapAction(0),
   whatsThisAction(0),
-  viewMussaAlignmentAction(0)
+  viewMussaAlignmentAction(0),
+  manualAssistant(0)
 {
+
   setupActions();
   setupMainMenu();
+  setupAssistant();
 
   //This next setWhatsThis function prevents
   // a segfault when using WhatsThis feature with 
@@ -92,13 +98,17 @@ MussaWindow::~MussaWindow()
   if (loadMotifListAction != 0) delete loadMotifListAction;
   if (loadMupaAction != 0) delete loadMupaAction;
   if (loadSavedAnalysisAction != 0) delete loadSavedAnalysisAction;
+  if (mussaManualAssistantAction != 0) delete mussaManualAssistantAction;
   if (newMussaWindowAction != 0) delete newMussaWindowAction;
+  if (saveBrowserPixmapAction != 0) delete saveBrowserPixmapAction;
   if (saveMotifListAction != 0) delete saveMotifListAction;
   if (showMussaViewToolbarAction != 0) delete showMussaViewToolbarAction;
   if (toggleMotifsAction != 0) delete toggleMotifsAction;
-  if (saveBrowserPixmapAction != 0) delete saveBrowserPixmapAction;
   if (whatsThisAction != 0) delete whatsThisAction;
   if (viewMussaAlignmentAction != 0) delete viewMussaAlignmentAction;
+  
+  if (manualAssistant != 0) delete manualAssistant;
+  
 }
 
 void MussaWindow::setAnalysis(Mussa *new_analysis)
@@ -155,6 +165,11 @@ void MussaWindow::setupActions()
           this, SLOT(loadSavedAnalysis()));
   loadSavedAnalysisAction->setIcon(QIcon(":/icons/fileopen.png"));
 
+  mussaManualAssistantAction = new QAction(tr("Mussagl Manual..."), this);
+  mussaManualAssistantAction->setIcon(QIcon(":/icons/contents.png"));
+  connect(mussaManualAssistantAction, SIGNAL(triggered()),
+         this, SLOT(showManual()));
+
   newMussaWindowAction = new QAction(tr("&New Mussa Window"), this);
   newMussaWindowAction->setStatusTip("open another mussa window to allow comparing results");
   connect(newMussaWindowAction, SIGNAL(triggered()), 
@@ -197,6 +212,7 @@ void MussaWindow::setupActions()
   whatsThisAction = QWhatsThis::createAction(this);
   whatsThisAction->setIcon(QIcon(":/icons/help.png"));
 
+
 }
 
 void MussaWindow::setupMainMenu()
@@ -225,10 +241,22 @@ void MussaWindow::setupMainMenu()
   newMenu->addAction(showMussaViewToolbarAction);
 
   newMenu = menuBar()->addMenu(tr("&Help"));
+  newMenu->addAction(mussaManualAssistantAction);
   newMenu->addAction(whatsThisAction);
   newMenu->addSeparator();
   newMenu->addAction(aboutAction);
 }
+
+void MussaWindow::setupAssistant()
+{
+  QStringList manualAssistantArgs;
+  manualAssistantArgs = QStringList();
+  manualAssistantArgs << "-profile" << "./doc/manual/mussagl_manual.adp";
+  manualAssistant = new QAssistantClient("assistant", this);
+  manualAssistant->setArguments(manualAssistantArgs);
+  connect(manualAssistant, SIGNAL(error(QString)),
+         this, SLOT(assistantError(QString)));
+}
   
 void MussaWindow::about()
 {
@@ -394,6 +422,16 @@ void MussaWindow::toggleMotifs()
   NotImplementedBox();
 }
 
+void MussaWindow::showManual()
+{
+  manualAssistant->openAssistant();
+}
+
+void MussaWindow::assistantError(QString message)
+{
+  std::cout << "Error922: " << message.toStdString() << "\n";
+}
+
 void MussaWindow::NotImplementedBox()
 {
   QMessageBox::warning(this, QObject::tr("mussa"), QObject::tr("Not implemented yet"));