diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-10-29 14:01:42 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-10-30 10:06:08 +0200 |
commit | 84c156d3e2fcceeab608f401fbc638f2d01219b3 (patch) | |
tree | 74de2de1635c60645f4864d08f6afb941948aea8 /src/datavisualization/engine/surface3dcontroller_p.h | |
parent | 233d5c02638903e96687d580ada7188f0e6a9756 (diff) |
Selection overhaul
Selection modes are now proper flags, so you can easily mix and match
item, row, and column modes as you wish. Slice flag means automatic
slicing control - if user wishes to control slicing himself, he should
not set this mode flag.
Clicking an item on graph now emits clicked signal from renderer to
controller on all graphs instead of setting the selected item.
Controller will set the selected item based on this information.
Task-number: QTRD-2366
Task-number: QTRD-2491
Change-Id: I6251c42e22ea676613fbd36685e33574e6eb9a1a
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/surface3dcontroller_p.h')
-rw-r--r-- | src/datavisualization/engine/surface3dcontroller_p.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/datavisualization/engine/surface3dcontroller_p.h b/src/datavisualization/engine/surface3dcontroller_p.h index 0698c291..07d15f29 100644 --- a/src/datavisualization/engine/surface3dcontroller_p.h +++ b/src/datavisualization/engine/surface3dcontroller_p.h @@ -42,11 +42,13 @@ struct Surface3DChangeBitField { bool gradientColorChanged : 1; bool smoothStatusChanged : 1; bool surfaceGridChanged : 1; + bool selectedPointChanged : 1; Surface3DChangeBitField() : gradientColorChanged(true), smoothStatusChanged(true), - surfaceGridChanged(true) + surfaceGridChanged(true), + selectedPointChanged(true) { } }; @@ -57,12 +59,11 @@ class QT_DATAVISUALIZATION_EXPORT Surface3DController : public Abstract3DControl private: Surface3DChangeBitField m_changeTracker; - - // Rendering Surface3DRenderer *m_renderer; bool m_isSmoothSurfaceEnabled; bool m_isSurfaceGridEnabled; QLinearGradient m_userDefinedGradient; + QPoint m_selectedPoint; public: explicit Surface3DController(QRect rect); @@ -82,18 +83,25 @@ public: void setGradientColorAt(qreal pos, const QColor &color); - void setSelectionMode(QDataVis::SelectionMode mode); + void setSelectionMode(QDataVis::SelectionFlags mode); + + void setSelectedPoint(const QPoint &position); + QPoint selectedPoint() const; virtual void setActiveDataProxy(QAbstractDataProxy *proxy); virtual void handleAxisAutoAdjustRangeChangedInOrientation(Q3DAbstractAxis::AxisOrientation orientation, bool autoAdjust); virtual void handleAxisRangeChangedBySender(QObject *sender); + static QPoint noSelectionPoint(); + public slots: void handleArrayReset(); + void handlePointClicked(const QPoint &position); signals: void smoothSurfaceEnabledChanged(bool enable); + void selectedPointChanged(QPoint position); private: void adjustValueAxisRange(); |