# HG changeset patch # User Chris Cannam # Date 1187282827 0 # Node ID 5bde373ad5cafd19333bee8528ab4a0fb23134f5 # Parent 4c120dfffe1d6a63d441378f0e667c96510c23b1 * Layer tree view updating when visibility / audibility changed (and layers updating when they are changed in view) -- still some problems when a model is loaded while the tree is visible * FFTW_MEASURE throughout -- it does turn out to make an appreciable difference sometimes diff -r 4c120dfffe1d -r 5bde373ad5ca audioio/PhaseVocoderTimeStretcher.cpp --- a/audioio/PhaseVocoderTimeStretcher.cpp Tue Aug 14 19:37:10 2007 +0000 +++ b/audioio/PhaseVocoderTimeStretcher.cpp Thu Aug 16 16:47:07 2007 +0000 @@ -88,8 +88,8 @@ m_freq[c] = (fftf_complex *)fftf_malloc(sizeof(fftf_complex) * (m_wlen / 2 + 1)); - m_plan[c] = fftf_plan_dft_r2c_1d(m_wlen, m_time[c], m_freq[c], FFTW_ESTIMATE); - m_iplan[c] = fftf_plan_dft_c2r_1d(m_wlen, m_freq[c], m_time[c], FFTW_ESTIMATE); + m_plan[c] = fftf_plan_dft_r2c_1d(m_wlen, m_time[c], m_freq[c], FFTW_MEASURE); + m_iplan[c] = fftf_plan_dft_c2r_1d(m_wlen, m_freq[c], m_time[c], FFTW_MEASURE); m_outbuf[c] = new RingBuffer ((m_maxOutputBlockSize + m_wlen) * 2); diff -r 4c120dfffe1d -r 5bde373ad5ca main/MainWindow.cpp --- a/main/MainWindow.cpp Tue Aug 14 19:37:10 2007 +0000 +++ b/main/MainWindow.cpp Thu Aug 16 16:47:07 2007 +0000 @@ -137,6 +137,7 @@ m_openingAudioFile(false), m_abandoning(false), m_preferencesDialog(0), + m_layerTreeView(0), m_keyReference(new KeyReference()) { setWindowTitle(tr("Sonic Visualiser")); @@ -347,6 +348,7 @@ delete m_oscQueue; delete m_keyReference; delete m_preferencesDialog; + delete m_layerTreeView; Profiles::getInstance()->dump(); } @@ -3200,6 +3202,11 @@ m_preferencesDialog->applicationClosing(false); } + if (m_layerTreeView && + m_layerTreeView->isVisible()) { + delete m_layerTreeView; + } + e->accept(); return; } @@ -4456,12 +4463,20 @@ void MainWindow::showLayerTree() { - QTreeView *view = new QTreeView(); + if (!m_layerTreeView.isNull()) { + m_layerTreeView->show(); + m_layerTreeView->raise(); + return; + } + + //!!! should use an actual dialog class + + m_layerTreeView = new QTreeView(); LayerTreeModel *tree = new LayerTreeModel(m_paneStack); - view->setModel(tree); - view->expandAll(); - view->resize(500, 300); //!!! - view->show(); + m_layerTreeView->resize(500, 300); //!!! + m_layerTreeView->setModel(tree); + m_layerTreeView->expandAll(); + m_layerTreeView->show(); } void diff -r 4c120dfffe1d -r 5bde373ad5ca main/MainWindow.h --- a/main/MainWindow.h Tue Aug 14 19:37:10 2007 +0000 +++ b/main/MainWindow.h Thu Aug 16 16:47:07 2007 +0000 @@ -49,6 +49,7 @@ class QLabel; class QCheckBox; class PreferencesDialog; +class QTreeView; class QPushButton; class OSCQueue; class OSCMessage; @@ -299,6 +300,7 @@ mutable QString m_myStatusMessage; QPointer m_preferencesDialog; + QPointer m_layerTreeView; KeyReference *m_keyReference;