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 scrubPressed(QPointF arg_1, QPointF arg_2) W_SIGNAL(scrubPressed, arg_1, arg_2);
48 void scrubMoved(QPointF arg_1, QPointF arg_2) W_SIGNAL(scrubMoved, arg_1, arg_2);
49 void scrubReleased(QPointF arg_1, QPointF arg_2) W_SIGNAL(scrubReleased, arg_1, arg_2);
50 void rescale() W_SIGNAL(rescale);
53 virtual void createRulerPath() = 0;
54 virtual void computeGraduationSpacing() = 0;
55 QRectF boundingRect()
const final override;
56 void mousePressEvent(QGraphicsSceneMouseEvent*)
final override;
57 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*)
final override;
58 void mouseMoveEvent(QGraphicsSceneMouseEvent*)
final override;
59 void mouseReleaseEvent(QGraphicsSceneMouseEvent*)
final override;
60 ossia::time_value m_startPoint{};
67 Q_INTERFACES(QGraphicsItem)
81 void paint(QPainter* painter,
const QStyleOptionGraphicsItem* option, QWidget* widget)
84 qreal graduationSpacing()
const
86 return m_intervalsBetweenMark * m_graduationsSpacing;
89 void computeGraduationSpacing()
override;
90 void createRulerPath()
override;
91 void setZoomRatio(
double factor)
final override;
96 std::chrono::nanoseconds time;
100 double m_pixelPerMillis{0.01};
102 std::vector<Mark> m_marks;
104 qreal m_graduationsSpacing{};
105 qreal m_graduationDelta{};
106 qreal m_intervalsBetweenMark{};
107 Format m_timeFormat{};
111 QGraphicsView* m_viewport{};
113 QGlyphRun getGlyphs(std::chrono::nanoseconds);
114 QTextLayout m_layout;
115 std::deque<std::pair<std::chrono::nanoseconds, QGlyphRun>> m_stringCache;
120 Q_INTERFACES(QGraphicsItem)
134 void paint(QPainter* painter,
const QStyleOptionGraphicsItem* option, QWidget* widget)
137 void computeGraduationSpacing()
override;
138 void createRulerPath()
override;
139 void setZoomRatio(
double factor)
final override;
142 QPointer<MusicalGrid> m_grid{};
144 QGraphicsView* m_viewport{};
146 QGlyphRun getGlyphs(ossia::bar_time timings, ossia::bar_time increments);
147 QTextLayout m_layout;
148 std::deque<std::tuple<ossia::bar_time, ossia::bar_time, QGlyphRun>> m_stringCache;