changeset 692:4dcf10bd2863

Add piano scale to note layer as well (need to handle the auto-align case properly)
author Chris Cannam
date Tue, 03 Dec 2013 17:55:37 +0000
parents 5674950ed82a
children 81c4c44ecc10
files layer/NoteLayer.cpp layer/NoteLayer.h
diffstat 2 files changed, 20 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/layer/NoteLayer.cpp	Tue Dec 03 17:48:46 2013 +0000
+++ b/layer/NoteLayer.cpp	Tue Dec 03 17:55:37 2013 +0000
@@ -23,6 +23,7 @@
 #include "base/RangeMapper.h"
 #include "ColourDatabase.h"
 #include "view/View.h"
+#include "PianoScale.h"
 
 #include "data/model/NoteModel.h"
 
@@ -813,6 +814,22 @@
     paint.restore();
 }
 
+int
+NoteLayer::getVerticalScaleWidth(View *, bool, QPainter &paint) const
+{
+    return 10;
+}
+
+void
+NoteLayer::paintVerticalScale(View *v, bool, QPainter &paint, QRect) const
+{
+    float fmin, fmax;
+    getDisplayExtents(fmin, fmax);
+    PianoScale().paintPianoVertical
+        (v, paint, QRect(0, 0, 10, v->height()), fmin, fmax);
+    paint.drawLine(10, 0, 10, v->height());
+}
+
 void
 NoteLayer::drawStart(View *v, QMouseEvent *e)
 {
--- a/layer/NoteLayer.h	Tue Dec 03 17:48:46 2013 +0000
+++ b/layer/NoteLayer.h	Tue Dec 03 17:55:37 2013 +0000
@@ -34,6 +34,9 @@
 
     virtual void paint(View *v, QPainter &paint, QRect rect) const;
 
+    virtual int getVerticalScaleWidth(View *v, bool, QPainter &) const;
+    virtual void paintVerticalScale(View *v, bool, QPainter &paint, QRect rect) const;
+
     virtual QString getFeatureDescription(View *v, QPoint &) const;
 
     virtual bool snapToFeatureFrame(View *v, int &frame,
@@ -102,8 +105,6 @@
     virtual void setVerticalZoomStep(int);
     virtual RangeMapper *getNewVerticalZoomRangeMapper() const;
 
-    virtual int getVerticalScaleWidth(View *, bool, QPainter &) const { return 0; }
-
     /**
      * Add a note-on.  Used when recording MIDI "live".  The note will
      * not be finally added to the layer until the corresponding