35 ,
public QGraphicsItem
39 qreal width()
const {
return m_width; }
40 void setWidth(qreal newWidth);
41 void setStartPoint(ossia::time_value dur);
42 virtual void setZoomRatio(
double factor) = 0;
45 void doubleClicked(QPointF pt) W_SIGNAL(doubleClicked, pt);
46 void drag(QPointF arg_1, QPointF arg_2) W_SIGNAL(drag, arg_1, arg_2);
47 void rescale() W_SIGNAL(rescale);
50 virtual void createRulerPath() = 0;
51 virtual void computeGraduationSpacing() = 0;
52 QRectF boundingRect()
const final override;
53 void mousePressEvent(QGraphicsSceneMouseEvent*)
final override;
54 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*)
final override;
55 void mouseMoveEvent(QGraphicsSceneMouseEvent*)
final override;
56 void mouseReleaseEvent(QGraphicsSceneMouseEvent*)
final override;
57 ossia::time_value m_startPoint{};
63 Q_INTERFACES(QGraphicsItem)
77 void paint(QPainter* painter,
const QStyleOptionGraphicsItem* option, QWidget* widget)
80 qreal graduationSpacing()
const
82 return m_intervalsBetweenMark * m_graduationsSpacing;
85 void computeGraduationSpacing()
override;
86 void createRulerPath()
override;
87 void setZoomRatio(
double factor)
final override;
92 std::chrono::nanoseconds time;
96 double m_pixelPerMillis{0.01};
98 std::vector<Mark> m_marks;
100 qreal m_graduationsSpacing{};
101 qreal m_graduationDelta{};
102 qreal m_intervalsBetweenMark{};
103 Format m_timeFormat{};
107 QGraphicsView* m_viewport{};
109 QGlyphRun getGlyphs(std::chrono::nanoseconds);
110 QTextLayout m_layout;
111 std::deque<std::pair<std::chrono::nanoseconds, QGlyphRun>> m_stringCache;
116 Q_INTERFACES(QGraphicsItem)
130 void paint(QPainter* painter,
const QStyleOptionGraphicsItem* option, QWidget* widget)
133 void computeGraduationSpacing()
override;
134 void createRulerPath()
override;
135 void setZoomRatio(
double factor)
final override;
138 QPointer<MusicalGrid> m_grid{};
140 QGraphicsView* m_viewport{};
142 QGlyphRun getGlyphs(ossia::bar_time timings, ossia::bar_time increments);
143 QTextLayout m_layout;
144 std::deque<std::tuple<ossia::bar_time, ossia::bar_time, QGlyphRun>> m_stringCache;