From: Brandon King Date: Fri, 26 May 2006 21:11:49 +0000 (+0000) Subject: Mussagl Manual QAssistant Patch X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=mussa.git;a=commitdiff_plain;h=4b75ae188e28a5371cab589b229bbe38a2fb5188 Mussagl Manual QAssistant Patch * Adds a QAssistant client for Mussagl Manual * New menu action -> 'Help > Mussa Manual..' * New action icon * Updated icon.qrc with new icon * CONFIG += assistant added to mussagl.pro --- diff --git a/icons.qrc b/icons.qrc index 854e7cb..359b782 100644 --- a/icons.qrc +++ b/icons.qrc @@ -1,6 +1,7 @@ + icons/contents.png icons/exit.png icons/filenew.png icons/fileopen.png diff --git a/icons/README.txt b/icons/README.txt index 5ce2374..480c4f6 100644 --- a/icons/README.txt +++ b/icons/README.txt @@ -4,7 +4,8 @@ SVG. We are currently using the 32x32 pixel images. Crystal SVG Icons: ------------------ - + + * contents.png * exit.png * filenew.png * fileopen.png diff --git a/icons/contents.png b/icons/contents.png new file mode 100644 index 0000000..2e86079 Binary files /dev/null and b/icons/contents.png differ diff --git a/mussagl.pro b/mussagl.pro index 74e7103..e706791 100644 --- a/mussagl.pro +++ b/mussagl.pro @@ -3,6 +3,7 @@ ###################################################################### TEMPLATE = app +CONFIG += assistant TARGET += DEPENDPATH += . \ alg \ diff --git a/qui/MussaWindow.cpp b/qui/MussaWindow.cpp index 2d34414..e76e7a1 100644 --- a/qui/MussaWindow.cpp +++ b/qui/MussaWindow.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -8,6 +9,7 @@ #include #include #include +#include #include #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")); diff --git a/qui/MussaWindow.hpp b/qui/MussaWindow.hpp index d27f618..2daf115 100644 --- a/qui/MussaWindow.hpp +++ b/qui/MussaWindow.hpp @@ -18,7 +18,9 @@ class QAction; class QLabel; +class QStringList; class Mussa; +class QAssistantClient; class MussaWindow : public QMainWindow { @@ -66,6 +68,11 @@ public slots: //! open new window showing our alignment void viewMussaAlignment(); + //! display mussagl manual + void showManual(); + + void assistantError(const QString message); + signals: void changedAnnotations(); @@ -89,6 +96,7 @@ protected: QAction *loadMotifListAction; QAction *loadMupaAction; QAction *loadSavedAnalysisAction; + QAction *mussaManualAssistantAction; QAction *newMussaWindowAction; QAction *saveMotifListAction; QAction *showMussaViewToolbarAction; @@ -97,10 +105,16 @@ protected: 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();