Variable declared locally elsewere... not needed.
[mussa.git] / qui / MussaWindow.hpp
1 #ifndef _MUSSAWINDOW_H_
2 #define _MUSSAWINDOW_H_
3
4 #include <list>
5
6 #include <QMainWindow>
7 #include <QPixmap>
8 #include <QSpinBox>
9 #include <QToolBar>
10
11 #include "qui/MussaAlignedWindow.hpp"
12 #include "qui/motif_editor/MotifEditor.hpp"
13 #include "qui/mussa_setup_dialog/MussaSetupDialog.hpp"
14 #include "qui/seqbrowser/SequenceBrowserWidget.hpp"
15 #include "qui/ThresholdWidget.hpp"
16 #include "qui/ZoomWidget.hpp"
17
18
19 class QAction;
20 class QLabel;
21 class QStringList;
22 class Mussa;
23 class QAssistantClient;
24
25 class MussaWindow : public QMainWindow
26 {
27   Q_OBJECT
28
29 public: 
30   MussaWindow(Mussa* analysis=0, QWidget *parent=0);
31   ~MussaWindow();
32
33   //! switch to a new analysis
34   void setAnalysis(Mussa *new_analysis);
35 public slots:
36   //! display an about box, contemplating the politics of the author list
37   void about();
38
39   //! \defgroup AnalysisFunctions Components related to running analyses
40   //\@{
41   //! open a window to collect the information needed to create a new analysis
42   void createNewAnalysis();
43   //! launch a sub analysis
44   void createSubAnalysis();
45   //\@}
46
47   //! \defgroup MotifHandling Handling of motif lists
48   //\@{
49   //! load motifs
50   void editMotifs();
51   void loadMotifList();
52   void saveMotifList();
53   void toggleMotifs();
54   //\@}
55
56   //! load a mussa parameter file (which specifies an analysis to run)
57   void loadMupa();
58   //! load a previously run analysis
59   void loadSavedAnalysis();
60   //! set the soft threshold used by the Nway_Path algorithm
61   void setSoftThreshold(int thres);
62
63   //! open a new mussa window so one can compare analyses
64   void newMussaWindow();
65
66   void showMussaToolbar();
67
68   //! open new window showing our alignment
69   void viewMussaAlignment();
70
71   //! display mussagl manual
72   void showManual();
73
74   void assistantError(const QString message);
75
76 signals:
77   void changedAnnotations();
78
79 protected:
80   Mussa *analysis;
81   std::list<MussaAlignedWindow *> aligned_windows;
82   MotifEditor *motif_editor;
83   MussaSetupDialog setup_analysis_dialog;
84
85   // display our wonderful mussa output
86   SequenceBrowserWidget browser;
87   QToolBar mussaViewTB;
88   ZoomWidget zoom;
89   ThresholdWidget threshold;
90
91   QAction *aboutAction;
92   QAction *closeAction;
93   QAction *createNewAnalysisAction;
94   QAction *createSubAnalysisAction;
95   QAction *editMotifsAction;
96   QAction *loadMotifListAction;
97   QAction *loadMupaAction;
98   QAction *loadSavedAnalysisAction;
99   QAction *mussaManualAssistantAction;
100   QAction *newMussaWindowAction;
101   QAction *saveMotifListAction;
102   QAction *showMussaViewToolbarAction;
103   QAction *toggleMotifsAction;
104   QAction *saveBrowserPixmapAction;
105   QAction *whatsThisAction;
106   QAction *viewMussaAlignmentAction;
107
108   QAssistantClient *manualAssistant;
109
110   //! initialze the actions
111   void setupActions();
112   //! initialize this windows menu object
113   void setupMainMenu();
114   //! initialize assistant client
115   void setupAssistant();
116   //! stub function to fill in QActions
117   void NotImplementedBox();
118
119 protected slots:  
120   //! update the SequenceBrowser with our analysis
121   void updateAnalysis();
122   //! update the view of conserved windows
123   void updateLinks();
124   //! update annotations?
125   void updateAnnotations();
126 };
127
128 #endif