annotate src/MainWindow.h @ 70:5310637392f6

Revert to using three separate tool modes (more like SV). This is less like the proposed design for Tony but better than the previous situation with two incomprehensible toggle buttons.
author Chris Cannam
date Tue, 26 Nov 2013 16:59:31 +0000
parents f4ee3c11eba9
children 081202998535
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@0 20
Chris@6 21 class Analyser;
Chris@6 22
Chris@0 23 class MainWindow : public MainWindowBase
Chris@0 24 {
Chris@0 25 Q_OBJECT
Chris@0 26
Chris@0 27 public:
Chris@0 28 MainWindow(bool withAudioOutput = true,
Chris@0 29 bool withOSCSupport = true);
Chris@0 30 virtual ~MainWindow();
Chris@0 31
Chris@0 32 public slots:
Chris@0 33 virtual bool commitData(bool mayAskUser); // on session shutdown
Chris@0 34
Chris@0 35 protected slots:
Chris@0 36 virtual void openFile();
Chris@0 37 virtual void openLocation();
Chris@0 38 virtual void openRecentFile();
Chris@0 39 virtual void saveSession();
Chris@0 40 virtual void saveSessionAs();
matthiasm@26 41 virtual void exportLayer();
Chris@0 42 virtual void newSession();
Chris@0 43 virtual void closeSession();
Chris@0 44
Chris@0 45 virtual void renameCurrentLayer();
Chris@0 46
Chris@70 47 virtual void toolNavigateSelected();
Chris@70 48 virtual void toolEditSelected();
Chris@70 49 virtual void toolFreeEditSelected();
Chris@70 50
Chris@0 51 virtual void paneAdded(Pane *);
Chris@0 52 virtual void paneHidden(Pane *);
Chris@0 53 virtual void paneAboutToBeDeleted(Pane *);
Chris@0 54
Chris@0 55 virtual void paneDropAccepted(Pane *, QStringList);
Chris@0 56 virtual void paneDropAccepted(Pane *, QString);
Chris@0 57
Chris@0 58 virtual void playSpeedChanged(int);
Chris@0 59 virtual void playSharpenToggled();
Chris@0 60 virtual void playMonoToggled();
Chris@0 61
Chris@0 62 virtual void speedUpPlayback();
Chris@0 63 virtual void slowDownPlayback();
Chris@0 64 virtual void restoreNormalPlayback();
Chris@0 65
Chris@0 66 virtual void sampleRateMismatch(size_t, size_t, bool);
Chris@0 67 virtual void audioOverloadPluginDisabled();
Chris@0 68 virtual void audioTimeStretchMultiChannelDisabled();
Chris@0 69
Chris@0 70 virtual void outputLevelsChanged(float, float);
Chris@0 71
Chris@0 72 virtual void documentModified();
Chris@0 73 virtual void documentRestored();
Chris@0 74
Chris@0 75 virtual void updateMenuStates();
Chris@0 76 virtual void updateDescriptionLabel();
Chris@0 77
Chris@0 78 virtual void layerRemoved(Layer *);
Chris@0 79 virtual void layerInAView(Layer *, bool);
Chris@0 80
Chris@0 81 virtual void mainModelChanged(WaveFileModel *);
Chris@0 82 virtual void modelAdded(Model *);
Chris@0 83 virtual void modelAboutToBeDeleted(Model *);
Chris@0 84
Chris@0 85 virtual void modelGenerationFailed(QString, QString);
Chris@0 86 virtual void modelGenerationWarning(QString, QString);
Chris@0 87 virtual void modelRegenerationFailed(QString, QString, QString);
Chris@0 88 virtual void modelRegenerationWarning(QString, QString, QString);
Chris@0 89 virtual void alignmentFailed(QString, QString);
Chris@0 90
Chris@0 91 virtual void rightButtonMenuRequested(Pane *, QPoint point);
Chris@0 92
Chris@0 93 virtual void setupRecentFilesMenu();
Chris@0 94
Chris@0 95 virtual void handleOSCMessage(const OSCMessage &);
Chris@0 96
Chris@0 97 virtual void mouseEnteredWidget();
Chris@0 98 virtual void mouseLeftWidget();
Chris@0 99
Chris@0 100 virtual void website();
Chris@0 101 virtual void help();
Chris@0 102 virtual void about();
Chris@0 103 virtual void keyReference();
Chris@0 104
Chris@0 105 protected:
Chris@6 106 Analyser *m_analyser;
Chris@0 107
Chris@6 108 Overview *m_overview;
Chris@6 109 Fader *m_fader;
Chris@6 110 AudioDial *m_playSpeed;
Chris@6 111 QPushButton *m_playSharpen;
Chris@6 112 QPushButton *m_playMono;
Chris@6 113 WaveformLayer *m_panLayer;
Chris@0 114
Chris@6 115 bool m_mainMenusCreated;
Chris@6 116 QMenu *m_playbackMenu;
Chris@6 117 QMenu *m_recentFilesMenu;
Chris@6 118 QMenu *m_rightButtonMenu;
Chris@6 119 QMenu *m_rightButtonPlaybackMenu;
Chris@0 120
Chris@6 121 QAction *m_deleteSelectedAction;
Chris@6 122 QAction *m_ffwdAction;
Chris@6 123 QAction *m_rwdAction;
gyorgyf@24 124 QAction *m_editSelectAction;
gyorgyf@45 125 QAction *m_toggleIntelligenceAction;
gyorgyf@45 126 bool m_intelligentActionOn; // GF: !!! temporary
gyorgyf@45 127
Chris@6 128 KeyReference *m_keyReference;
Chris@0 129
Chris@0 130 virtual void setupMenus();
Chris@0 131 virtual void setupFileMenu();
Chris@0 132 virtual void setupEditMenu();
Chris@0 133 virtual void setupViewMenu();
Chris@0 134 virtual void setupHelpMenu();
Chris@0 135 virtual void setupToolbars();
Chris@0 136
Chris@0 137 virtual void closeEvent(QCloseEvent *e);
Chris@0 138 bool checkSaveModified();
Chris@0 139
Chris@0 140 virtual void configureNewPane(Pane *p);
Chris@0 141 virtual void updateVisibleRangeDisplay(Pane *p) const;
Chris@0 142 virtual void updatePositionStatusDisplays() const;
Chris@0 143 };
Chris@0 144
Chris@0 145
Chris@0 146 #endif