annotate main/MainWindow.h @ 1683:203372cdba61 scale-ticks

Change loop to something that feels more correct, though it makes no difference to the tests here. More tests, one failing.
author Chris Cannam
date Thu, 04 May 2017 08:32:41 +0100
parents 6b2e781b0154
children 893f556cd5c9
rev   line source
Chris@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@0 2
Chris@0 3 /*
Chris@0 4 Sonic Visualiser
Chris@0 5 An audio file viewer and annotation editor.
Chris@0 6 Centre for Digital Music, Queen Mary, University of London.
Chris@200 7 This file copyright 2006-2007 Chris Cannam and QMUL.
Chris@0 8
Chris@0 9 This program is free software; you can redistribute it and/or
Chris@0 10 modify it under the terms of the GNU General Public License as
Chris@0 11 published by the Free Software Foundation; either version 2 of the
Chris@0 12 License, or (at your option) any later version. See the file
Chris@0 13 COPYING included with this distribution for more information.
Chris@0 14 */
Chris@0 15
Chris@0 16 #ifndef _MAIN_WINDOW_H_
Chris@0 17 #define _MAIN_WINDOW_H_
Chris@0 18
Chris@672 19 #include "framework/MainWindowBase.h"
Chris@0 20
Chris@672 21 class VersionTester;
Chris@672 22 class Surveyer;
Chris@672 23 class LayerTreeDialog;
Chris@672 24 class ActivityLog;
Chris@891 25 class UnitConverter;
Chris@0 26
Chris@426 27 class QFileSystemWatcher;
Chris@489 28 class QScrollArea;
Chris@0 29
Chris@200 30 class MainWindow : public MainWindowBase
Chris@0 31 {
Chris@0 32 Q_OBJECT
Chris@0 33
Chris@0 34 public:
Chris@1045 35 MainWindow(SoundOptions options, bool withOSCSupport = true);
Chris@0 36 virtual ~MainWindow();
Chris@0 37
Chris@0 38 signals:
Chris@376 39 void canChangeSolo(bool);
Chris@376 40 void canAlign(bool);
Chris@0 41
Chris@118 42 public slots:
Chris@200 43 virtual void preferenceChanged(PropertyContainer::PropertyName);
Chris@1448 44 virtual void coloursChanged();
Chris@1448 45
Chris@200 46 virtual bool commitData(bool mayAskUser);
Chris@118 47
Chris@489 48 void goFullScreen();
Chris@492 49 void endFullScreen();
Chris@489 50
Chris@0 51 protected slots:
Chris@200 52 virtual void importAudio();
Chris@200 53 virtual void importMoreAudio();
Chris@508 54 virtual void replaceMainAudio();
Chris@200 55 virtual void openSomething();
Chris@200 56 virtual void openLocation();
Chris@1253 57 /* F. Nicol patch 13 Aug. 2016 */
Chris@1253 58 virtual void openRecentFile(const QString& );
Chris@1253 59 /* End of F. Nicol patch 13 Aug. 2016 */
Chris@435 60 virtual void applyTemplate();
Chris@200 61 virtual void exportAudio();
Chris@631 62 virtual void exportAudioData();
Chris@200 63 virtual void importLayer();
Chris@200 64 virtual void exportLayer();
Chris@200 65 virtual void exportImage();
Chris@1451 66 virtual void exportSVG();
Chris@1056 67 virtual void browseRecordedAudio();
Chris@200 68 virtual void saveSession();
Chris@200 69 virtual void saveSessionAs();
Chris@200 70 virtual void newSession();
Chris@200 71 virtual void closeSession();
Chris@200 72 virtual void preferences();
Chris@0 73
Chris@921 74 virtual void sampleRateMismatch(sv_samplerate_t, sv_samplerate_t, bool);
Chris@200 75 virtual void audioOverloadPluginDisabled();
Chris@266 76 virtual void audioTimeStretchMultiChannelDisabled();
Chris@0 77
Chris@200 78 virtual void toolNavigateSelected();
Chris@200 79 virtual void toolSelectSelected();
Chris@200 80 virtual void toolEditSelected();
Chris@200 81 virtual void toolDrawSelected();
Chris@217 82 virtual void toolEraseSelected();
Chris@200 83 virtual void toolMeasureSelected();
Chris@7 84
Chris@200 85 virtual void documentModified();
Chris@200 86 virtual void documentRestored();
Chris@303 87 virtual void documentReplaced();
Chris@0 88
Chris@200 89 virtual void updateMenuStates();
Chris@200 90 virtual void updateDescriptionLabel();
Chris@0 91
Chris@200 92 virtual void setInstantsNumbering();
Chris@200 93 virtual void setInstantsCounterCycle();
Chris@597 94 virtual void setInstantsCounters();
Chris@200 95 virtual void resetInstantsCounters();
Chris@1355 96 virtual void subdivideInstants();
Chris@1356 97 virtual void winnowInstants();
Chris@0 98
Chris@233 99 virtual void modelGenerationFailed(QString, QString);
Chris@233 100 virtual void modelGenerationWarning(QString, QString);
Chris@233 101 virtual void modelRegenerationFailed(QString, QString, QString);
Chris@233 102 virtual void modelRegenerationWarning(QString, QString, QString);
Chris@1151 103 virtual void alignmentFailed(QString);
Chris@0 104
Chris@200 105 virtual void rightButtonMenuRequested(Pane *, QPoint point);
Chris@0 106
Chris@239 107 virtual void propertyStacksResized(int);
Chris@239 108
Chris@200 109 virtual void addPane();
Chris@200 110 virtual void addLayer();
Chris@274 111 virtual void addLayer(QString transformId);
Chris@200 112 virtual void renameCurrentLayer();
Chris@0 113
Chris@272 114 virtual void findTransform();
Chris@272 115
Chris@200 116 virtual void paneAdded(Pane *);
Chris@200 117 virtual void paneHidden(Pane *);
Chris@200 118 virtual void paneAboutToBeDeleted(Pane *);
Chris@200 119 virtual void paneDropAccepted(Pane *, QStringList);
Chris@200 120 virtual void paneDropAccepted(Pane *, QString);
Chris@0 121
Chris@200 122 virtual void setupRecentFilesMenu();
Chris@211 123 virtual void setupRecentTransformsMenu();
Chris@423 124 virtual void setupTemplatesMenu();
Chris@0 125
Chris@200 126 virtual void playSpeedChanged(int);
Chris@207 127 virtual void playSoloToggled();
Chris@206 128 virtual void alignToggled();
Chris@0 129
Chris@227 130 virtual void currentPaneChanged(Pane *);
Chris@227 131
Chris@200 132 virtual void speedUpPlayback();
Chris@200 133 virtual void slowDownPlayback();
Chris@200 134 virtual void restoreNormalPlayback();
Chris@0 135
Chris@1476 136 virtual void monitoringLevelsChanged(float, float);
Chris@0 137
Chris@200 138 virtual void layerRemoved(Layer *);
Chris@200 139 virtual void layerInAView(Layer *, bool);
Chris@0 140
Chris@200 141 virtual void mainModelChanged(WaveFileModel *);
Chris@1035 142 virtual void mainModelGainChanged(float);
Chris@1386 143 virtual void mainModelPanChanged(float);
Chris@200 144 virtual void modelAdded(Model *);
Chris@760 145 virtual void modelAboutToBeDeleted(Model *);
Chris@0 146
Chris@200 147 virtual void showLayerTree();
Chris@306 148 virtual void showActivityLog();
Chris@891 149 virtual void showUnitConverter();
Chris@0 150
Chris@200 151 virtual void mouseEnteredWidget();
Chris@200 152 virtual void mouseLeftWidget();
Chris@73 153
Chris@200 154 virtual void handleOSCMessage(const OSCMessage &);
Chris@304 155 virtual void midiEventsAvailable();
Chris@305 156 virtual void playStatusChanged(bool);
Chris@193 157
Chris@1630 158 /*
Chris@1521 159 virtual void betaReleaseWarning();
Chris@1630 160 */
Chris@1148 161 virtual void pluginPopulationWarning();
Chris@1087 162
Chris@425 163 virtual void saveSessionAsTemplate();
Chris@425 164 virtual void manageSavedTemplates();
Chris@425 165
Chris@200 166 virtual void website();
Chris@200 167 virtual void help();
Chris@200 168 virtual void about();
Chris@1516 169 virtual void whatsNew();
Chris@200 170 virtual void keyReference();
Chris@333 171 virtual void newerVersionAvailable(QString);
Chris@0 172
Chris@0 173 protected:
Chris@65 174 Overview *m_overview;
Chris@1431 175 LevelPanToolButton *m_mainLevelPan;
Chris@0 176 AudioDial *m_playSpeed;
Chris@0 177 WaveformLayer *m_panLayer;
Chris@489 178
Chris@489 179 QScrollArea *m_mainScroll;
Chris@34 180
Chris@0 181 bool m_mainMenusCreated;
Chris@0 182 QMenu *m_paneMenu;
Chris@0 183 QMenu *m_layerMenu;
Chris@34 184 QMenu *m_transformsMenu;
Chris@155 185 QMenu *m_playbackMenu;
Chris@0 186 QMenu *m_existingLayersMenu;
Chris@95 187 QMenu *m_sliceMenu;
Chris@0 188 QMenu *m_recentFilesMenu;
Chris@211 189 QMenu *m_recentTransformsMenu;
Chris@423 190 QMenu *m_templatesMenu;
Chris@0 191 QMenu *m_rightButtonMenu;
Chris@0 192 QMenu *m_rightButtonLayerMenu;
Chris@211 193 QMenu *m_rightButtonTransformsMenu;
Chris@155 194 QMenu *m_rightButtonPlaybackMenu;
Chris@155 195
Chris@164 196 QAction *m_deleteSelectedAction;
Chris@207 197 QAction *m_soloAction;
Chris@265 198 QAction *m_rwdStartAction;
Chris@323 199 QAction *m_rwdSimilarAction;
Chris@265 200 QAction *m_rwdAction;
Chris@155 201 QAction *m_ffwdAction;
Chris@323 202 QAction *m_ffwdSimilarAction;
Chris@265 203 QAction *m_ffwdEndAction;
Chris@265 204 QAction *m_playAction;
Chris@1047 205 QAction *m_recordAction;
Chris@265 206 QAction *m_playSelectionAction;
Chris@265 207 QAction *m_playLoopAction;
Chris@436 208 QAction *m_manageTemplatesAction;
Chris@494 209 QAction *m_zoomInAction;
Chris@494 210 QAction *m_zoomOutAction;
Chris@494 211 QAction *m_zoomFitAction;
Chris@494 212 QAction *m_scrollLeftAction;
Chris@494 213 QAction *m_scrollRightAction;
Chris@494 214 QAction *m_showPropertyBoxesAction;
Chris@0 215
Chris@207 216 bool m_soloModified;
Chris@207 217 bool m_prevSolo;
Chris@207 218
Chris@239 219 QFrame *m_playControlsSpacer;
Chris@239 220 int m_playControlsWidth;
Chris@239 221
Chris@518 222 QLabel *m_descriptionLabel;
Chris@340 223 QLabel *m_currentLabel;
Chris@340 224
Chris@0 225 QPointer<PreferencesDialog> m_preferencesDialog;
Chris@219 226 QPointer<LayerTreeDialog> m_layerTreeDialog;
Chris@0 227
Chris@302 228 ActivityLog *m_activityLog;
Chris@891 229 UnitConverter *m_unitConverter;
Chris@162 230 KeyReference *m_keyReference;
Chris@162 231
Chris@426 232 QFileSystemWatcher *m_templateWatcher;
Chris@426 233
Chris@662 234 Surveyer *m_surveyer;
Chris@573 235 VersionTester *m_versionTester;
Chris@1516 236 QString m_newerVersionIs;
Chris@573 237
Chris@232 238 struct LayerConfiguration {
Chris@232 239 LayerConfiguration(LayerFactory::LayerType _layer
Chris@0 240 = LayerFactory::TimeRuler,
Chris@232 241 Model *_source = 0,
Chris@232 242 int _channel = -1) :
Chris@66 243 layer(_layer), sourceModel(_source), channel(_channel) { }
Chris@0 244 LayerFactory::LayerType layer;
Chris@66 245 Model *sourceModel;
Chris@0 246 int channel;
Chris@0 247 };
Chris@0 248
Chris@232 249 typedef std::map<QAction *, LayerConfiguration> PaneActionMap;
Chris@0 250 PaneActionMap m_paneActions;
Chris@0 251
Chris@232 252 typedef std::map<QAction *, LayerConfiguration> LayerActionMap;
Chris@232 253 LayerActionMap m_layerActions;
Chris@232 254
Chris@211 255 typedef std::map<QAction *, TransformId> TransformActionMap;
Chris@211 256 TransformActionMap m_transformActions;
Chris@34 257
Chris@211 258 typedef std::map<TransformId, QAction *> TransformActionReverseMap;
Chris@211 259 TransformActionReverseMap m_transformActionsReverse;
Chris@0 260
Chris@0 261 typedef std::map<QAction *, Layer *> ExistingLayerActionMap;
Chris@0 262 ExistingLayerActionMap m_existingLayerActions;
Chris@95 263 ExistingLayerActionMap m_sliceActions;
Chris@0 264
Chris@0 265 typedef std::map<ViewManager::ToolMode, QAction *> ToolActionMap;
Chris@0 266 ToolActionMap m_toolActions;
Chris@0 267
Chris@189 268 typedef std::map<QAction *, int> NumberingActionMap;
Chris@189 269 NumberingActionMap m_numberingActions;
Chris@189 270
Chris@1610 271 QString getReleaseText() const;
Chris@1610 272
Chris@200 273 virtual void setupMenus();
Chris@200 274 virtual void setupFileMenu();
Chris@200 275 virtual void setupEditMenu();
Chris@200 276 virtual void setupViewMenu();
Chris@200 277 virtual void setupPaneAndLayerMenus();
Chris@211 278 virtual void setupTransformsMenu();
Chris@200 279 virtual void setupHelpMenu();
Chris@200 280 virtual void setupExistingLayersMenus();
Chris@200 281 virtual void setupToolbars();
Chris@66 282
Chris@232 283 virtual void addPane(const LayerConfiguration &configuration, QString text);
Chris@0 284
Chris@0 285 virtual void closeEvent(QCloseEvent *e);
Chris@200 286 virtual bool checkSaveModified();
Chris@265 287
Chris@631 288 virtual void exportAudio(bool asData);
Chris@631 289
Chris@265 290 virtual void updateVisibleRangeDisplay(Pane *p) const;
Chris@340 291 virtual void updatePositionStatusDisplays() const;
Chris@290 292
Chris@294 293 virtual bool shouldCreateNewSessionForRDFAudio(bool *cancel);
Chris@200 294
Chris@265 295 virtual void connectLayerEditDialog(ModelDataTableDialog *);
Chris@0 296 };
Chris@0 297
Chris@0 298
Chris@0 299 #endif