# HG changeset patch # User Chris Cannam # Date 1193327112 0 # Node ID b4167bb2d2d4fcfd662eccd4bfb8daccc2303b1a # Parent 0511f41a7ba7e1595cdd7a51babdbdfb926c1177 * Add Align button to main window; use it diff -r 0511f41a7ba7 -r b4167bb2d2d4 icons/align.png Binary file icons/align.png has changed diff -r 0511f41a7ba7 -r b4167bb2d2d4 main/MainWindow.cpp --- a/main/MainWindow.cpp Thu Oct 25 11:32:54 2007 +0000 +++ b/main/MainWindow.cpp Thu Oct 25 15:45:12 2007 +0000 @@ -1606,10 +1606,21 @@ connect(soAction, SIGNAL(triggered()), this, SLOT(playSoloToggled())); connect(this, SIGNAL(canPlay(bool)), soAction, SLOT(setEnabled(bool))); + QAction *alAction = toolbar->addAction(il.load("align"), + tr("Align File Timelines")); + alAction->setCheckable(true); + alAction->setChecked(m_viewManager->getAlignMode()); +//!!! alAction->setStatusTip(tr("Align audio files as //!!!??? what? + connect(m_viewManager, SIGNAL(alignModeChanged(bool)), + alAction, SLOT(setChecked(bool))); + connect(alAction, SIGNAL(triggered()), this, SLOT(alignToggled())); + connect(this, SIGNAL(canAlign(bool)), alAction, SLOT(setEnabled(bool))); + m_keyReference->registerShortcut(playAction); m_keyReference->registerShortcut(psAction); m_keyReference->registerShortcut(plAction); m_keyReference->registerShortcut(soAction); + m_keyReference->registerShortcut(alAction); m_keyReference->registerShortcut(m_rwdAction); m_keyReference->registerShortcut(m_ffwdAction); m_keyReference->registerShortcut(rwdStartAction); @@ -1619,6 +1630,7 @@ menu->addAction(psAction); menu->addAction(plAction); menu->addAction(soAction); + menu->addAction(alAction); menu->addSeparator(); menu->addAction(m_rwdAction); menu->addAction(m_ffwdAction); @@ -1631,6 +1643,7 @@ m_rightButtonPlaybackMenu->addAction(psAction); m_rightButtonPlaybackMenu->addAction(plAction); m_rightButtonPlaybackMenu->addAction(soAction); + m_rightButtonPlaybackMenu->addAction(alAction); m_rightButtonPlaybackMenu->addSeparator(); m_rightButtonPlaybackMenu->addAction(m_rwdAction); m_rightButtonPlaybackMenu->addAction(m_ffwdAction); @@ -1756,6 +1769,8 @@ bool haveCurrentLayer = (haveCurrentPane && (currentLayer != 0)); + bool havePlayTarget = + (m_playTarget != 0); bool haveSelection = (m_viewManager && !m_viewManager->getSelections().empty()); @@ -1769,6 +1784,8 @@ (haveCurrentLayer && dynamic_cast(currentLayer)); + emit canAlign(havePlayTarget); //!!! only if Match plugin present + emit canChangePlaybackSpeed(true); int v = m_playSpeed->value(); emit canSpeedUpPlayback(v < m_playSpeed->maximum()); @@ -2887,6 +2904,35 @@ } void +MainWindow::alignToggled() +{ + QAction *action = dynamic_cast(sender()); + + if (action) { + m_viewManager->setAlignMode(action->isChecked()); + } else { + m_viewManager->setAlignMode(!m_viewManager->getAlignMode()); + } + + if (m_viewManager->getAlignMode()) { + m_document->alignModels(); + m_document->setAutoAlignment(true); + } else { + m_document->setAutoAlignment(false); + } + + for (int i = 0; i < m_paneStack->getPaneCount(); ++i) { + + Pane *pane = m_paneStack->getPane(i); + if (!pane) continue; + + pane->update(); + } + + //!!! and need solo enabled +} + +void MainWindow::playSpeedChanged(int position) { PlaySpeedRangeMapper mapper(0, 200); diff -r 0511f41a7ba7 -r b4167bb2d2d4 main/MainWindow.h --- a/main/MainWindow.h Thu Oct 25 11:32:54 2007 +0000 +++ b/main/MainWindow.h Thu Oct 25 15:45:12 2007 +0000 @@ -68,6 +68,7 @@ virtual ~MainWindow(); signals: + virtual void canAlign(bool); public slots: virtual void preferenceChanged(PropertyContainer::PropertyName); @@ -130,6 +131,7 @@ virtual void playSpeedChanged(int); virtual void playSharpenToggled(); virtual void playMonoToggled(); + virtual void alignToggled(); virtual void speedUpPlayback(); virtual void slowDownPlayback(); diff -r 0511f41a7ba7 -r b4167bb2d2d4 sonic-visualiser.qrc --- a/sonic-visualiser.qrc Thu Oct 25 11:32:54 2007 +0000 +++ b/sonic-visualiser.qrc Thu Oct 25 15:45:12 2007 +0000 @@ -18,6 +18,7 @@ icons/playselection.png icons/playloop.png icons/solo.png + icons/align.png icons/fader_background.png icons/fader_knob.png icons/fader_knob_red.png