summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-09-18 13:49:23 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-09-19 09:14:13 +0300
commit98e0c04fe78da9735c2943524bd36648b2654f98 (patch)
tree3c711ff622e0fb43b358982fb815065e12d49af0 /src/datavisualization/engine
parent0c11550bed204807b8b366fd07862a5da9cd2251 (diff)
Added possibility to change graph's locale
Locale affects how axis labels are formatted. Default locale is still the "C". Task-number: QTRD-3229 Change-Id: I6126ce676906f4bbc91ae0abd18775bc1d564118 Reviewed-by: Mika Salmela <mika.salmela@digia.com> Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp27
-rw-r--r--src/datavisualization/engine/abstract3dcontroller_p.h6
-rw-r--r--src/datavisualization/engine/abstract3drenderer_p.h2
-rw-r--r--src/datavisualization/engine/qabstract3dgraph.cpp21
-rw-r--r--src/datavisualization/engine/qabstract3dgraph.h6
5 files changed, 62 insertions, 0 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index feb028cc..e2f8c1ad 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -42,6 +42,7 @@ Abstract3DController::Abstract3DController(QRect initialViewport, Q3DScene *scen
m_optimizationHints(QAbstract3DGraph::OptimizationDefault),
m_reflectionEnabled(false),
m_reflectivity(0.5),
+ m_locale(QLocale::c()),
m_scene(scene),
m_activeInputHandler(0),
m_axisX(0),
@@ -1415,6 +1416,8 @@ void Abstract3DController::setAxisHelper(QAbstract3DAxis::AxisOrientation orient
handleAxisLabelFormatChangedBySender(valueAxis);
handleAxisReversedChangedBySender(valueAxis);
handleAxisFormatterDirtyBySender(valueAxis->dptr());
+
+ valueAxis->formatter()->setLocale(m_locale);
}
}
@@ -1632,4 +1635,28 @@ float Abstract3DController::radialLabelOffset() const
return m_radialLabelOffset;
}
+void Abstract3DController::setLocale(const QLocale &locale)
+{
+ if (m_locale != locale) {
+ m_locale = locale;
+
+ // Value axis formatters need to be updated
+ QValue3DAxis *axis = qobject_cast<QValue3DAxis *>(m_axisX);
+ if (axis)
+ axis->formatter()->setLocale(m_locale);
+ axis = qobject_cast<QValue3DAxis *>(m_axisY);
+ if (axis)
+ axis->formatter()->setLocale(m_locale);
+ axis = qobject_cast<QValue3DAxis *>(m_axisZ);
+ if (axis)
+ axis->formatter()->setLocale(m_locale);
+ emit localeChanged(m_locale);
+ }
+}
+
+QLocale Abstract3DController::locale() const
+{
+ return m_locale;
+}
+
QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/engine/abstract3dcontroller_p.h b/src/datavisualization/engine/abstract3dcontroller_p.h
index 3397fc62..03061a13 100644
--- a/src/datavisualization/engine/abstract3dcontroller_p.h
+++ b/src/datavisualization/engine/abstract3dcontroller_p.h
@@ -38,6 +38,7 @@
#include "qcustom3ditem.h"
#include <QtGui/QLinearGradient>
#include <QtCore/QTime>
+#include <QtCore/QLocale>
class QOpenGLFramebufferObject;
@@ -171,6 +172,7 @@ private:
QAbstract3DGraph::OptimizationHints m_optimizationHints;
bool m_reflectionEnabled;
qreal m_reflectivity;
+ QLocale m_locale;
protected:
Q3DScene *m_scene;
@@ -297,6 +299,9 @@ public:
void setRadialLabelOffset(float offset);
float radialLabelOffset() const;
+ void setLocale(const QLocale &locale);
+ QLocale locale() const;
+
void emitNeedRender();
virtual void clearSelection() = 0;
@@ -378,6 +383,7 @@ signals:
void radialLabelOffsetChanged(float offset);
void reflectionChanged(bool enabled);
void reflectivityChanged(qreal reflectivity);
+ void localeChanged(const QLocale &locale);
protected:
virtual QAbstract3DAxis *createDefaultAxis(QAbstract3DAxis::AxisOrientation orientation);
diff --git a/src/datavisualization/engine/abstract3drenderer_p.h b/src/datavisualization/engine/abstract3drenderer_p.h
index b31cfbd3..2072314b 100644
--- a/src/datavisualization/engine/abstract3drenderer_p.h
+++ b/src/datavisualization/engine/abstract3drenderer_p.h
@@ -287,6 +287,8 @@ protected:
bool m_reflectionEnabled;
qreal m_reflectivity;
+ QLocale m_locale;
+
private:
friend class Abstract3DController;
};
diff --git a/src/datavisualization/engine/qabstract3dgraph.cpp b/src/datavisualization/engine/qabstract3dgraph.cpp
index d906666c..8ced09fe 100644
--- a/src/datavisualization/engine/qabstract3dgraph.cpp
+++ b/src/datavisualization/engine/qabstract3dgraph.cpp
@@ -767,6 +767,25 @@ qreal QAbstract3DGraph::reflectivity() const
}
/*!
+ * \property QAbstract3DGraph::locale
+ * \since QtDataVisualization 1.2
+ *
+ * Sets the locale used for formatting various numeric labels.
+ * Defaults to \c{"C"} locale.
+ *
+ * \sa QValue3DAxis::labelFormat
+ */
+void QAbstract3DGraph::setLocale(const QLocale &locale)
+{
+ d_ptr->m_visualController->setLocale(locale);
+}
+
+QLocale QAbstract3DGraph::locale() const
+{
+ return d_ptr->m_visualController->locale();
+}
+
+/*!
* \internal
*/
bool QAbstract3DGraph::event(QEvent *event)
@@ -927,6 +946,8 @@ void QAbstract3DGraphPrivate::setVisualController(Abstract3DController *controll
&QAbstract3DGraph::reflectionChanged);
QObject::connect(m_visualController, &Abstract3DController::reflectivityChanged, q_ptr,
&QAbstract3DGraph::reflectivityChanged);
+ QObject::connect(m_visualController, &Abstract3DController::localeChanged, q_ptr,
+ &QAbstract3DGraph::localeChanged);
}
void QAbstract3DGraphPrivate::handleDevicePixelRatioChange()
diff --git a/src/datavisualization/engine/qabstract3dgraph.h b/src/datavisualization/engine/qabstract3dgraph.h
index e19a3e8e..2d76f780 100644
--- a/src/datavisualization/engine/qabstract3dgraph.h
+++ b/src/datavisualization/engine/qabstract3dgraph.h
@@ -25,6 +25,7 @@
#include <QtDataVisualization/qabstract3dinputhandler.h>
#include <QtGui/QWindow>
#include <QtGui/QOpenGLFunctions>
+#include <QtCore/QLocale>
QT_BEGIN_NAMESPACE_DATAVISUALIZATION
@@ -55,6 +56,7 @@ class QT_DATAVISUALIZATION_EXPORT QAbstract3DGraph : public QWindow, protected Q
Q_PROPERTY(qreal horizontalAspectRatio READ horizontalAspectRatio WRITE setHorizontalAspectRatio NOTIFY horizontalAspectRatioChanged)
Q_PROPERTY(bool reflection READ isReflection WRITE setReflection NOTIFY reflectionChanged)
Q_PROPERTY(qreal reflectivity READ reflectivity WRITE setReflectivity NOTIFY reflectivityChanged)
+ Q_PROPERTY(QLocale locale READ locale WRITE setLocale NOTIFY localeChanged)
protected:
explicit QAbstract3DGraph(QAbstract3DGraphPrivate *d, const QSurfaceFormat *format,
@@ -170,6 +172,9 @@ public:
void setReflectivity(qreal reflectivity);
qreal reflectivity() const;
+ void setLocale(const QLocale &locale);
+ QLocale locale() const;
+
protected:
bool event(QEvent *event);
void resizeEvent(QResizeEvent *event);
@@ -198,6 +203,7 @@ signals:
void horizontalAspectRatioChanged(qreal ratio);
void reflectionChanged(bool enabled);
void reflectivityChanged(qreal reflectivity);
+ void localeChanged(const QLocale &locale);
private:
Q_DISABLE_COPY(QAbstract3DGraph)