29class TempoCurveCanvasItem :
public QCanvasPainterItem
32 QML_NAMED_ELEMENT (TempoCurveCanvas)
36 tempoObjectManager WRITE setTempoObjectManager NOTIFY
37 tempoObjectManagerChanged)
40 NOTIFY tempoMapChanged)
42 qreal pxPerTick READ pxPerTick WRITE setPxPerTick NOTIFY pxPerTickChanged)
43 Q_PROPERTY (qreal scrollX READ scrollX WRITE setScrollX NOTIFY scrollXChanged)
45 qreal scrollXPlusWidth READ scrollXPlusWidth WRITE setScrollXPlusWidth
46 NOTIFY scrollXPlusWidthChanged)
48 QColor curveColor READ curveColor WRITE setCurveColor NOTIFY
51 QItemSelectionModel * selectionModel READ selectionModel WRITE
52 setSelectionModel NOTIFY selectionModelChanged)
54 bool dragActive READ dragActive WRITE setDragActive NOTIFY dragActiveChanged)
56 qreal dragDeltaPx READ dragDeltaPx WRITE setDragDeltaPx NOTIFY
60 explicit TempoCurveCanvasItem (QQuickItem * parent =
nullptr);
62 QCanvasPainterItemRenderer * createItemRenderer () const override;
64 structure::arrangement::TempoObjectManager * tempoObjectManager ()
const
74 qreal pxPerTick ()
const {
return px_per_tick_; }
75 void setPxPerTick (qreal px);
76 qreal scrollX ()
const {
return scroll_x_; }
77 void setScrollX (qreal x);
78 qreal scrollXPlusWidth ()
const {
return scroll_x_plus_width_; }
79 void setScrollXPlusWidth (qreal w);
80 QColor curveColor ()
const {
return curve_color_; }
81 void setCurveColor (
const QColor &color);
82 QItemSelectionModel * selectionModel ()
const {
return selection_model_; }
83 void setSelectionModel (QItemSelectionModel * model);
84 bool dragActive ()
const {
return drag_active_; }
85 void setDragActive (
bool active);
86 qreal dragDeltaPx ()
const {
return drag_delta_px_; }
87 void setDragDeltaPx (qreal px);
90 void tempoObjectManagerChanged ();
91 void tempoMapChanged ();
92 void pxPerTickChanged ();
93 void scrollXChanged ();
94 void scrollXPlusWidthChanged ();
95 void curveColorChanged ();
96 void selectionModelChanged ();
97 void dragActiveChanged ();
98 void dragDeltaPxChanged ();
101 QPointer<structure::arrangement::TempoObjectManager> manager_;
102 QPointer<dsp::TempoMapWrapper> tempo_map_;
103 qreal px_per_tick_ = 0.0;
104 qreal scroll_x_ = 0.0;
105 qreal scroll_x_plus_width_ = 0.0;
106 QColor curve_color_ =
"#009DFF";
107 QPointer<QItemSelectionModel> selection_model_;
108 bool drag_active_ =
false;
109 qreal drag_delta_px_ = 0.0;