changeset 239:d40c6cdb30a4

Make pitch-track editing operations update the notes as well, automatically
author Chris Cannam
date Thu, 27 Mar 2014 18:02:12 +0000
parents fce61899aeea
children 6ac45eb0f4c7
files .hgsubstate src/Analyser.cpp src/MainWindow.cpp src/MainWindow.h
diffstat 4 files changed, 26 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsubstate	Thu Mar 27 16:30:26 2014 +0000
+++ b/.hgsubstate	Thu Mar 27 18:02:12 2014 +0000
@@ -4,4 +4,4 @@
 27d4e7152c954bf3c4387319db088fb3cd02436b sv-dependency-builds
 3144af512ea3447e6cf1775f02b5b54b5a5ddeb5 svapp
 0c8218b2d84a172049d966c82c2064f5aa59c503 svcore
-bc049f1f080e2042c7967841c2fb717bc4e46e24 svgui
+84e4cf88965959a34e8675138d6bef66ad5ec261 svgui
--- a/src/Analyser.cpp	Thu Mar 27 16:30:26 2014 +0000
+++ b/src/Analyser.cpp	Thu Mar 27 18:02:12 2014 +0000
@@ -417,6 +417,7 @@
             }
             t->setBaseColour
                 (ColourDatabase::getInstance()->getColourIndex(tr("Bright Orange")));
+            t->setPresentationName("candidate");
             m_document->addLayerToView(m_pane, t);
             m_reAnalysisCandidates.push_back(t);
         }
--- a/src/MainWindow.cpp	Thu Mar 27 16:30:26 2014 +0000
+++ b/src/MainWindow.cpp	Thu Mar 27 18:02:12 2014 +0000
@@ -1896,6 +1896,10 @@
     MainWindowBase::clearSelection();
 
     CommandHistory::getInstance()->endCompoundOperation();
+
+    if (!selections.empty()) {
+        auxSnapNotes(*selections.begin());
+    }
 }
 
 void
@@ -1978,6 +1982,8 @@
     }
 
     CommandHistory::getInstance()->endCompoundOperation();
+
+    snapNotesToPitches();
 }
 
 void
@@ -1995,6 +2001,8 @@
     }
 
     CommandHistory::getInstance()->endCompoundOperation();
+
+    snapNotesToPitches();
 }
 
 void
@@ -2027,6 +2035,7 @@
 
             CommandHistory::getInstance()->endCompoundOperation();
 
+            snapNotesToPitches();
         }
     } else {
         octaveShift(true);
@@ -2050,6 +2059,8 @@
             }
 
             CommandHistory::getInstance()->endCompoundOperation();
+
+            snapNotesToPitches();
         }
     } else {
         octaveShift(false);
@@ -2059,10 +2070,6 @@
 void
 MainWindow::snapNotesToPitches()
 {
-    FlexiNoteLayer *layer =
-        qobject_cast<FlexiNoteLayer *>(m_analyser->getLayer(Analyser::Notes));
-    if (!layer) return;
-
     MultiSelection::SelectionList selections = m_viewManager->getSelections();
 
     if (!selections.empty()) {
@@ -2072,7 +2079,7 @@
                 
         for (MultiSelection::SelectionList::iterator k = selections.begin();
              k != selections.end(); ++k) {
-            layer->snapSelectedNotesToPitchTrack(m_analyser->getPane(), *k);
+            auxSnapNotes(*k);
         }
         
         CommandHistory::getInstance()->endCompoundOperation();
@@ -2080,6 +2087,16 @@
 }
 
 void
+MainWindow::auxSnapNotes(Selection s)
+{
+    FlexiNoteLayer *layer =
+        qobject_cast<FlexiNoteLayer *>(m_analyser->getLayer(Analyser::Notes));
+    if (!layer) return;
+
+    layer->snapSelectedNotesToPitchTrack(m_analyser->getPane(), s);
+}    
+
+void
 MainWindow::splitNotesAtSelection()
 {
     FlexiNoteLayer *layer =
--- a/src/MainWindow.h	Thu Mar 27 16:30:26 2014 +0000
+++ b/src/MainWindow.h	Thu Mar 27 18:02:12 2014 +0000
@@ -226,6 +226,8 @@
 
     virtual void octaveShift(bool up);
 
+    virtual void auxSnapNotes(Selection s);
+
     virtual void closeEvent(QCloseEvent *e);
     bool checkSaveModified();