#include <QAction>
+#include <QAssistantClient>
#include <QDir>
#include <QFileDialog>
#include <QHBoxLayout>
#include <QScrollBar>
#include <QStatusBar>
#include <QString>
+#include <QStringList>
#include <QWhatsThis>
#include "qui/MussaWindow.hpp"
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
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)
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()),
whatsThisAction = QWhatsThis::createAction(this);
whatsThisAction->setIcon(QIcon(":/icons/help.png"));
+
}
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()
{
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"));
class QAction;
class QLabel;
+class QStringList;
class Mussa;
+class QAssistantClient;
class MussaWindow : public QMainWindow
{
//! open new window showing our alignment
void viewMussaAlignment();
+ //! display mussagl manual
+ void showManual();
+
+ void assistantError(const QString message);
+
signals:
void changedAnnotations();
QAction *loadMotifListAction;
QAction *loadMupaAction;
QAction *loadSavedAnalysisAction;
+ QAction *mussaManualAssistantAction;
QAction *newMussaWindowAction;
QAction *saveMotifListAction;
QAction *showMussaViewToolbarAction;
QAction *whatsThisAction;
QAction *viewMussaAlignmentAction;
+ QAssistantClient *manualAssistant;
+
+ QStringList manualAssistantArgs;
+
//! initialze the actions
void setupActions();
//! initialize this windows menu object
void setupMainMenu();
+ //! initialize assistant client
+ void setupAssistant();
//! stub function to fill in QActions
void NotImplementedBox();