Mercurial > hg > tony
comparison src/MainWindow.h @ 0:158f40a613a5
Initial import of material from SV and Vect. This builds and runs, but does not yet have the layout we need
author | Chris Cannam |
---|---|
date | Fri, 16 Nov 2012 11:48:16 +0000 |
parents | |
children | a11a9c04df44 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:158f40a613a5 |
---|---|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ | |
2 | |
3 /* | |
4 Tony | |
5 An intonation analysis and annotation tool | |
6 Centre for Digital Music, Queen Mary, University of London. | |
7 This file copyright 2006-2012 Chris Cannam and QMUL. | |
8 | |
9 This program is free software; you can redistribute it and/or | |
10 modify it under the terms of the GNU General Public License as | |
11 published by the Free Software Foundation; either version 2 of the | |
12 License, or (at your option) any later version. See the file | |
13 COPYING included with this distribution for more information. | |
14 */ | |
15 | |
16 #ifndef _MAIN_WINDOW_H_ | |
17 #define _MAIN_WINDOW_H_ | |
18 | |
19 #include <QFrame> | |
20 #include <QString> | |
21 #include <QUrl> | |
22 #include <QMainWindow> | |
23 #include <QPointer> | |
24 | |
25 #include "framework/MainWindowBase.h" | |
26 #include "base/Command.h" | |
27 #include "view/ViewManager.h" | |
28 #include "base/PropertyContainer.h" | |
29 #include "base/RecentFiles.h" | |
30 #include "layer/LayerFactory.h" | |
31 #include "transform/Transform.h" | |
32 #include "framework/SVFileReader.h" | |
33 #include "widgets/InteractiveFileFinder.h" | |
34 #include <map> | |
35 | |
36 class Document; | |
37 class PaneStack; | |
38 class Pane; | |
39 class View; | |
40 class Fader; | |
41 class Overview; | |
42 class Layer; | |
43 class WaveformLayer; | |
44 class WaveFileModel; | |
45 class AudioCallbackPlaySource; | |
46 class AudioCallbackPlayTarget; | |
47 class CommandHistory; | |
48 class QMenu; | |
49 class AudioDial; | |
50 class QLabel; | |
51 class QCheckBox; | |
52 class QTreeView; | |
53 class QPushButton; | |
54 class OSCQueue; | |
55 class OSCMessage; | |
56 class KeyReference; | |
57 | |
58 | |
59 class MainWindow : public MainWindowBase | |
60 { | |
61 Q_OBJECT | |
62 | |
63 public: | |
64 MainWindow(bool withAudioOutput = true, | |
65 bool withOSCSupport = true); | |
66 virtual ~MainWindow(); | |
67 | |
68 public slots: | |
69 virtual bool commitData(bool mayAskUser); // on session shutdown | |
70 | |
71 protected slots: | |
72 virtual void openFile(); | |
73 virtual void openLocation(); | |
74 virtual void openRecentFile(); | |
75 virtual void saveSession(); | |
76 virtual void saveSessionAs(); | |
77 virtual void newSession(); | |
78 virtual void closeSession(); | |
79 | |
80 virtual void renameCurrentLayer(); | |
81 | |
82 virtual void paneAdded(Pane *); | |
83 virtual void paneHidden(Pane *); | |
84 virtual void paneAboutToBeDeleted(Pane *); | |
85 | |
86 virtual void paneDropAccepted(Pane *, QStringList); | |
87 virtual void paneDropAccepted(Pane *, QString); | |
88 | |
89 virtual void playSpeedChanged(int); | |
90 virtual void playSharpenToggled(); | |
91 virtual void playMonoToggled(); | |
92 | |
93 virtual void speedUpPlayback(); | |
94 virtual void slowDownPlayback(); | |
95 virtual void restoreNormalPlayback(); | |
96 | |
97 virtual void sampleRateMismatch(size_t, size_t, bool); | |
98 virtual void audioOverloadPluginDisabled(); | |
99 virtual void audioTimeStretchMultiChannelDisabled(); | |
100 | |
101 virtual void outputLevelsChanged(float, float); | |
102 | |
103 virtual void documentModified(); | |
104 virtual void documentRestored(); | |
105 | |
106 virtual void updateMenuStates(); | |
107 virtual void updateDescriptionLabel(); | |
108 | |
109 virtual void layerRemoved(Layer *); | |
110 virtual void layerInAView(Layer *, bool); | |
111 | |
112 virtual void mainModelChanged(WaveFileModel *); | |
113 virtual void modelAdded(Model *); | |
114 virtual void modelReady(); | |
115 virtual void modelAboutToBeDeleted(Model *); | |
116 | |
117 virtual void modelGenerationFailed(QString, QString); | |
118 virtual void modelGenerationWarning(QString, QString); | |
119 virtual void modelRegenerationFailed(QString, QString, QString); | |
120 virtual void modelRegenerationWarning(QString, QString, QString); | |
121 virtual void alignmentFailed(QString, QString); | |
122 | |
123 virtual void rightButtonMenuRequested(Pane *, QPoint point); | |
124 | |
125 virtual void setupRecentFilesMenu(); | |
126 | |
127 virtual void showLayerTree(); | |
128 | |
129 virtual void handleOSCMessage(const OSCMessage &); | |
130 | |
131 virtual void mouseEnteredWidget(); | |
132 virtual void mouseLeftWidget(); | |
133 | |
134 virtual void website(); | |
135 virtual void help(); | |
136 virtual void about(); | |
137 virtual void keyReference(); | |
138 | |
139 protected: | |
140 Overview *m_overview; | |
141 Fader *m_fader; | |
142 AudioDial *m_playSpeed; | |
143 QPushButton *m_playSharpen; | |
144 QPushButton *m_playMono; | |
145 WaveformLayer *m_panLayer; | |
146 | |
147 bool m_mainMenusCreated; | |
148 QMenu *m_playbackMenu; | |
149 QMenu *m_recentFilesMenu; | |
150 QMenu *m_rightButtonMenu; | |
151 QMenu *m_rightButtonPlaybackMenu; | |
152 | |
153 QAction *m_deleteSelectedAction; | |
154 QAction *m_ffwdAction; | |
155 QAction *m_rwdAction; | |
156 | |
157 QPointer<QTreeView> m_layerTreeView; | |
158 | |
159 KeyReference *m_keyReference; | |
160 | |
161 typedef std::set<Layer *> LayerSet; | |
162 typedef std::map<Pane *, LayerSet> PaneLayerMap; | |
163 PaneLayerMap m_hiddenLayers; | |
164 | |
165 virtual void setupMenus(); | |
166 virtual void setupFileMenu(); | |
167 virtual void setupEditMenu(); | |
168 virtual void setupViewMenu(); | |
169 virtual void setupHelpMenu(); | |
170 virtual void setupToolbars(); | |
171 | |
172 virtual void closeEvent(QCloseEvent *e); | |
173 bool checkSaveModified(); | |
174 | |
175 virtual void configureNewPane(Pane *p); | |
176 virtual void updateVisibleRangeDisplay(Pane *p) const; | |
177 virtual void updatePositionStatusDisplays() const; | |
178 }; | |
179 | |
180 | |
181 #endif |