summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-10 16:26:11 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-11 10:42:53 +0300
commitd93f5f3b64fdb52cc150232f6b6d80ffdb57db78 (patch)
tree4a99ecc02c2e885b56abb1082527e482967b84f8 /src/datavisualization/engine
parentd315336b202ec1c1260f96945a23fde6d2c41b69 (diff)
QBarDataProxy now has list of row and column labels
Category axes use those labels if no explicit labels are set to them. + Other misc fixes Task-number: QTRD-2252 Change-Id: Idc15e0cc1cdeb08195b2e2baeead9cfef2533e04 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r--src/datavisualization/engine/abstract3dcontroller_p.h2
-rw-r--r--src/datavisualization/engine/abstract3drenderer_p.h2
-rw-r--r--src/datavisualization/engine/bars3dcontroller.cpp45
-rw-r--r--src/datavisualization/engine/bars3dcontroller_p.h5
-rw-r--r--src/datavisualization/engine/q3dscene.cpp1
-rw-r--r--src/datavisualization/engine/q3dwindow.h2
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp1
7 files changed, 53 insertions, 5 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller_p.h b/src/datavisualization/engine/abstract3dcontroller_p.h
index 1419c0f4..c406f087 100644
--- a/src/datavisualization/engine/abstract3dcontroller_p.h
+++ b/src/datavisualization/engine/abstract3dcontroller_p.h
@@ -176,7 +176,7 @@ protected:
bool m_renderPending;
explicit Abstract3DController(QRect boundRect, QObject *parent = 0);
- ~Abstract3DController();
+ virtual ~Abstract3DController();
public:
diff --git a/src/datavisualization/engine/abstract3drenderer_p.h b/src/datavisualization/engine/abstract3drenderer_p.h
index 1edca798..49a40209 100644
--- a/src/datavisualization/engine/abstract3drenderer_p.h
+++ b/src/datavisualization/engine/abstract3drenderer_p.h
@@ -86,7 +86,7 @@ protected:
QString generateValueLabel(const QString &format, qreal value);
public:
- ~Abstract3DRenderer();
+ virtual ~Abstract3DRenderer();
void updateDataModel(QAbstractDataProxy *dataProxy);
diff --git a/src/datavisualization/engine/bars3dcontroller.cpp b/src/datavisualization/engine/bars3dcontroller.cpp
index 90987fc5..1f4d44c0 100644
--- a/src/datavisualization/engine/bars3dcontroller.cpp
+++ b/src/datavisualization/engine/bars3dcontroller.cpp
@@ -21,7 +21,7 @@
#include "camerahelper_p.h"
#include "q3dabstractaxis_p.h"
#include "q3dvalueaxis_p.h"
-#include "q3dcategoryaxis.h"
+#include "q3dcategoryaxis_p.h"
#include "qbardataproxy_p.h"
#include <QMatrix4x4>
@@ -128,11 +128,18 @@ void Bars3DController::setActiveDataProxy(QAbstractDataProxy *proxy)
&Bars3DController::handleRowsInserted);
QObject::connect(barDataProxy, &QBarDataProxy::itemChanged, this,
&Bars3DController::handleItemChanged);
+ QObject::connect(barDataProxy, &QBarDataProxy::rowLabelsChanged, this,
+ &Bars3DController::handleDataRowLabelsChanged);
+ QObject::connect(barDataProxy, &QBarDataProxy::columnLabelsChanged, this,
+ &Bars3DController::handleDataColumnLabelsChanged);
adjustValueAxisRange();
// Always clear selection on proxy change
setSelectedBarPos(noSelectionPoint());
+
+ handleDataRowLabelsChanged();
+ handleDataColumnLabelsChanged();
}
void Bars3DController::handleArrayReset()
@@ -209,6 +216,26 @@ void Bars3DController::handleItemChanged(int rowIndex, int columnIndex)
emitNeedRender();
}
+void Bars3DController::handleDataRowLabelsChanged()
+{
+ if (m_axisX && m_data) {
+ // Grab a sublist equal to data window (no need to have more labels in axis)
+ // TODO once axis controls data window, this needs to change
+ QStringList subList = static_cast<QBarDataProxy *>(m_data)->rowLabels().mid(0, m_rowCount);
+ static_cast<Q3DCategoryAxis *>(m_axisX)->dptr()->setDataLabels(subList);
+ }
+}
+
+void Bars3DController::handleDataColumnLabelsChanged()
+{
+ if (m_axisZ && m_data) {
+ // Grab a sublist equal to data window (no need to have more labels in axis)
+ // TODO once axis controls data window, this needs to change
+ QStringList subList = static_cast<QBarDataProxy *>(m_data)->columnLabels().mid(0, m_columnCount);
+ static_cast<Q3DCategoryAxis *>(m_axisZ)->dptr()->setDataLabels(subList);
+ }
+}
+
void Bars3DController::handleSelectedBarPosChanged(const QPoint &position)
{
QPoint pos = position;
@@ -235,6 +262,18 @@ QPoint Bars3DController::noSelectionPoint()
return noSelectionPos;
}
+void Bars3DController::setAxisX(Q3DAbstractAxis *axis)
+{
+ Abstract3DController::setAxisX(axis);
+ handleDataRowLabelsChanged();
+}
+
+void Bars3DController::setAxisZ(Q3DAbstractAxis *axis)
+{
+ Abstract3DController::setAxisZ(axis);
+ handleDataColumnLabelsChanged();
+}
+
void Bars3DController::setBarSpecs(GLfloat thicknessRatio, const QSizeF &spacing, bool relative)
{
m_barThicknessRatio = thicknessRatio;
@@ -296,6 +335,10 @@ void Bars3DController::setDataWindow(int rowCount, int columnCount)
m_changeTracker.sampleSpaceChanged = true;
m_isDataDirty = true; // Render item array is recreated in renderer
+
+ handleDataRowLabelsChanged();
+ handleDataColumnLabelsChanged();
+
emitNeedRender();
}
diff --git a/src/datavisualization/engine/bars3dcontroller_p.h b/src/datavisualization/engine/bars3dcontroller_p.h
index 69ead98a..6dbaf742 100644
--- a/src/datavisualization/engine/bars3dcontroller_p.h
+++ b/src/datavisualization/engine/bars3dcontroller_p.h
@@ -114,6 +114,9 @@ public:
static QPoint noSelectionPoint();
+ virtual void setAxisX(Q3DAbstractAxis *axis);
+ virtual void setAxisZ(Q3DAbstractAxis *axis);
+
public slots:
void handleArrayReset();
void handleRowsAdded(int startIndex, int count);
@@ -121,6 +124,8 @@ public slots:
void handleRowsRemoved(int startIndex, int count);
void handleRowsInserted(int startIndex, int count);
void handleItemChanged(int rowIndex, int columnIndex);
+ void handleDataRowLabelsChanged();
+ void handleDataColumnLabelsChanged();
void handleSelectedBarPosChanged(const QPoint &position);
diff --git a/src/datavisualization/engine/q3dscene.cpp b/src/datavisualization/engine/q3dscene.cpp
index 49c08bbc..b39daab6 100644
--- a/src/datavisualization/engine/q3dscene.cpp
+++ b/src/datavisualization/engine/q3dscene.cpp
@@ -28,6 +28,7 @@
QT_DATAVISUALIZATION_BEGIN_NAMESPACE
Q3DScene::Q3DScene(QObject *parent) :
+ QObject(parent),
d_ptr(new Q3DScenePrivate(this))
{
}
diff --git a/src/datavisualization/engine/q3dwindow.h b/src/datavisualization/engine/q3dwindow.h
index 4a76c677..c46e293a 100644
--- a/src/datavisualization/engine/q3dwindow.h
+++ b/src/datavisualization/engine/q3dwindow.h
@@ -36,7 +36,7 @@ class QT_DATAVISUALIZATION_EXPORT Q3DWindow : public QWindow, protected QOpenGLF
public:
explicit Q3DWindow(QWindow *parent = 0);
- ~Q3DWindow();
+ virtual ~Q3DWindow();
protected slots:
void renderLater();
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp
index f39a0228..55fb9d6f 100644
--- a/src/datavisualization/engine/surface3drenderer.cpp
+++ b/src/datavisualization/engine/surface3drenderer.cpp
@@ -232,7 +232,6 @@ void Surface3DRenderer::updateScene(Q3DScene *scene)
void Surface3DRenderer::render(GLuint defaultFboHandle)
{
m_cachedScene->setUnderSideCameraEnabled(m_hasNegativeValues);
- Q3DCamera *camera = m_cachedScene->camera();
if (defaultFboHandle) {
glDepthMask(true);
glEnable(GL_DEPTH_TEST);