annotate src/MainWindow.h @ 194:34797795a76c

Clearing the selection by hitting Esc now restores the selected region of the pitch track to its contents from before the selection was made (and any alternate candidate chosen). Fixes feature #885
author Chris Cannam
date Wed, 05 Mar 2014 10:38:23 +0000
parents 431a95c9d14d
children bb391844e2aa
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 Tony
Chris@0 5 An intonation analysis and annotation tool
Chris@0 6 Centre for Digital Music, Queen Mary, University of London.
Chris@0 7 This file copyright 2006-2012 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@0 19 #include "framework/MainWindowBase.h"
Chris@192 20 #include "Analyser.h"
Chris@0 21
Chris@95 22 class VersionTester;
Chris@6 23
Chris@0 24 class MainWindow : public MainWindowBase
Chris@0 25 {
Chris@0 26 Q_OBJECT
Chris@0 27
Chris@0 28 public:
Chris@0 29 MainWindow(bool withAudioOutput = true,
Chris@0 30 bool withOSCSupport = true);
Chris@0 31 virtual ~MainWindow();
Chris@0 32
Chris@187 33 signals:
Chris@187 34 virtual void canChangePitchCandidate(bool);
Chris@187 35
Chris@0 36 public slots:
Chris@0 37 virtual bool commitData(bool mayAskUser); // on session shutdown
Chris@0 38
Chris@0 39 protected slots:
Chris@0 40 virtual void openFile();
Chris@0 41 virtual void openLocation();
Chris@0 42 virtual void openRecentFile();
Chris@0 43 virtual void saveSession();
Chris@0 44 virtual void saveSessionAs();
Chris@85 45 virtual void exportPitchLayer();
Chris@85 46 virtual void exportNoteLayer();
Chris@174 47 virtual void importPitchLayer();
Chris@0 48 virtual void newSession();
Chris@0 49 virtual void closeSession();
Chris@0 50
Chris@70 51 virtual void toolNavigateSelected();
Chris@70 52 virtual void toolEditSelected();
Chris@70 53 virtual void toolFreeEditSelected();
Chris@70 54
Chris@168 55 virtual void clearPitches();
Chris@142 56 virtual void octaveShiftUp();
Chris@142 57 virtual void octaveShiftDown();
Chris@184 58 virtual void togglePitchCandidates();
Chris@184 59 virtual void switchPitchUp();
Chris@184 60 virtual void switchPitchDown();
Chris@142 61
Chris@144 62 virtual void showAudioToggled();
Chris@145 63 virtual void showSpectToggled();
Chris@144 64 virtual void showPitchToggled();
Chris@144 65 virtual void showNotesToggled();
Chris@144 66
Chris@144 67 virtual void playAudioToggled();
Chris@144 68 virtual void playPitchToggled();
Chris@144 69 virtual void playNotesToggled();
Chris@128 70
Chris@139 71 virtual void doubleClickSelectInvoked(size_t);
Chris@194 72 virtual void abandonSelection();
Chris@139 73
Chris@0 74 virtual void paneAdded(Pane *);
Chris@0 75 virtual void paneHidden(Pane *);
Chris@0 76 virtual void paneAboutToBeDeleted(Pane *);
Chris@0 77
Chris@0 78 virtual void paneDropAccepted(Pane *, QStringList);
Chris@0 79 virtual void paneDropAccepted(Pane *, QString);
Chris@0 80
Chris@0 81 virtual void playSpeedChanged(int);
Chris@0 82 virtual void playSharpenToggled();
Chris@0 83 virtual void playMonoToggled();
Chris@0 84
Chris@0 85 virtual void speedUpPlayback();
Chris@0 86 virtual void slowDownPlayback();
Chris@0 87 virtual void restoreNormalPlayback();
Chris@0 88
justin@159 89 virtual void audioGainChanged(int);
justin@159 90 virtual void increaseAudioGain();
justin@159 91 virtual void decreaseAudioGain();
justin@159 92 virtual void restoreNormalAudioGain();
justin@159 93
Chris@158 94 virtual void pitchGainChanged(int);
Chris@158 95 virtual void increasePitchGain();
Chris@158 96 virtual void decreasePitchGain();
Chris@158 97 virtual void restoreNormalPitchGain();
justin@157 98
justin@159 99 virtual void notesGainChanged(int);
justin@159 100 virtual void increaseNotesGain();
justin@159 101 virtual void decreaseNotesGain();
justin@159 102 virtual void restoreNormalNotesGain();
justin@159 103
justin@160 104 virtual void audioPanChanged(int);
justin@160 105 virtual void increaseAudioPan();
justin@160 106 virtual void decreaseAudioPan();
justin@160 107 virtual void restoreNormalAudioPan();
justin@160 108
justin@160 109 virtual void pitchPanChanged(int);
justin@160 110 virtual void increasePitchPan();
justin@160 111 virtual void decreasePitchPan();
justin@160 112 virtual void restoreNormalPitchPan();
justin@160 113
justin@160 114 virtual void notesPanChanged(int);
justin@160 115 virtual void increaseNotesPan();
justin@160 116 virtual void decreaseNotesPan();
justin@160 117 virtual void restoreNormalNotesPan();
justin@160 118
Chris@0 119 virtual void sampleRateMismatch(size_t, size_t, bool);
Chris@0 120 virtual void audioOverloadPluginDisabled();
Chris@0 121 virtual void audioTimeStretchMultiChannelDisabled();
Chris@0 122
Chris@0 123 virtual void outputLevelsChanged(float, float);
Chris@0 124
Chris@0 125 virtual void documentModified();
Chris@0 126 virtual void documentRestored();
Chris@0 127
Chris@0 128 virtual void updateMenuStates();
Chris@0 129 virtual void updateDescriptionLabel();
Chris@144 130 virtual void updateLayerStatuses();
Chris@0 131
Chris@0 132 virtual void layerRemoved(Layer *);
Chris@0 133 virtual void layerInAView(Layer *, bool);
Chris@0 134
Chris@0 135 virtual void mainModelChanged(WaveFileModel *);
Chris@0 136 virtual void modelAdded(Model *);
Chris@0 137 virtual void modelAboutToBeDeleted(Model *);
Chris@0 138
Chris@0 139 virtual void modelGenerationFailed(QString, QString);
Chris@0 140 virtual void modelGenerationWarning(QString, QString);
Chris@0 141 virtual void modelRegenerationFailed(QString, QString, QString);
Chris@0 142 virtual void modelRegenerationWarning(QString, QString, QString);
Chris@0 143 virtual void alignmentFailed(QString, QString);
Chris@0 144
Chris@0 145 virtual void rightButtonMenuRequested(Pane *, QPoint point);
Chris@0 146
Chris@0 147 virtual void setupRecentFilesMenu();
Chris@0 148
Chris@0 149 virtual void handleOSCMessage(const OSCMessage &);
Chris@0 150
Chris@0 151 virtual void mouseEnteredWidget();
Chris@0 152 virtual void mouseLeftWidget();
Chris@0 153
Chris@0 154 virtual void website();
Chris@0 155 virtual void help();
Chris@0 156 virtual void about();
Chris@0 157 virtual void keyReference();
Chris@0 158
Chris@192 159 virtual void selectionChangedByUser();
Chris@192 160 virtual void regionOutlined(QRect);
Chris@164 161
Chris@0 162 protected:
Chris@6 163 Analyser *m_analyser;
Chris@0 164
Chris@6 165 Overview *m_overview;
Chris@6 166 Fader *m_fader;
Chris@6 167 AudioDial *m_playSpeed;
Chris@6 168 QPushButton *m_playSharpen;
Chris@6 169 QPushButton *m_playMono;
Chris@6 170 WaveformLayer *m_panLayer;
Chris@0 171
Chris@6 172 bool m_mainMenusCreated;
Chris@6 173 QMenu *m_playbackMenu;
Chris@6 174 QMenu *m_recentFilesMenu;
Chris@6 175 QMenu *m_rightButtonMenu;
Chris@6 176 QMenu *m_rightButtonPlaybackMenu;
Chris@0 177
Chris@6 178 QAction *m_deleteSelectedAction;
Chris@6 179 QAction *m_ffwdAction;
Chris@6 180 QAction *m_rwdAction;
gyorgyf@24 181 QAction *m_editSelectAction;
Chris@187 182 QAction *m_showCandidatesAction;
gyorgyf@45 183 QAction *m_toggleIntelligenceAction;
gyorgyf@45 184 bool m_intelligentActionOn; // GF: !!! temporary
Chris@128 185
Chris@144 186 QAction *m_showAudio;
Chris@145 187 QAction *m_showSpect;
Chris@144 188 QAction *m_showPitch;
Chris@144 189 QAction *m_showNotes;
Chris@144 190 QAction *m_playAudio;
Chris@144 191 QAction *m_playPitch;
Chris@144 192 QAction *m_playNotes;
Chris@158 193 AudioDial *m_gainAudio;
Chris@158 194 AudioDial *m_gainPitch;
Chris@158 195 AudioDial *m_gainNotes;
justin@160 196 AudioDial *m_panAudio;
justin@160 197 AudioDial *m_panPitch;
justin@160 198 AudioDial *m_panNotes;
Chris@144 199
Chris@128 200 QLabel *m_waveformStatus;
Chris@128 201 QLabel *m_pitchStatus;
Chris@128 202 QLabel *m_notesStatus;
gyorgyf@45 203
Chris@6 204 KeyReference *m_keyReference;
Chris@95 205 VersionTester *m_versionTester;
Chris@0 206
Chris@192 207 Analyser::FrequencyRange m_pendingConstraint;
Chris@192 208
Chris@85 209 QString exportToSVL(QString path, Layer *layer);
Chris@174 210 FileOpenStatus importPitchLayer(FileSource source);
Chris@85 211
Chris@0 212 virtual void setupMenus();
Chris@0 213 virtual void setupFileMenu();
Chris@0 214 virtual void setupEditMenu();
Chris@0 215 virtual void setupViewMenu();
Chris@0 216 virtual void setupHelpMenu();
Chris@0 217 virtual void setupToolbars();
Chris@0 218
Chris@142 219 virtual void octaveShift(bool up);
Chris@142 220
Chris@0 221 virtual void closeEvent(QCloseEvent *e);
Chris@0 222 bool checkSaveModified();
Chris@0 223
Chris@0 224 virtual void updateVisibleRangeDisplay(Pane *p) const;
Chris@0 225 virtual void updatePositionStatusDisplays() const;
Chris@0 226 };
Chris@0 227
Chris@0 228
Chris@0 229 #endif