Mercurial > hg > easaier-soundaccess
diff sv/main/MainWindow.cpp @ 217:c24fafc45d50
add the lock and unlock window
author | benoitrigolleau |
---|---|
date | Thu, 07 Feb 2008 15:17:13 +0000 |
parents | c4e897bf012b |
children | e8175839a5ac |
line wrap: on
line diff
--- a/sv/main/MainWindow.cpp Thu Feb 07 15:15:52 2008 +0000 +++ b/sv/main/MainWindow.cpp Thu Feb 07 15:17:13 2008 +0000 @@ -50,7 +50,6 @@ #include "widgets/ConnectionStatus.h" #include "widgets/LayerViewerWidget.h" - #include "audioio/AudioCallbackPlaySource.h" #include "audioio/AudioCallbackPlayTarget.h" #include "audioio/AudioTargetFactory.h" @@ -153,7 +152,8 @@ m_abandoning(false), m_preferencesDialog(0), m_playSpeedVal(1), - m_curSender(0) + m_curSender(0), + m_nbLock(0) { m_videoWidget = 0; @@ -391,9 +391,13 @@ connect(m_EasaierManager, SIGNAL(queryModelLoaded(QueryModel*)), this, SLOT(queryModelLoaded(QueryModel*))); + connect(m_EasaierManager, SIGNAL(audioFileLoaded()), this, SLOT(audioFileLoaded())); + connect(m_EasaierManager, SIGNAL(audioFileLoaded()), + this, SLOT(unlockWindow())); + setupMenus(); setupToolbars(); @@ -402,6 +406,63 @@ newEasaierSession(); } + +void MainWindow::lockWindow(){ + //lock the menu + QWidget *menu = this->menuWidget(); + if(menu){ + menu->setEnabled(false); + } + + // lock the toolbar + for(int i=0; i< m_toolBarVector.count();i++){ + m_toolBarVectorValues.append(m_toolBarVector[i]->isEnabled()); + m_toolBarVector[i]->setEnabled(false); + } + + //lock the central widget + + QWidget *centralWidget = this->centralWidget(); + if(centralWidget){ + QLayout *centralLayout = centralWidget->layout(); + if(centralLayout){ + m_waitwidget = new WaitingWidget; + m_waitwidget->setAnimation(true); + ((QGridLayout*) centralLayout)->addWidget(m_waitwidget , 0,0); + m_waitwidget->setGeometry(-20,-20,100,100); + } + } + m_nbLock++; +} + +void MainWindow::unlockWindow(){ + m_nbLock--; + if(m_nbLock<=0){ + //unlock the menu + QWidget *menu = this->menuWidget(); + if(menu){ + menu->setEnabled(true); + } + + // unlock the toolbar + for(int i=0; i< m_toolBarVector.count();i++){ + m_toolBarVector[i]->setEnabled(m_toolBarVectorValues[i]); + } + m_toolBarVectorValues.clear(); + + // unlock the central widget + QWidget *centralWidget = this->centralWidget(); + if(centralWidget){ + QLayout *centralLayout = centralWidget->layout(); + if(centralLayout){ + centralLayout->removeWidget(m_waitwidget); + delete m_waitwidget; + + } + } + } +} + MainWindow::~MainWindow() { @@ -684,6 +745,7 @@ QMenu* menu = menuBar()->addMenu(tr("&Easaier")); QToolBar *toolbar = addToolBar(tr("Easaier session Toolbar")); + m_toolBarVector.append(toolbar); QIcon icon(":icons/filenew.png"); QAction *action = new QAction(icon, tr("&New Session"), this); @@ -1689,6 +1751,7 @@ MainWindow::setupToolbars() { QToolBar *toolbar = addToolBar(tr("Transport Toolbar")); + m_toolBarVector.append(toolbar); QAction *action = toolbar->addAction(QIcon(":/icons/rewind-start.png"), tr("Rewind to Start")); @@ -1729,6 +1792,7 @@ connect(this, SIGNAL(canPlay(bool)), action, SLOT(setEnabled(bool))); toolbar = addToolBar(tr("Play Mode Toolbar")); + m_toolBarVector.append(toolbar); action = toolbar->addAction(QIcon(":/icons/playselection.png"), tr("Constrain Playback to Selection")); @@ -1753,9 +1817,13 @@ connect(this, SIGNAL(canPlay(bool)), action, SLOT(setEnabled(bool))); toolbar = addToolBar(tr("Edit Toolbar")); + m_toolBarVector.append(toolbar); + CommandHistory::getInstance()->registerToolbar(toolbar); toolbar = addToolBar(tr("Tools Toolbar")); + m_toolBarVector.append(toolbar); + QActionGroup *group = new QActionGroup(this); action = toolbar->addAction(QIcon(":/icons/navigate.png"),