From 4b75ae188e28a5371cab589b229bbe38a2fb5188 Mon Sep 17 00:00:00 2001 From: Brandon King Date: Fri, 26 May 2006 21:11:49 +0000 Subject: [PATCH] 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 --- icons.qrc | 1 + icons/README.txt | 3 ++- icons/contents.png | Bin 0 -> 2467 bytes mussagl.pro | 1 + qui/MussaWindow.cpp | 42 ++++++++++++++++++++++++++++++++++++++++-- qui/MussaWindow.hpp | 14 ++++++++++++++ 6 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 icons/contents.png 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 0000000000000000000000000000000000000000..2e86079c02a3058e58637fcbb7cb1de1343bbf67 GIT binary patch literal 2467 zcmV;U30(GxP)bLX_9hRn2tq=ZQKjN^qm>Z0}@4oVDy!jefqAweK!CDj1{ z0R#+z|BP&cl550m;}pvpSE{y8K4=6D8Jv#km~vQ=gPpbB(Mq0yosF5nKwDZOBB9O^ zD8)r;v;qVW)1U93rwjA4%fzMD+z=I)JI%t%zOT4;sSi+&9hYIuEUf)NpYww(|M%}d z11K7l)QkdvQrtky0#YNFdL&Rb`S3>R_&rmATn=2(4G=)gd`c#_8HAKde2oMdzCM4) z&dA8f!O6vA|MA1?Ezcg``UF(-7goYT}rMfh|C z|9oTMU}a+9z~8_B zfcQUyys~zfyMvmIv=|Qu>(|c=)>euPSMPsf`22(A|F_$ljslJN0W%8*00IaUEPwz0 z{I>Dr{cj9XDiRDofBs?M=VfQGv(j`Zs$EhHl;?p3-~a#r8mx?^`T2nIFw0>M&`=R( z`10j9gAhLlgOV&i1JEA~FR$KXa5R@@VC0tc25RTSmPi2t2%K%6@11!|$RRsXS%!~~ z^ZOSDHWnrZVF3;X5m7Pge@y(xuUeG03V(G910|mghgW;-jCB4_twUD7^Fo2q0L#{V#5pBL0t=-CBwF zKf~9L-xz-W`pe+stitf&2cH8AE6+iBC7mVy?rQwpT&z&vGeCV0almh&g*-sZuikpY zAScDgAP5YJ%QxRJFaty4<9{}W$1neI{kXGsE6}cQ$mt3ofM6-}-;XyB=3jj9m4Qh} z03JM#pM7Eo^3;~Jb`0BTZ6YftCd`H8`+r~>_J%fXp6az4?+pvflNkelN8~_9mJZoI*^S$%;`T`4`O6^8`WGA`?5a^=(6RzvVgdvZa^C#= z`|F3r$8UaO5R?^Rc=hHh!>2F5z)_(MH0bKh*Whdi^D%NFgyA1QelzH6iZa}O@Bth} zQli}8wDIZj3kGLfd0=8x2uDwh00D&Tfd5xJZP&bh|Lw`szd+Xlvl%EyfGh^3dRbt+ z-g)p2#X@Aqz%UaqeX+7KGkp2_3s_e$Fen0Z#P2WP7)*6VK{66-T6riXCO`n8mrj5F zeE+iS)a}m2rJ+MRdc5K~tagaq%~cMO(hG7L=o zS|}wZKmegT;NQ=;59eRF^O1o;fS&;t@2}o|0~fbXo_}We^!X=V2mJp1mqAg651b`I zd@c?aa0q^X@tVQPT#n&CtB5C)pdmal0t667`Fw9q*quK=zwNmG78s|{%yRDX3os3= z{TOcCeTy~dVNn7J#(xZ)K#O0#`36pmpilrMMpN8-eGE#7AZ(-~4$c|ad=7C4FkFF!*o!yczy^r|vmrn=K&TwDz>h0Gjum7`y6Cx-RsD;AdiDWcc>;AH&1P9~g90 zh2c>G0}>*f;1K-z>J5XntrD>PCF;q*r!Nf*NFVjso-$q_A|y%BU3qcu0P)y{sJw34a}0J`qB*Nt~_Iq5$6M2!o|hLaQD#% zhW|jv$V&2oeGY8cFmQ0PGTeXinc>LUXTaR^j)4VOGkpUV*Ps%LRalVW%GD1d00D%z z75nA-h8OH|w$Cp=`0sCJAKG`GpuRUVh1N@BT+2fB<47qTj$F8oX|boV-j@ zp&zhu@$N0St`Y+VAt-N~8pr}u{bL3tVA@~;`t16hw+y%Lzh__r7RNuK1sNj?GXtlT z1jCE(%nW-E-e)*^_#OkpuQw+cKAc_)5I~GX_8quIf;R23Hd8VSH{@XW`{fJJH-8ye zSr{2~H6(#q^ex!(m#@D8eb2=3_1hnYzrg5VVrOUIl9OgQb@e^N?!C7e9z6gC$B!p_ z7+!8&&G7En1E9H|00M~ECNvYLW|Taqdd$VdP;Fjgo=*%+z-RzP1u&|?36YTr6u*BN z{s4pdKNk)Oh}6CzJCDQMN)ajf`i25i1}-)xaO3XVr>_hL&%a~XzUwZ- z>lbfc{r~!C_y0!=Rx^CN{|d>sAP0Ph_8;LbV}Jl6)d3*&TwL~x7X4@D4f+pimH}JD zpzQbm$NS5F-<@0k|NhK<=)nwai2gxtjKTmw0Fl!>1|>>fAQlH=0a(2bZD@XnTKoyh h{)OJLK?eW<1^`V}cwa1%;9vj%002ovPDHLkV1hjHjqv~g literal 0 HcmV?d00001 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(); -- 2.30.2