changeset 133:c3b53a10c920

Make sure flexinote layer is always the current one for editing
author Chris Cannam
date Thu, 09 Jan 2014 20:58:05 +0000
parents 2abff42be385
children c13ffa2fcdee
files src/Analyser.cpp src/Analyser.h
diffstat 2 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/Analyser.cpp	Thu Jan 09 17:20:15 2014 +0000
+++ b/src/Analyser.cpp	Thu Jan 09 20:58:05 2014 +0000
@@ -35,6 +35,7 @@
 Analyser::Analyser() :
     m_document(0),
     m_fileModel(0),
+    m_paneStack(0),
     m_pane(0)
 {
     QSettings settings;
@@ -63,6 +64,7 @@
 {
     m_document = doc;
     m_fileModel = model;
+    m_paneStack = paneStack;
     m_pane = pane;
 
     QString base = "vamp:pyin:pyin:";
@@ -131,7 +133,6 @@
             qobject_cast<TimeValueLayer *>(m_layers[PitchTrack]);
         if (pitchLayer) {
             pitchLayer->setBaseColour(cdb->getColourIndex(tr("Black")));
-            paneStack->setCurrentLayer(m_pane, pitchLayer);
             PlayParameters *params = pitchLayer->getPlayParameters();
             if (params) params->setPlayPan(-1);
         }
@@ -140,7 +141,6 @@
             qobject_cast<FlexiNoteLayer *>(m_layers[Notes]);
         if (flexiNoteLayer) {
             flexiNoteLayer->setBaseColour(cdb->getColourIndex(tr("Bright Blue")));
-            paneStack->setCurrentLayer(m_pane, flexiNoteLayer);
             PlayParameters *params = flexiNoteLayer->getPlayParameters();
             if (params) params->setPlayPan(0);
         }
@@ -204,6 +204,11 @@
 {
     if (m_layers[c]) {
         m_layers[c]->setLayerDormant(m_pane, !v);
+
+        if (v && (c == Notes)) {
+            m_paneStack->setCurrentLayer(m_pane, m_layers[c]);
+        }
+
         m_pane->layerParametersChanged();
         saveState(c);
     }
--- a/src/Analyser.h	Thu Jan 09 17:20:15 2014 +0000
+++ b/src/Analyser.h	Thu Jan 09 20:58:05 2014 +0000
@@ -73,6 +73,7 @@
 protected:
     Document *m_document;
     WaveFileModel *m_fileModel;
+    PaneStack *m_paneStack;
     Pane *m_pane;
     mutable std::map<Component, Layer *> m_layers;