Chris@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@0: Chris@0: /* Chris@0: Tony Chris@0: An intonation analysis and annotation tool Chris@0: Centre for Digital Music, Queen Mary, University of London. Chris@0: This file copyright 2006-2012 Chris Cannam and QMUL. Chris@0: Chris@0: This program is free software; you can redistribute it and/or Chris@0: modify it under the terms of the GNU General Public License as Chris@0: published by the Free Software Foundation; either version 2 of the Chris@0: License, or (at your option) any later version. See the file Chris@0: COPYING included with this distribution for more information. Chris@0: */ Chris@0: Chris@0: #ifndef _MAIN_WINDOW_H_ Chris@0: #define _MAIN_WINDOW_H_ Chris@0: Chris@0: #include "framework/MainWindowBase.h" Chris@0: Chris@6: class Analyser; Chris@95: class VersionTester; Chris@6: Chris@0: class MainWindow : public MainWindowBase Chris@0: { Chris@0: Q_OBJECT Chris@0: Chris@0: public: Chris@0: MainWindow(bool withAudioOutput = true, Chris@0: bool withOSCSupport = true); Chris@0: virtual ~MainWindow(); Chris@0: Chris@0: public slots: Chris@0: virtual bool commitData(bool mayAskUser); // on session shutdown Chris@0: Chris@0: protected slots: Chris@0: virtual void openFile(); Chris@0: virtual void openLocation(); Chris@0: virtual void openRecentFile(); Chris@0: virtual void saveSession(); Chris@0: virtual void saveSessionAs(); Chris@85: virtual void exportPitchLayer(); Chris@85: virtual void exportNoteLayer(); Chris@0: virtual void newSession(); Chris@0: virtual void closeSession(); Chris@0: Chris@0: virtual void renameCurrentLayer(); Chris@0: Chris@70: virtual void toolNavigateSelected(); Chris@70: virtual void toolEditSelected(); Chris@70: virtual void toolFreeEditSelected(); Chris@70: Chris@0: virtual void paneAdded(Pane *); Chris@0: virtual void paneHidden(Pane *); Chris@0: virtual void paneAboutToBeDeleted(Pane *); Chris@0: Chris@0: virtual void paneDropAccepted(Pane *, QStringList); Chris@0: virtual void paneDropAccepted(Pane *, QString); Chris@0: Chris@0: virtual void playSpeedChanged(int); Chris@0: virtual void playSharpenToggled(); Chris@0: virtual void playMonoToggled(); Chris@0: Chris@0: virtual void speedUpPlayback(); Chris@0: virtual void slowDownPlayback(); Chris@0: virtual void restoreNormalPlayback(); Chris@0: Chris@0: virtual void sampleRateMismatch(size_t, size_t, bool); Chris@0: virtual void audioOverloadPluginDisabled(); Chris@0: virtual void audioTimeStretchMultiChannelDisabled(); Chris@0: Chris@0: virtual void outputLevelsChanged(float, float); Chris@0: Chris@0: virtual void documentModified(); Chris@0: virtual void documentRestored(); Chris@0: Chris@0: virtual void updateMenuStates(); Chris@0: virtual void updateDescriptionLabel(); Chris@0: Chris@0: virtual void layerRemoved(Layer *); Chris@0: virtual void layerInAView(Layer *, bool); Chris@0: Chris@0: virtual void mainModelChanged(WaveFileModel *); Chris@0: virtual void modelAdded(Model *); Chris@0: virtual void modelAboutToBeDeleted(Model *); Chris@0: Chris@0: virtual void modelGenerationFailed(QString, QString); Chris@0: virtual void modelGenerationWarning(QString, QString); Chris@0: virtual void modelRegenerationFailed(QString, QString, QString); Chris@0: virtual void modelRegenerationWarning(QString, QString, QString); Chris@0: virtual void alignmentFailed(QString, QString); Chris@0: Chris@0: virtual void rightButtonMenuRequested(Pane *, QPoint point); Chris@0: Chris@0: virtual void setupRecentFilesMenu(); Chris@0: Chris@0: virtual void handleOSCMessage(const OSCMessage &); Chris@0: Chris@0: virtual void mouseEnteredWidget(); Chris@0: virtual void mouseLeftWidget(); Chris@0: Chris@0: virtual void website(); Chris@0: virtual void help(); Chris@0: virtual void about(); Chris@0: virtual void keyReference(); Chris@0: Chris@0: protected: Chris@6: Analyser *m_analyser; Chris@0: Chris@6: Overview *m_overview; Chris@6: Fader *m_fader; Chris@6: AudioDial *m_playSpeed; Chris@6: QPushButton *m_playSharpen; Chris@6: QPushButton *m_playMono; Chris@6: WaveformLayer *m_panLayer; Chris@0: Chris@6: bool m_mainMenusCreated; Chris@6: QMenu *m_playbackMenu; Chris@6: QMenu *m_recentFilesMenu; Chris@6: QMenu *m_rightButtonMenu; Chris@6: QMenu *m_rightButtonPlaybackMenu; Chris@0: Chris@6: QAction *m_deleteSelectedAction; Chris@6: QAction *m_ffwdAction; Chris@6: QAction *m_rwdAction; gyorgyf@24: QAction *m_editSelectAction; gyorgyf@45: QAction *m_toggleIntelligenceAction; gyorgyf@45: bool m_intelligentActionOn; // GF: !!! temporary gyorgyf@45: Chris@6: KeyReference *m_keyReference; Chris@95: VersionTester *m_versionTester; Chris@0: Chris@85: QString exportToSVL(QString path, Layer *layer); Chris@85: Chris@0: virtual void setupMenus(); Chris@0: virtual void setupFileMenu(); Chris@0: virtual void setupEditMenu(); Chris@0: virtual void setupViewMenu(); Chris@0: virtual void setupHelpMenu(); Chris@0: virtual void setupToolbars(); Chris@0: Chris@0: virtual void closeEvent(QCloseEvent *e); Chris@0: bool checkSaveModified(); Chris@0: Chris@0: virtual void updateVisibleRangeDisplay(Pane *p) const; Chris@0: virtual void updatePositionStatusDisplays() const; Chris@0: }; Chris@0: Chris@0: Chris@0: #endif