summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/surface3dcontroller_p.h
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-29 14:01:42 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-30 10:06:08 +0200
commit84c156d3e2fcceeab608f401fbc638f2d01219b3 (patch)
tree74de2de1635c60645f4864d08f6afb941948aea8 /src/datavisualization/engine/surface3dcontroller_p.h
parent233d5c02638903e96687d580ada7188f0e6a9756 (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.h16
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();