* 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
<!DOCTYPE RCC>
<RCC version="1.0">
<qresource>
<!DOCTYPE RCC>
<RCC version="1.0">
<qresource>
+ <file>icons/contents.png</file>
<file>icons/exit.png</file>
<file>icons/filenew.png</file>
<file>icons/fileopen.png</file>
<file>icons/exit.png</file>
<file>icons/filenew.png</file>
<file>icons/fileopen.png</file>
Crystal SVG Icons:
------------------
Crystal SVG Icons:
------------------
* exit.png
* filenew.png
* fileopen.png
* exit.png
* filenew.png
* fileopen.png
######################################################################
TEMPLATE = app
######################################################################
TEMPLATE = app
TARGET +=
DEPENDPATH += . \
alg \
TARGET +=
DEPENDPATH += . \
alg \
+#include <QAssistantClient>
#include <QDir>
#include <QFileDialog>
#include <QHBoxLayout>
#include <QDir>
#include <QFileDialog>
#include <QHBoxLayout>
#include <QScrollBar>
#include <QStatusBar>
#include <QString>
#include <QScrollBar>
#include <QStatusBar>
#include <QString>
#include <QWhatsThis>
#include "qui/MussaWindow.hpp"
#include <QWhatsThis>
#include "qui/MussaWindow.hpp"
loadMotifListAction(0),
loadMupaAction(0),
loadSavedAnalysisAction(0),
loadMotifListAction(0),
loadMupaAction(0),
loadSavedAnalysisAction(0),
+ mussaManualAssistantAction(0),
newMussaWindowAction(0),
saveMotifListAction(0),
showMussaViewToolbarAction(0),
toggleMotifsAction(0),
saveBrowserPixmapAction(0),
whatsThisAction(0),
newMussaWindowAction(0),
saveMotifListAction(0),
showMussaViewToolbarAction(0),
toggleMotifsAction(0),
saveBrowserPixmapAction(0),
whatsThisAction(0),
- viewMussaAlignmentAction(0)
+ viewMussaAlignmentAction(0),
+ manualAssistant(0)
setupActions();
setupMainMenu();
setupActions();
setupMainMenu();
//This next setWhatsThis function prevents
// a segfault when using WhatsThis feature with
//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 (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 (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 (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 (whatsThisAction != 0) delete whatsThisAction;
if (viewMussaAlignmentAction != 0) delete viewMussaAlignmentAction;
+
+ if (manualAssistant != 0) delete manualAssistant;
+
}
void MussaWindow::setAnalysis(Mussa *new_analysis)
}
void MussaWindow::setAnalysis(Mussa *new_analysis)
this, SLOT(loadSavedAnalysis()));
loadSavedAnalysisAction->setIcon(QIcon(":/icons/fileopen.png"));
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()),
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"));
whatsThisAction = QWhatsThis::createAction(this);
whatsThisAction->setIcon(QIcon(":/icons/help.png"));
}
void MussaWindow::setupMainMenu()
}
void MussaWindow::setupMainMenu()
newMenu->addAction(showMussaViewToolbarAction);
newMenu = menuBar()->addMenu(tr("&Help"));
newMenu->addAction(showMussaViewToolbarAction);
newMenu = menuBar()->addMenu(tr("&Help"));
+ newMenu->addAction(mussaManualAssistantAction);
newMenu->addAction(whatsThisAction);
newMenu->addSeparator();
newMenu->addAction(aboutAction);
}
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()
{
void MussaWindow::about()
{
+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"));
void MussaWindow::NotImplementedBox()
{
QMessageBox::warning(this, QObject::tr("mussa"), QObject::tr("Not implemented yet"));
class QAction;
class QLabel;
class QAction;
class QLabel;
class MussaWindow : public QMainWindow
{
class MussaWindow : public QMainWindow
{
//! open new window showing our alignment
void viewMussaAlignment();
//! open new window showing our alignment
void viewMussaAlignment();
+ //! display mussagl manual
+ void showManual();
+
+ void assistantError(const QString message);
+
signals:
void changedAnnotations();
signals:
void changedAnnotations();
QAction *loadMotifListAction;
QAction *loadMupaAction;
QAction *loadSavedAnalysisAction;
QAction *loadMotifListAction;
QAction *loadMupaAction;
QAction *loadSavedAnalysisAction;
+ QAction *mussaManualAssistantAction;
QAction *newMussaWindowAction;
QAction *saveMotifListAction;
QAction *showMussaViewToolbarAction;
QAction *newMussaWindowAction;
QAction *saveMotifListAction;
QAction *showMussaViewToolbarAction;
QAction *whatsThisAction;
QAction *viewMussaAlignmentAction;
QAction *whatsThisAction;
QAction *viewMussaAlignmentAction;
+ QAssistantClient *manualAssistant;
+
+ QStringList manualAssistantArgs;
+
//! initialze the actions
void setupActions();
//! initialize this windows menu object
void setupMainMenu();
//! 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();
//! stub function to fill in QActions
void NotImplementedBox();