From 0f34fd437efb936ef29ac91186321aa7251fbfb1 Mon Sep 17 00:00:00 2001 From: Samuel Fadel Date: Tue, 23 May 2023 11:22:33 +0200 Subject: Massive changes in initial port away from Qt. --- barchart.h | 75 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 38 insertions(+), 37 deletions(-) (limited to 'barchart.h') diff --git a/barchart.h b/barchart.h index c5ee1ae..9e2b421 100644 --- a/barchart.h +++ b/barchart.h @@ -1,80 +1,81 @@ #ifndef BARCHART_H #define BARCHART_H +#include #include -#include - #include +#include #include "colorscale.h" #include "scale.h" class BarChart - : public QQuickItem { - Q_OBJECT public: - BarChart(QQuickItem *parent = 0); - ~BarChart(); - -signals: - void valuesChanged(const arma::vec &values) const; - void colorScaleChanged(const ColorScale *scale) const; - void selectionChanged(const std::vector &selection) const; - void selectionInteractivelyChanged(const std::vector &selection) const; - void itemBrushed(int item, float value) const; - void itemInteractivelyBrushed(int item) const; - -public slots: + BarChart(); + + size_t width() const { return m_width; } + size_t height() const { return m_height; } + + nod::signal valuesChanged; + nod::signal)> colorScaleChanged; + nod::signal &)> selectionChanged; + nod::signal &)> selectionInteractivelyChanged; + nod::signal itemBrushed; + nod::signal itemInteractivelyBrushed; + void setValues(const arma::vec &values); void updateValues(const arma::vec &values); - void setColorScale(const ColorScale *scale); + void setColorScale(std::shared_ptr scale); void setSelection(const std::vector &selection); void brushItem(int item); + void update(); + protected: - QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *); + // QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *); - void hoverEnterEvent(QHoverEvent *event); - void hoverMoveEvent(QHoverEvent *event); - void hoverLeaveEvent(QHoverEvent *event); + // void hoverEnterEvent(QHoverEvent *event); + // void hoverMoveEvent(QHoverEvent *event); + // void hoverLeaveEvent(QHoverEvent *event); - void mousePressEvent(QMouseEvent *event); - void mouseMoveEvent(QMouseEvent *event); - void mouseReleaseEvent(QMouseEvent *event); + // void mousePressEvent(QMouseEvent *event); + // void mouseMoveEvent(QMouseEvent *event); + // void mouseReleaseEvent(QMouseEvent *event); private: - QSGNode *newSceneGraph() const; - QSGNode *newBarNode() const; - QSGNode *newSelectionBarNode() const; - - void updateViewport(QSGNode *root) const; - void updateBarNodeGeom(QSGNode *barNode, float x, float width, float height) const; - void updateBarNodeColor(QSGNode *barNode, const QColor &color) const; - void updateBars(QSGNode *node) const; + // QSGNode *newSceneGraph() const; + // QSGNode *newBarNode() const; + // QSGNode *newSelectionBarNode() const; + + // void updateViewport(QSGNode *root) const; + // void updateBarNodeGeom(QSGNode *barNode, float x, float width, float height) const; + // void updateBarNodeColor(QSGNode *barNode, const QColor &color) const; + // void updateBars(QSGNode *node) const; bool m_shouldUpdateBars; - void updatePreSelection(QSGNode *node) const; + // void updatePreSelection(QSGNode *node) const; bool m_shouldUpdatePreSelection; float m_dragStartPos, m_dragLastPos; - void updateSelectionBar(QSGNode *node, float x, float barWidth, const QColor &color) const; - void updateSelectionBars(QSGNode *node) const; + // void updateSelectionBar(QSGNode *node, float x, float barWidth, const QColor &color) const; + // void updateSelectionBars(QSGNode *node) const; bool m_shouldUpdateSelection; void interactiveSelection(float start, float end); std::vector m_selection; - void updateBrush(QSGNode *node) const; + // void updateBrush(QSGNode *node) const; int m_brushedItem; int itemAt(float x, bool includeSelectorWidth = false) const; arma::vec m_values; - const ColorScale *m_colorScale; + std::shared_ptr m_colorScale; std::vector m_originalIndices, m_currentIndices; LinearScale m_scale; + size_t m_width, m_height; }; #endif // BARCHART_H -- cgit v1.2.3