summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/engine/scatter3dcontroller_p.h
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-08-22 13:02:38 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-08-27 07:41:29 +0300
commite26bc838a8b2a5c6ce5013992a81c4b9ad040514 (patch)
treed57c5f93bd88491087ca5b3fac46e82909cb7b1f /src/datavis3d/engine/scatter3dcontroller_p.h
parentfb11df914d9a548675916f51466822f5263b8ceb (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.h11
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();