annotate sv/main/MainWindow.h @ 135:9750e9c39e94

add getPlaySpeedVal() function
author lbajardsilogic
date Fri, 09 Nov 2007 09:57:22 +0000
parents 894b45c9b787
children 97fd6148fb8e
rev   line source
lbajardsilogic@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@0 2
lbajardsilogic@0 3 /*
lbajardsilogic@0 4 Sonic Visualiser
lbajardsilogic@0 5 An audio file viewer and annotation editor.
lbajardsilogic@0 6 Centre for Digital Music, Queen Mary, University of London.
lbajardsilogic@0 7 This file copyright 2006 Chris Cannam and QMUL.
lbajardsilogic@0 8
lbajardsilogic@0 9 This program is free software; you can redistribute it and/or
lbajardsilogic@0 10 modify it under the terms of the GNU General Public License as
lbajardsilogic@0 11 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@0 12 License, or (at your option) any later version. See the file
lbajardsilogic@0 13 COPYING included with this distribution for more information.
lbajardsilogic@0 14 */
lbajardsilogic@0 15
lbajardsilogic@0 16 #ifndef _MAIN_WINDOW_H_
lbajardsilogic@0 17 #define _MAIN_WINDOW_H_
lbajardsilogic@0 18
lbajardsilogic@0 19 #include <QFrame>
lbajardsilogic@0 20 #include <QString>
lbajardsilogic@0 21 #include <QUrl>
lbajardsilogic@0 22 #include <QMainWindow>
lbajardsilogic@0 23 #include <QPointer>
lbajardsilogic@2 24 #include <QTabWidget>
lbajardsilogic@35 25 #include <QStatusBar>
ivand_qmul@129 26 #include <time.h>
lbajardsilogic@0 27 #include "base/Command.h"
lbajardsilogic@0 28 #include "view/ViewManager.h"
lbajardsilogic@0 29 #include "base/PropertyContainer.h"
lbajardsilogic@0 30 #include "base/RecentFiles.h"
lbajardsilogic@0 31 #include "layer/LayerFactory.h"
lbajardsilogic@0 32 #include "transform/Transform.h"
lbajardsilogic@0 33 #include "document/SVFileReader.h"
lbajardsilogic@0 34 #include "data/fileio/FileFinder.h"
lbajardsilogic@10 35 #include "data/fileio/HttpClient.h"
lbajardsilogic@2 36 #include "widgets/WidgetGallery.h"
lbajardsilogic@21 37 #include "document/ESFileReader.h"
benoitrigolleau@66 38 #include "widgets/MultiPaneLayerContainer.h"
lbajardsilogic@2 39
ivand_qmul@122 40 //Ivan Damnjanovic 12/07/2007
ivand_qmul@122 41 #include "data/fileio/VideoFileReader.h"
ivand_qmul@122 42
lbajardsilogic@0 43 #include <map>
lbajardsilogic@0 44
lbajardsilogic@0 45 class Document;
lbajardsilogic@0 46 class PaneStack;
lbajardsilogic@0 47 class Pane;
lbajardsilogic@0 48 class View;
lbajardsilogic@0 49 class Fader;
lbajardsilogic@0 50 class Overview;
lbajardsilogic@0 51 class Layer;
lbajardsilogic@0 52 class WaveformLayer;
lbajardsilogic@0 53 class WaveFileModel;
lbajardsilogic@0 54 class AudioCallbackPlaySource;
lbajardsilogic@0 55 class AudioCallbackPlayTarget;
lbajardsilogic@0 56 class CommandHistory;
lbajardsilogic@0 57 class QMenu;
lbajardsilogic@0 58 class AudioDial;
lbajardsilogic@0 59 class QLabel;
lbajardsilogic@0 60 class QCheckBox;
lbajardsilogic@0 61 class PreferencesDialog;
lbajardsilogic@0 62 class QPushButton;
lbajardsilogic@0 63 class OSCQueue;
lbajardsilogic@0 64 class OSCMessage;
lbajardsilogic@2 65 class InfoWidget;
lbajardsilogic@2 66 class SearchWidget;
lbajardsilogic@2 67 class QueryResultsWidget;
lbajardsilogic@2 68 class AdvancedToolBox;
lbajardsilogic@21 69 class EasaierSessionManager;
lbajardsilogic@21 70 class QueryModel;
lbajardsilogic@79 71 class RealTimeFilterPropertyStack;
lbajardsilogic@101 72 class ExpandWidget;
lbajardsilogic@0 73
lbajardsilogic@0 74 class MainWindow : public QMainWindow
lbajardsilogic@0 75 {
lbajardsilogic@0 76 Q_OBJECT
lbajardsilogic@0 77
lbajardsilogic@0 78 public:
lbajardsilogic@0 79 MainWindow(bool withAudioOutput = true,
lbajardsilogic@0 80 bool withOSCSupport = true);
lbajardsilogic@0 81 virtual ~MainWindow();
lbajardsilogic@0 82
lbajardsilogic@0 83 enum AudioFileOpenMode {
lbajardsilogic@0 84 ReplaceMainModel,
lbajardsilogic@0 85 CreateAdditionalModel,
lbajardsilogic@0 86 AskUser
lbajardsilogic@0 87 };
lbajardsilogic@0 88
lbajardsilogic@0 89 enum FileOpenStatus {
lbajardsilogic@0 90 FileOpenSucceeded,
lbajardsilogic@0 91 FileOpenFailed,
lbajardsilogic@0 92 FileOpenCancelled
lbajardsilogic@0 93 };
lbajardsilogic@0 94
lbajardsilogic@21 95 enum TabName {
lbajardsilogic@21 96 Search,
lbajardsilogic@21 97 Result,
lbajardsilogic@21 98 Info,
benoitrigolleau@130 99 RelatedMedia,
benoitrigolleau@130 100 Video
lbajardsilogic@21 101 };
lbajardsilogic@21 102
lbajardsilogic@0 103 FileOpenStatus openSomeFile(QString path, AudioFileOpenMode = AskUser);
lbajardsilogic@0 104 FileOpenStatus openAudioFile(QString path, AudioFileOpenMode = AskUser);
ivand_qmul@122 105 // Ivan Damnjanovic 09-10/2007 added video file import
ivand_qmul@122 106 FileOpenStatus openVideoFile(QString path, AudioFileOpenMode = AskUser);
ivand_qmul@122 107 unsigned long Get_CurAudioTime();
ivand_qmul@129 108 unsigned long long Get_HardwareBufferTime();
ivand_qmul@122 109 bool isAudioPlaying();
ivand_qmul@122 110 //
lbajardsilogic@0 111 FileOpenStatus openLayerFile(QString path);
lbajardsilogic@0 112 FileOpenStatus openSessionFile(QString path);
lbajardsilogic@0 113 FileOpenStatus openURL(QUrl url);
lbajardsilogic@0 114
lbajardsilogic@0 115 bool saveSessionFile(QString path);
lbajardsilogic@0 116 bool commitData(bool mayAskUser); // on session shutdown
lbajardsilogic@0 117
lbajardsilogic@2 118 static MainWindow *instance();
lbajardsilogic@2 119
lbajardsilogic@21 120 QueryResultsWidget *getQueryResultsWidget();
lbajardsilogic@21 121
lbajardsilogic@21 122 bool openEasaierSessionFile(QString path);
lbajardsilogic@21 123 bool saveEasaierSessionFile(QString path);
lbajardsilogic@21 124
benoitrigolleau@130 125
benoitrigolleau@130 126 QWidget* getVideoWidget();
benoitrigolleau@130 127
lbajardsilogic@135 128 float inline getPlaySpeedVal() const { return m_playSpeedVal;}
benoitrigolleau@130 129
lbajardsilogic@0 130 signals:
lbajardsilogic@0 131 // Used to toggle the availability of menu actions
lbajardsilogic@0 132 void canAddPane(bool);
lbajardsilogic@0 133 void canDeleteCurrentPane(bool);
lbajardsilogic@0 134 void canAddLayer(bool);
lbajardsilogic@0 135 void canImportMoreAudio(bool);
lbajardsilogic@0 136 void canImportLayer(bool);
lbajardsilogic@0 137 void canExportAudio(bool);
lbajardsilogic@0 138 void canExportLayer(bool);
lbajardsilogic@0 139 void canExportImage(bool);
lbajardsilogic@0 140 void canRenameLayer(bool);
lbajardsilogic@0 141 void canEditLayer(bool);
lbajardsilogic@0 142 void canSelect(bool);
lbajardsilogic@0 143 void canClearSelection(bool);
lbajardsilogic@0 144 void canEditSelection(bool);
lbajardsilogic@0 145 void canPaste(bool);
lbajardsilogic@0 146 void canInsertInstant(bool);
lbajardsilogic@0 147 void canInsertInstantsAtBoundaries(bool);
lbajardsilogic@0 148 void canDeleteCurrentLayer(bool);
lbajardsilogic@0 149 void canZoom(bool);
lbajardsilogic@0 150 void canScroll(bool);
lbajardsilogic@0 151 void canPlay(bool);
lbajardsilogic@0 152 void canFfwd(bool);
lbajardsilogic@0 153 void canRewind(bool);
lbajardsilogic@0 154 void canPlaySelection(bool);
lbajardsilogic@0 155 void canSave(bool);
benoitrigolleau@66 156 void newCurrentPane(Pane *pane);
lbajardsilogic@0 157
lbajardsilogic@79 158 void canAddFilter(bool);
lbajardsilogic@79 159
lbajardsilogic@0 160 public slots:
lbajardsilogic@0 161 void preferenceChanged(PropertyContainer::PropertyName);
lbajardsilogic@0 162
lbajardsilogic@0 163 protected slots:
lbajardsilogic@0 164 void openSession();
lbajardsilogic@0 165 void importAudio();
lbajardsilogic@0 166 void importMoreAudio();
ivand_qmul@122 167 // Ivan Damnjanovic 09-10/2007 added video file import
ivand_qmul@122 168 void importVideo();
ivand_qmul@122 169 // Ivan Damnjanovic 09-10/2007 added video file import
lbajardsilogic@0 170 void openSomething();
lbajardsilogic@0 171 void openLocation();
lbajardsilogic@0 172 void openRecentFile();
lbajardsilogic@0 173 void exportAudio();
lbajardsilogic@0 174 void importLayer();
lbajardsilogic@0 175 void exportLayer();
lbajardsilogic@0 176 void exportImage();
lbajardsilogic@0 177 void saveSession();
lbajardsilogic@0 178 void saveSessionAs();
lbajardsilogic@0 179 void newSession();
lbajardsilogic@0 180 void closeSession();
lbajardsilogic@0 181 void preferences();
lbajardsilogic@0 182
lbajardsilogic@0 183 void zoomIn();
lbajardsilogic@0 184 void zoomOut();
lbajardsilogic@0 185 void zoomToFit();
lbajardsilogic@0 186 void zoomDefault();
lbajardsilogic@0 187 void scrollLeft();
lbajardsilogic@0 188 void scrollRight();
lbajardsilogic@0 189 void jumpLeft();
lbajardsilogic@0 190 void jumpRight();
lbajardsilogic@0 191
lbajardsilogic@0 192 void showNoOverlays();
lbajardsilogic@0 193 void showMinimalOverlays();
lbajardsilogic@0 194 void showStandardOverlays();
lbajardsilogic@0 195 void showAllOverlays();
lbajardsilogic@0 196
lbajardsilogic@0 197 void toggleZoomWheels();
lbajardsilogic@0 198 void togglePropertyBoxes();
lbajardsilogic@0 199 void toggleStatusBar();
lbajardsilogic@0 200
lbajardsilogic@0 201 void play();
lbajardsilogic@0 202 void ffwd();
lbajardsilogic@0 203 void ffwdEnd();
lbajardsilogic@0 204 void rewind();
lbajardsilogic@0 205 void rewindStart();
lbajardsilogic@0 206 void stop();
lbajardsilogic@0 207
lbajardsilogic@0 208 void addPane();
lbajardsilogic@0 209 void addLayer();
lbajardsilogic@0 210 void deleteCurrentPane();
lbajardsilogic@0 211 void renameCurrentLayer();
lbajardsilogic@0 212 void deleteCurrentLayer();
lbajardsilogic@0 213
lbajardsilogic@79 214 void addFilter();
lbajardsilogic@79 215 void removeFilter(QString);
lbajardsilogic@79 216
lbajardsilogic@0 217 void playLoopToggled();
lbajardsilogic@0 218 void playSelectionToggled();
lbajardsilogic@127 219 void playSpeedChanged(float);
lbajardsilogic@127 220 //void playSharpenToggled();
lbajardsilogic@127 221 //void playMonoToggled();
lbajardsilogic@0 222 void sampleRateMismatch(size_t, size_t, bool);
lbajardsilogic@0 223 void audioOverloadPluginDisabled();
lbajardsilogic@0 224
lbajardsilogic@0 225 void playbackFrameChanged(unsigned long);
lbajardsilogic@0 226 void globalCentreFrameChanged(unsigned long);
lbajardsilogic@0 227 void viewCentreFrameChanged(View *, unsigned long);
lbajardsilogic@0 228 void viewZoomLevelChanged(View *, unsigned long, bool);
lbajardsilogic@0 229 void outputLevelsChanged(float, float);
lbajardsilogic@0 230
lbajardsilogic@0 231 void currentPaneChanged(Pane *);
lbajardsilogic@0 232 void currentLayerChanged(Pane *, Layer *);
lbajardsilogic@0 233
lbajardsilogic@0 234 void toolNavigateSelected();
lbajardsilogic@0 235 void toolSelectSelected();
lbajardsilogic@0 236 void toolEditSelected();
lbajardsilogic@0 237 void toolDrawSelected();
lbajardsilogic@0 238
lbajardsilogic@0 239 void selectAll();
lbajardsilogic@0 240 void selectToStart();
lbajardsilogic@0 241 void selectToEnd();
lbajardsilogic@0 242 void selectVisible();
lbajardsilogic@0 243 void clearSelection();
lbajardsilogic@0 244 void cut();
lbajardsilogic@0 245 void copy();
lbajardsilogic@0 246 void paste();
lbajardsilogic@0 247 void deleteSelected();
lbajardsilogic@0 248 void insertInstant();
lbajardsilogic@0 249 void insertInstantAt(size_t);
lbajardsilogic@0 250 void insertInstantsAtBoundaries();
lbajardsilogic@0 251
lbajardsilogic@0 252 void documentModified();
lbajardsilogic@0 253 void documentRestored();
lbajardsilogic@0 254
lbajardsilogic@0 255 void updateMenuStates();
lbajardsilogic@0 256 void updateDescriptionLabel();
lbajardsilogic@0 257
lbajardsilogic@0 258 void layerAdded(Layer *);
lbajardsilogic@0 259 void layerRemoved(Layer *);
lbajardsilogic@0 260 void layerAboutToBeDeleted(Layer *);
lbajardsilogic@0 261 void layerInAView(Layer *, bool);
lbajardsilogic@0 262
lbajardsilogic@0 263 void mainModelChanged(WaveFileModel *);
lbajardsilogic@0 264 void modelAdded(Model *);
lbajardsilogic@0 265 void modelAboutToBeDeleted(Model *);
lbajardsilogic@0 266
lbajardsilogic@0 267 void modelGenerationFailed(QString);
lbajardsilogic@0 268 void modelRegenerationFailed(QString, QString);
lbajardsilogic@0 269
lbajardsilogic@0 270 void rightButtonMenuRequested(Pane *, QPoint point);
lbajardsilogic@0 271
lbajardsilogic@0 272 void propertyStacksResized();
lbajardsilogic@0 273
lbajardsilogic@0 274 void setupRecentFilesMenu();
lbajardsilogic@0 275 void setupRecentTransformsMenu();
lbajardsilogic@0 276
lbajardsilogic@0 277 void showLayerTree();
lbajardsilogic@0 278
lbajardsilogic@0 279 void pollOSC();
lbajardsilogic@0 280 void handleOSCMessage(const OSCMessage &);
lbajardsilogic@0 281
lbajardsilogic@0 282 void mouseEnteredWidget();
lbajardsilogic@0 283 void mouseLeftWidget();
lbajardsilogic@0 284 void contextHelpChanged(const QString &);
lbajardsilogic@0 285 void inProgressSelectionChanged();
lbajardsilogic@0 286
lbajardsilogic@0 287 void website();
lbajardsilogic@0 288 void help();
lbajardsilogic@0 289 void about();
lbajardsilogic@0 290
lbajardsilogic@21 291 void newEasaierSession();
lbajardsilogic@21 292 void openEasaierSession();
lbajardsilogic@21 293 void saveEasaierSession();
lbajardsilogic@21 294 void saveEasaierSessionAs();
lbajardsilogic@21 295 void importEasaierLayer(const QString& filename);
lbajardsilogic@21 296 void importEasaierFile(const QString& filename);
lbajardsilogic@21 297
lbajardsilogic@10 298 void connectionSettings();
lbajardsilogic@2 299 void styleSetting();
lbajardsilogic@2 300
lbajardsilogic@21 301 void queryModelLoaded(QueryModel* queryModel);
lbajardsilogic@21 302
lbajardsilogic@21 303 void audioSourceInfoAdded(AudioSourceInfoModel *);
lbajardsilogic@21 304
lbajardsilogic@21 305 void queryDatabase();
lbajardsilogic@21 306
lbajardsilogic@10 307 void exit();
lbajardsilogic@10 308
lbajardsilogic@0 309 protected:
benoitrigolleau@130 310 QWidget *m_videoWidget;
lbajardsilogic@0 311 QString m_sessionFile;
lbajardsilogic@0 312 QString m_audioFile;
ivand_qmul@122 313 // Ivan Damnjanovic 09-10/2007 added video file import
ivand_qmul@122 314 QString m_videoFile;
ivand_qmul@122 315 //
ivand_qmul@122 316 Document *m_document;
lbajardsilogic@0 317
lbajardsilogic@0 318 QLabel *m_descriptionLabel;
lbajardsilogic@0 319 PaneStack *m_paneStack;
lbajardsilogic@0 320 ViewManager *m_viewManager;
lbajardsilogic@0 321 Overview *m_overview;
lbajardsilogic@0 322 Fader *m_fader;
lbajardsilogic@127 323 //AudioDial *m_playSpeed;
lbajardsilogic@127 324 //QPushButton *m_playSharpen;
lbajardsilogic@127 325 //QPushButton *m_playMono;
lbajardsilogic@0 326 WaveformLayer *m_panLayer;
lbajardsilogic@0 327 Layer *m_timeRulerLayer;
lbajardsilogic@0 328
lbajardsilogic@0 329 bool m_audioOutput;
lbajardsilogic@0 330 AudioCallbackPlaySource *m_playSource;
lbajardsilogic@0 331 AudioCallbackPlayTarget *m_playTarget;
lbajardsilogic@0 332
lbajardsilogic@0 333 OSCQueue *m_oscQueue;
lbajardsilogic@0 334
lbajardsilogic@0 335 RecentFiles m_recentFiles;
lbajardsilogic@0 336 RecentFiles m_recentTransforms;
lbajardsilogic@0 337
lbajardsilogic@0 338 bool m_mainMenusCreated;
lbajardsilogic@0 339 QMenu *m_paneMenu;
lbajardsilogic@0 340 QMenu *m_layerMenu;
lbajardsilogic@0 341 QMenu *m_transformsMenu;
lbajardsilogic@0 342 QMenu *m_existingLayersMenu;
lbajardsilogic@0 343 QMenu *m_sliceMenu;
lbajardsilogic@0 344 QMenu *m_recentFilesMenu;
lbajardsilogic@0 345 QMenu *m_recentTransformsMenu;
lbajardsilogic@0 346 QMenu *m_rightButtonMenu;
lbajardsilogic@0 347 QMenu *m_rightButtonLayerMenu;
lbajardsilogic@0 348 QMenu *m_rightButtonTransformsMenu;
lbajardsilogic@0 349
lbajardsilogic@0 350 bool m_documentModified;
lbajardsilogic@0 351 bool m_openingAudioFile;
lbajardsilogic@0 352 bool m_abandoning;
lbajardsilogic@0 353
lbajardsilogic@0 354 int m_lastPlayStatusSec;
lbajardsilogic@0 355 mutable QString m_myStatusMessage;
lbajardsilogic@0 356
lbajardsilogic@0 357 QPointer<PreferencesDialog> m_preferencesDialog;
lbajardsilogic@0 358
lbajardsilogic@0 359 WaveFileModel *getMainModel();
lbajardsilogic@0 360 const WaveFileModel *getMainModel() const;
lbajardsilogic@0 361 void createDocument();
lbajardsilogic@0 362
lbajardsilogic@0 363 struct PaneConfiguration {
lbajardsilogic@0 364 PaneConfiguration(LayerFactory::LayerType _layer
lbajardsilogic@0 365 = LayerFactory::TimeRuler,
lbajardsilogic@0 366 Model *_source = 0,
lbajardsilogic@0 367 int _channel = -1) :
lbajardsilogic@0 368 layer(_layer), sourceModel(_source), channel(_channel) { }
lbajardsilogic@0 369 LayerFactory::LayerType layer;
lbajardsilogic@0 370 Model *sourceModel;
lbajardsilogic@0 371 int channel;
lbajardsilogic@0 372 };
lbajardsilogic@0 373
lbajardsilogic@0 374 typedef std::map<QAction *, PaneConfiguration> PaneActionMap;
lbajardsilogic@0 375 PaneActionMap m_paneActions;
lbajardsilogic@0 376
lbajardsilogic@0 377 typedef std::map<QAction *, TransformId> TransformActionMap;
lbajardsilogic@0 378 TransformActionMap m_transformActions;
lbajardsilogic@0 379
lbajardsilogic@0 380 typedef std::map<TransformId, QAction *> TransformActionReverseMap;
lbajardsilogic@0 381 TransformActionReverseMap m_transformActionsReverse;
lbajardsilogic@0 382
lbajardsilogic@0 383 typedef std::map<QAction *, LayerFactory::LayerType> LayerActionMap;
lbajardsilogic@0 384 LayerActionMap m_layerActions;
lbajardsilogic@0 385
lbajardsilogic@0 386 typedef std::map<QAction *, Layer *> ExistingLayerActionMap;
lbajardsilogic@0 387 ExistingLayerActionMap m_existingLayerActions;
lbajardsilogic@0 388 ExistingLayerActionMap m_sliceActions;
lbajardsilogic@0 389
lbajardsilogic@0 390 typedef std::map<ViewManager::ToolMode, QAction *> ToolActionMap;
lbajardsilogic@0 391 ToolActionMap m_toolActions;
lbajardsilogic@0 392
lbajardsilogic@0 393 void setupMenus();
lbajardsilogic@0 394 void setupFileMenu();
lbajardsilogic@21 395 void setupEasaierMenu();
lbajardsilogic@0 396 void setupEditMenu();
lbajardsilogic@2 397 void setupSettingMenu();
lbajardsilogic@0 398 void setupViewMenu();
lbajardsilogic@0 399 void setupPaneAndLayerMenus();
lbajardsilogic@0 400 void setupTransformsMenu();
lbajardsilogic@79 401 void setupFiltersMenu();
lbajardsilogic@79 402 void setupHelpMenu();
lbajardsilogic@0 403 void setupExistingLayersMenus();
lbajardsilogic@0 404 void setupToolbars();
lbajardsilogic@0 405
lbajardsilogic@0 406 Pane *addPaneToStack();
lbajardsilogic@0 407
lbajardsilogic@0 408 void addPane(const PaneConfiguration &configuration, QString text);
lbajardsilogic@0 409
lbajardsilogic@21 410 class PaneCallback : public SVFileReaderPaneCallback , public ESFileReaderPaneCallback
lbajardsilogic@0 411 {
lbajardsilogic@0 412 public:
lbajardsilogic@0 413 PaneCallback(MainWindow *mw) : m_mw(mw) { }
lbajardsilogic@0 414 virtual Pane *addPane() { return m_mw->addPaneToStack(); }
lbajardsilogic@0 415 virtual void setWindowSize(int width, int height) {
lbajardsilogic@0 416 m_mw->resize(width, height);
lbajardsilogic@0 417 }
lbajardsilogic@0 418 virtual void addSelection(int start, int end) {
lbajardsilogic@0 419 m_mw->m_viewManager->addSelection(Selection(start, end));
lbajardsilogic@0 420 }
lbajardsilogic@0 421 protected:
lbajardsilogic@0 422 MainWindow *m_mw;
lbajardsilogic@0 423 };
lbajardsilogic@0 424
lbajardsilogic@0 425 class AddPaneCommand : public Command
lbajardsilogic@0 426 {
lbajardsilogic@0 427 public:
lbajardsilogic@0 428 AddPaneCommand(MainWindow *mw);
lbajardsilogic@0 429 virtual ~AddPaneCommand();
lbajardsilogic@0 430
lbajardsilogic@0 431 virtual void execute();
lbajardsilogic@0 432 virtual void unexecute();
lbajardsilogic@0 433 virtual QString getName() const;
lbajardsilogic@0 434
lbajardsilogic@0 435 Pane *getPane() { return m_pane; }
lbajardsilogic@0 436
lbajardsilogic@0 437 protected:
lbajardsilogic@0 438 MainWindow *m_mw;
lbajardsilogic@0 439 Pane *m_pane; // Main window owns this, but I determine its lifespan
lbajardsilogic@0 440 Pane *m_prevCurrentPane; // I don't own this
lbajardsilogic@0 441 bool m_added;
lbajardsilogic@0 442 };
lbajardsilogic@0 443
lbajardsilogic@0 444 class RemovePaneCommand : public Command
lbajardsilogic@0 445 {
lbajardsilogic@0 446 public:
lbajardsilogic@0 447 RemovePaneCommand(MainWindow *mw, Pane *pane);
lbajardsilogic@0 448 virtual ~RemovePaneCommand();
lbajardsilogic@0 449
lbajardsilogic@0 450 virtual void execute();
lbajardsilogic@0 451 virtual void unexecute();
lbajardsilogic@0 452 virtual QString getName() const;
lbajardsilogic@0 453
lbajardsilogic@0 454 protected:
lbajardsilogic@0 455 MainWindow *m_mw;
lbajardsilogic@0 456 Pane *m_pane; // Main window owns this, but I determine its lifespan
lbajardsilogic@0 457 Pane *m_prevCurrentPane; // I don't own this
lbajardsilogic@0 458 bool m_added;
lbajardsilogic@0 459 };
lbajardsilogic@0 460
lbajardsilogic@0 461 virtual void closeEvent(QCloseEvent *e);
lbajardsilogic@0 462 bool checkSaveModified();
lbajardsilogic@0 463
lbajardsilogic@0 464 FileOpenStatus openSomeFile(QString path, QString location,
lbajardsilogic@0 465 AudioFileOpenMode = AskUser);
lbajardsilogic@0 466 FileOpenStatus openAudioFile(QString path, QString location,
lbajardsilogic@0 467 AudioFileOpenMode = AskUser);
ivand_qmul@122 468 // Ivan Damnjanovic 09-10/2007 added video file import
ivand_qmul@122 469 FileOpenStatus openVideoFile(QString path, QString location,
ivand_qmul@122 470 AudioFileOpenMode = AskUser);
ivand_qmul@122 471 //
lbajardsilogic@0 472 FileOpenStatus openLayerFile(QString path, QString location);
lbajardsilogic@0 473 FileOpenStatus openSessionFile(QString path, QString location);
lbajardsilogic@0 474
lbajardsilogic@0 475 QString getOpenFileName(FileFinder::FileType type);
lbajardsilogic@0 476 QString getSaveFileName(FileFinder::FileType type);
lbajardsilogic@0 477 void registerLastOpenedFilePath(FileFinder::FileType type, QString path);
lbajardsilogic@0 478
lbajardsilogic@0 479 void createPlayTarget();
lbajardsilogic@0 480
lbajardsilogic@0 481 void openHelpUrl(QString url);
lbajardsilogic@0 482
lbajardsilogic@0 483 void updateVisibleRangeDisplay(Pane *p) const;
lbajardsilogic@0 484
lbajardsilogic@0 485 void toXml(QTextStream &stream);
lbajardsilogic@21 486 void toEasaierXml(QTextStream &stream);
lbajardsilogic@2 487
lbajardsilogic@10 488 bool saveConfigFile();
lbajardsilogic@10 489
lbajardsilogic@2 490 static MainWindow *m_instance;
lbajardsilogic@101 491
lbajardsilogic@101 492 ExpandWidget *m_leftExpandWidget;
lbajardsilogic@101 493 ExpandWidget *m_rightExpandWidget;
lbajardsilogic@101 494
lbajardsilogic@2 495 InfoWidget *m_infoWidget;
lbajardsilogic@2 496 SearchWidget *m_searchWidget;
lbajardsilogic@2 497 QueryResultsWidget *m_resultsWidget;
lbajardsilogic@2 498
lbajardsilogic@2 499 QTabWidget *m_qtabwidget;
lbajardsilogic@2 500
lbajardsilogic@2 501 AdvancedToolBox *m_toolBox;
lbajardsilogic@2 502
lbajardsilogic@2 503 WidgetGallery m_gallery;
lbajardsilogic@2 504
lbajardsilogic@10 505 HttpClient *m_httpClient;
lbajardsilogic@21 506
lbajardsilogic@21 507 EasaierSessionManager *m_EasaierManager;
lbajardsilogic@21 508
benoitrigolleau@66 509 MultiPaneLayerContainer *m_multiPaneLayerContainer;
benoitrigolleau@66 510
lbajardsilogic@79 511 RealTimeFilterPropertyStack *m_filterPropertyStack;
lbajardsilogic@79 512
benoitrigolleau@66 513 private:
benoitrigolleau@66 514 void createMultiPaneLayerContainer();
benoitrigolleau@66 515
lbajardsilogic@135 516 float m_playSpeedVal;
lbajardsilogic@135 517
lbajardsilogic@0 518 };
lbajardsilogic@0 519
lbajardsilogic@0 520
lbajardsilogic@0 521 #endif