diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-08-22 13:02:38 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-08-27 07:41:29 +0300 |
commit | e26bc838a8b2a5c6ce5013992a81c4b9ad040514 (patch) | |
tree | d57c5f93bd88491087ca5b3fac46e82909cb7b1f /src/datavis3d/engine/scatter3dcontroller_p.h | |
parent | fb11df914d9a548675916f51466822f5263b8ceb (diff) |
Add selection signaling for scatter
+ Fix crashes associated with selection
+ Optimized selection color handling
Task-number: QTRD-2132
Task-number: QTRD-2208
Change-Id: Ie38c6779591fb0467cffb052edf7609f6677278a
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavis3d/engine/scatter3dcontroller_p.h')
-rw-r--r-- | src/datavis3d/engine/scatter3dcontroller_p.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/datavis3d/engine/scatter3dcontroller_p.h b/src/datavis3d/engine/scatter3dcontroller_p.h index 437664b7..9d847852 100644 --- a/src/datavis3d/engine/scatter3dcontroller_p.h +++ b/src/datavis3d/engine/scatter3dcontroller_p.h @@ -41,9 +41,11 @@ class QScatterDataProxy; struct Scatter3DChangeBitField { bool slicingActiveChanged : 1; + bool selectedItemIndexChanged : 1; Scatter3DChangeBitField() : - slicingActiveChanged(true) + slicingActiveChanged(true), + selectedItemIndexChanged(true) { } }; @@ -63,6 +65,7 @@ private: // Rendering Scatter3DRenderer *m_renderer; QScatterDataProxy *m_data; + int m_selectedItemIndex; public: explicit Scatter3DController(QRect rect); @@ -85,6 +88,10 @@ public: // Change selection mode void setSelectionMode(QDataVis::SelectionMode mode); + void setSelectedItemIndex(int index); + int selectedItemIndex() const; + static inline int noSelectionIndex() { return -1; } + #if defined(Q_OS_ANDROID) void mouseDoubleClickEvent(QMouseEvent *event); void touchEvent(QTouchEvent *event); @@ -108,9 +115,11 @@ public slots: void handleItemsChanged(int startIndex, int count); void handleItemsRemoved(int startIndex, int count); void handleItemsInserted(int startIndex, int count); + void handleSelectedItemIndexChanged(int index); signals: void slicingActiveChanged(bool isSlicing); + void selectedItemIndexChanged(int index); private: void adjustValueAxisRange(); |