summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/datavisualization/data/qabstractdataproxy.cpp8
-rw-r--r--src/datavisualization/data/qabstractdataproxy.h2
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp69
-rw-r--r--src/datavisualization/engine/abstract3dcontroller_p.h7
-rw-r--r--src/datavisualization/input/qabstract3dinputhandler.cpp5
-rw-r--r--src/datavisualizationqml2/abstractdeclarative.cpp30
-rw-r--r--src/datavisualizationqml2/abstractdeclarative_p.h29
-rw-r--r--src/datavisualizationqml2/declarativebars.cpp3
-rw-r--r--src/datavisualizationqml2/declarativebars_p.h3
-rw-r--r--src/datavisualizationqml2/declarativescatter.cpp2
-rw-r--r--src/datavisualizationqml2/declarativescatter_p.h4
11 files changed, 100 insertions, 62 deletions
diff --git a/src/datavisualization/data/qabstractdataproxy.cpp b/src/datavisualization/data/qabstractdataproxy.cpp
index 4a2f4ee5..b44f365e 100644
--- a/src/datavisualization/data/qabstractdataproxy.cpp
+++ b/src/datavisualization/data/qabstractdataproxy.cpp
@@ -108,8 +108,10 @@ QAbstractDataProxy::DataType QAbstractDataProxy::type() const
*/
void QAbstractDataProxy::setItemLabelFormat(const QString &format)
{
- d_ptr->setItemLabelFormat(format);
- emit itemLabelFormatChanged();
+ if (format != itemLabelFormat()) {
+ d_ptr->setItemLabelFormat(format);
+ emit itemLabelFormatChanged(format);
+ }
}
/*!
@@ -121,7 +123,7 @@ QString QAbstractDataProxy::itemLabelFormat() const
}
/*!
- * \fn void QAbstractDataProxy::itemLabelFormatChanged()
+ * \fn void QAbstractDataProxy::itemLabelFormatChanged(QString format)
*
* Emitted when label format changes.
*/
diff --git a/src/datavisualization/data/qabstractdataproxy.h b/src/datavisualization/data/qabstractdataproxy.h
index db0e0863..d7793824 100644
--- a/src/datavisualization/data/qabstractdataproxy.h
+++ b/src/datavisualization/data/qabstractdataproxy.h
@@ -54,7 +54,7 @@ public:
QString itemLabelFormat() const;
signals:
- void itemLabelFormatChanged();
+ void itemLabelFormatChanged(QString format);
protected:
QScopedPointer<QAbstractDataProxyPrivate> d_ptr;
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp
index ee3e47e4..8d870716 100644
--- a/src/datavisualization/engine/abstract3dcontroller.cpp
+++ b/src/datavisualization/engine/abstract3dcontroller.cpp
@@ -693,10 +693,12 @@ QColor Abstract3DController::objectColor() const
void Abstract3DController::setTheme(QDataVis::Theme theme)
{
- m_theme.useTheme(theme);
-
- m_changeTracker.themeChanged = true;
- emitNeedRender();
+ if (theme != m_theme.theme()) {
+ m_theme.useTheme(theme);
+ m_changeTracker.themeChanged = true;
+ emit themeChanged(theme);
+ emitNeedRender();
+ }
}
Theme Abstract3DController::theme()
@@ -706,10 +708,12 @@ Theme Abstract3DController::theme()
void Abstract3DController::setFont(const QFont &font)
{
- m_font = font;
-
- m_changeTracker.fontChanged = true;
- emitNeedRender();
+ if (font != m_font) {
+ m_font = font;
+ m_changeTracker.fontChanged = true;
+ emit fontChanged(font);
+ emitNeedRender();
+ }
}
QFont Abstract3DController::font()
@@ -722,6 +726,7 @@ void Abstract3DController::setSelectionMode(QDataVis::SelectionFlags mode)
if (mode != m_selectionMode) {
m_selectionMode = mode;
m_changeTracker.selectionModeChanged = true;
+ emit selectionModeChanged(mode);
emitNeedRender();
}
}
@@ -733,11 +738,12 @@ QDataVis::SelectionFlags Abstract3DController::selectionMode()
void Abstract3DController::setShadowQuality(QDataVis::ShadowQuality quality)
{
- m_shadowQuality = quality;
-
- m_changeTracker.shadowQualityChanged = true;
- emit shadowQualityChanged(m_shadowQuality);
- emitNeedRender();
+ if (quality != m_shadowQuality) {
+ m_shadowQuality = quality;
+ m_changeTracker.shadowQualityChanged = true;
+ emit shadowQualityChanged(m_shadowQuality);
+ emitNeedRender();
+ }
}
QDataVis::ShadowQuality Abstract3DController::shadowQuality()
@@ -747,10 +753,12 @@ QDataVis::ShadowQuality Abstract3DController::shadowQuality()
void Abstract3DController::setLabelStyle(QDataVis::LabelStyle style)
{
- m_labelStyle = style;
-
- m_changeTracker.labelStyleChanged = true;
- emitNeedRender();
+ if (style != m_labelStyle) {
+ m_labelStyle = style;
+ m_changeTracker.labelStyleChanged = true;
+ emit labelStyleChanged(style);
+ emitNeedRender();
+ }
}
QDataVis::LabelStyle Abstract3DController::labelStyle()
@@ -760,9 +768,12 @@ QDataVis::LabelStyle Abstract3DController::labelStyle()
void Abstract3DController::setBackgroundEnabled(bool enable)
{
- m_isBackgroundEnabled = enable;
- m_changeTracker.backgroundEnabledChanged = true;
- emitNeedRender();
+ if (enable != m_isBackgroundEnabled) {
+ m_isBackgroundEnabled = enable;
+ m_changeTracker.backgroundEnabledChanged = true;
+ emit backgroundVisibleChanged(enable);
+ emitNeedRender();
+ }
}
bool Abstract3DController::backgroundEnabled()
@@ -772,9 +783,12 @@ bool Abstract3DController::backgroundEnabled()
void Abstract3DController::setGridEnabled(bool enable)
{
- m_isGridEnabled = enable;
- m_changeTracker.gridEnabledChanged = true;
- emitNeedRender();
+ if (enable != m_isGridEnabled) {
+ m_isGridEnabled = enable;
+ m_changeTracker.gridEnabledChanged = true;
+ emit gridVisibleChanged(enable);
+ emitNeedRender();
+ }
}
bool Abstract3DController::gridEnabled()
@@ -811,9 +825,12 @@ QPoint Abstract3DController::inputPosition()
void Abstract3DController::setMeshFileName(const QString &fileName)
{
- m_objFile = fileName;
- m_changeTracker.objFileChanged = true;
- emitNeedRender();
+ if (fileName != m_objFile) {
+ m_objFile = fileName;
+ m_changeTracker.objFileChanged = true;
+ emit meshFileNameChanged(fileName);
+ emitNeedRender();
+ }
}
QString Abstract3DController::meshFileName()
diff --git a/src/datavisualization/engine/abstract3dcontroller_p.h b/src/datavisualization/engine/abstract3dcontroller_p.h
index 450153a0..7dc5d8bc 100644
--- a/src/datavisualization/engine/abstract3dcontroller_p.h
+++ b/src/datavisualization/engine/abstract3dcontroller_p.h
@@ -323,6 +323,13 @@ public slots:
signals:
void shadowQualityChanged(QDataVis::ShadowQuality quality);
void activeInputHandlerChanged(QAbstract3DInputHandler *inputHandler);
+ void themeChanged(QDataVis::Theme theme);
+ void fontChanged(QFont font);
+ void selectionModeChanged(QDataVis::SelectionFlags mode);
+ void labelStyleChanged(QDataVis::LabelStyle style);
+ void backgroundVisibleChanged(bool visible);
+ void gridVisibleChanged(bool visible);
+ void meshFileNameChanged(QString filename);
void needRender();
protected:
diff --git a/src/datavisualization/input/qabstract3dinputhandler.cpp b/src/datavisualization/input/qabstract3dinputhandler.cpp
index b84711a4..8a8313ef 100644
--- a/src/datavisualization/input/qabstract3dinputhandler.cpp
+++ b/src/datavisualization/input/qabstract3dinputhandler.cpp
@@ -173,7 +173,10 @@ Q3DScene *QAbstract3DInputHandler::scene() const
void QAbstract3DInputHandler::setScene(Q3DScene *scene)
{
- d_ptr->m_scene = scene;
+ if (scene != d_ptr->m_scene) {
+ d_ptr->m_scene = scene;
+ emit sceneChanged(scene);
+ }
}
/*!
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp
index d4b5c7b7..6abc8684 100644
--- a/src/datavisualizationqml2/abstractdeclarative.cpp
+++ b/src/datavisualizationqml2/abstractdeclarative.cpp
@@ -122,11 +122,23 @@ void AbstractDeclarative::setSharedController(Abstract3DController *controller)
Q_ASSERT(controller);
m_controller = controller;
QObject::connect(m_controller, &Abstract3DController::shadowQualityChanged, this,
- &AbstractDeclarative::handleShadowQualityUpdate);
- emit sceneChanged(m_controller->scene());
+ &AbstractDeclarative::shadowQualityChanged);
QObject::connect(m_controller, &Abstract3DController::activeInputHandlerChanged, this,
- &AbstractDeclarative::handleInputHandlerUpdate);
- emit inputHandlerChanged(m_controller->activeInputHandler());
+ &AbstractDeclarative::inputHandlerChanged);
+ QObject::connect(m_controller, &Abstract3DController::themeChanged, this,
+ &AbstractDeclarative::themeChanged);
+ QObject::connect(m_controller, &Abstract3DController::fontChanged, this,
+ &AbstractDeclarative::fontChanged);
+ QObject::connect(m_controller, &Abstract3DController::selectionModeChanged, this,
+ &AbstractDeclarative::selectionModeChanged);
+ QObject::connect(m_controller, &Abstract3DController::labelStyleChanged, this,
+ &AbstractDeclarative::labelStyleChanged);
+ QObject::connect(m_controller, &Abstract3DController::backgroundVisibleChanged, this,
+ &AbstractDeclarative::backgroundVisibleChanged);
+ QObject::connect(m_controller, &Abstract3DController::gridVisibleChanged, this,
+ &AbstractDeclarative::gridVisibleChanged);
+ QObject::connect(m_controller->activeDataProxy(), &QAbstractDataProxy::itemLabelFormatChanged, this,
+ &AbstractDeclarative::itemLabelFormatChanged);
}
QAbstract3DInputHandler* AbstractDeclarative::inputHandler() const
@@ -176,14 +188,4 @@ void AbstractDeclarative::wheelEvent(QWheelEvent *event)
m_controller->wheelEvent(event);
}
-void AbstractDeclarative::handleShadowQualityUpdate(QDataVis::ShadowQuality quality)
-{
- emit shadowQualityChanged(quality);
-}
-
-void AbstractDeclarative::handleInputHandlerUpdate(QAbstract3DInputHandler *inputHandler)
-{
- emit inputHandlerChanged(inputHandler);
-}
-
QT_DATAVISUALIZATION_END_NAMESPACE
diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h
index 842dbf4b..646ed785 100644
--- a/src/datavisualizationqml2/abstractdeclarative_p.h
+++ b/src/datavisualizationqml2/abstractdeclarative_p.h
@@ -42,16 +42,16 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE
class AbstractDeclarative : public QQuickItem
{
Q_OBJECT
- Q_PROPERTY(QtDataVisualization::QDataVis::SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode)
- Q_PROPERTY(QtDataVisualization::QDataVis::LabelStyle labelStyle READ labelStyle WRITE setLabelStyle)
- Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality)
- Q_PROPERTY(Q3DScene* scene READ scene NOTIFY sceneChanged)
+ Q_PROPERTY(QtDataVisualization::QDataVis::SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged)
+ Q_PROPERTY(QtDataVisualization::QDataVis::LabelStyle labelStyle READ labelStyle WRITE setLabelStyle NOTIFY labelStyleChanged)
+ Q_PROPERTY(QtDataVisualization::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality NOTIFY shadowQualityChanged)
+ Q_PROPERTY(Q3DScene* scene READ scene)
Q_PROPERTY(QAbstract3DInputHandler* inputHandler READ inputHandler WRITE setInputHandler NOTIFY inputHandlerChanged)
- Q_PROPERTY(QtDataVisualization::QDataVis::Theme theme READ theme WRITE setTheme)
- Q_PROPERTY(QFont font READ font WRITE setFont)
- Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible)
- Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible)
- Q_PROPERTY(QString itemLabelFormat READ itemLabelFormat WRITE setItemLabelFormat)
+ Q_PROPERTY(QtDataVisualization::QDataVis::Theme theme READ theme WRITE setTheme NOTIFY themeChanged)
+ Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged)
+ Q_PROPERTY(bool gridVisible READ isGridVisible WRITE setGridVisible NOTIFY gridVisibleChanged)
+ Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible NOTIFY backgroundVisibleChanged)
+ Q_PROPERTY(QString itemLabelFormat READ itemLabelFormat WRITE setItemLabelFormat NOTIFY itemLabelFormatChanged)
public:
explicit AbstractDeclarative(QQuickItem *parent = 0);
@@ -96,14 +96,17 @@ protected:
virtual void mouseMoveEvent(QMouseEvent *event);
virtual void wheelEvent(QWheelEvent *event);
- // Used to detect when shadow quality changes autonomously due to e.g. resizing.
- virtual void handleShadowQualityUpdate(QDataVis::ShadowQuality quality);
- virtual void handleInputHandlerUpdate(QAbstract3DInputHandler *inputHandler);
signals:
// Signals shadow quality changes.
void shadowQualityChanged(QDataVis::ShadowQuality quality);
- void sceneChanged(Q3DScene *scene);
void inputHandlerChanged(QAbstract3DInputHandler *inputHandler);
+ void themeChanged(QDataVis::Theme theme);
+ void fontChanged(QFont font);
+ void selectionModeChanged(QDataVis::SelectionFlags mode);
+ void labelStyleChanged(QDataVis::LabelStyle style);
+ void backgroundVisibleChanged(bool visible);
+ void gridVisibleChanged(bool visible);
+ void itemLabelFormatChanged(QString format);
private:
Abstract3DController *m_controller;
diff --git a/src/datavisualizationqml2/declarativebars.cpp b/src/datavisualizationqml2/declarativebars.cpp
index 52b19807..09277272 100644
--- a/src/datavisualizationqml2/declarativebars.cpp
+++ b/src/datavisualizationqml2/declarativebars.cpp
@@ -43,6 +43,8 @@ DeclarativeBars::DeclarativeBars(QQuickItem *parent)
AbstractDeclarative::setSharedController(m_shared);
QObject::connect(m_shared, &Bars3DController::selectedBarChanged, this,
&DeclarativeBars::selectedBarChanged);
+ QObject::connect(m_shared, &Abstract3DController::meshFileNameChanged, this,
+ &DeclarativeBars::meshFileNameChanged);
QItemModelBarDataProxy *proxy = new QItemModelBarDataProxy;
m_shared->setActiveDataProxy(proxy);
@@ -53,7 +55,6 @@ DeclarativeBars::~DeclarativeBars()
delete m_shared;
}
-
QSGNode *DeclarativeBars::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
{
// If old node exists and has right size, reuse it.
diff --git a/src/datavisualizationqml2/declarativebars_p.h b/src/datavisualizationqml2/declarativebars_p.h
index 16fe6d1f..06444dc8 100644
--- a/src/datavisualizationqml2/declarativebars_p.h
+++ b/src/datavisualizationqml2/declarativebars_p.h
@@ -56,7 +56,7 @@ class DeclarativeBars : public AbstractDeclarative
Q_PROPERTY(QSizeF barSpacing READ barSpacing WRITE setBarSpacing)
Q_PROPERTY(bool barSpacingRelative READ isBarSpacingRelative WRITE setBarSpacingRelative)
Q_PROPERTY(bool barSmoothingEnabled READ isBarSmoothingEnabled WRITE setBarSmoothingEnabled)
- Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName)
+ Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName NOTIFY meshFileNameChanged)
Q_PROPERTY(QPointF selectedBar READ selectedBar WRITE setSelectedBar NOTIFY selectedBarChanged)
public:
@@ -98,6 +98,7 @@ public:
signals:
void selectedBarChanged(const QPointF &position);
+ void meshFileNameChanged(QString filename);
protected:
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *);
diff --git a/src/datavisualizationqml2/declarativescatter.cpp b/src/datavisualizationqml2/declarativescatter.cpp
index a2ef9369..d18ff208 100644
--- a/src/datavisualizationqml2/declarativescatter.cpp
+++ b/src/datavisualizationqml2/declarativescatter.cpp
@@ -44,6 +44,8 @@ DeclarativeScatter::DeclarativeScatter(QQuickItem *parent)
QObject::connect(m_shared, &Scatter3DController::selectedItemIndexChanged, this,
&DeclarativeScatter::selectedItemIndexChanged);
+ QObject::connect(m_shared, &Abstract3DController::meshFileNameChanged, this,
+ &DeclarativeScatter::meshFileNameChanged);
}
DeclarativeScatter::~DeclarativeScatter()
diff --git a/src/datavisualizationqml2/declarativescatter_p.h b/src/datavisualizationqml2/declarativescatter_p.h
index 922cf05e..62cbb605 100644
--- a/src/datavisualizationqml2/declarativescatter_p.h
+++ b/src/datavisualizationqml2/declarativescatter_p.h
@@ -51,8 +51,7 @@ class DeclarativeScatter : public AbstractDeclarative
Q_PROPERTY(Q3DValueAxis *axisZ READ axisZ WRITE setAxisZ)
Q_PROPERTY(QtDataVisualization::QDataVis::MeshStyle objectType READ objectType WRITE setObjectType)
Q_PROPERTY(bool objectSmoothingEnabled READ isObjectSmoothingEnabled WRITE setObjectSmoothingEnabled)
- Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName)
- Q_PROPERTY(QString itemLabelFormat READ itemLabelFormat WRITE setItemLabelFormat)
+ Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName NOTIFY meshFileNameChanged)
Q_PROPERTY(int selectedItemIndex READ selectedItemIndex WRITE setSelectedItemIndex NOTIFY selectedItemIndexChanged)
public:
@@ -85,6 +84,7 @@ public:
signals:
void selectedItemIndexChanged(int index);
+ void meshFileNameChanged(QString filename);
protected:
Scatter3DController *m_shared;