diff options
Diffstat (limited to 'src/datavisualizationqml2')
-rw-r--r-- | src/datavisualizationqml2/declarativebars.cpp | 12 | ||||
-rw-r--r-- | src/datavisualizationqml2/declarativebars_p.h | 5 | ||||
-rw-r--r-- | src/datavisualizationqml2/declarativeseries.cpp | 12 | ||||
-rw-r--r-- | src/datavisualizationqml2/declarativeseries_p.h | 9 |
4 files changed, 21 insertions, 17 deletions
diff --git a/src/datavisualizationqml2/declarativebars.cpp b/src/datavisualizationqml2/declarativebars.cpp index cf74d444..55c02cce 100644 --- a/src/datavisualizationqml2/declarativebars.cpp +++ b/src/datavisualizationqml2/declarativebars.cpp @@ -41,8 +41,6 @@ DeclarativeBars::DeclarativeBars(QQuickItem *parent) // Create the shared component on the main GUI thread. m_shared = new Bars3DController(boundingRect().toRect()); AbstractDeclarative::setSharedController(m_shared); - QObject::connect(m_shared, &Bars3DController::selectedBarChanged, this, - &DeclarativeBars::selectedBarChanged); QObject::connect(m_shared, &Abstract3DController::meshFileNameChanged, this, &DeclarativeBars::meshFileNameChanged); } @@ -198,16 +196,6 @@ QString DeclarativeBars::meshFileName() const return m_shared->meshFileName(); } -void DeclarativeBars::setSelectedBar(const QPointF &position) -{ - m_shared->setSelectedBar(position.toPoint()); -} - -QPointF DeclarativeBars::selectedBar() const -{ - return QPointF(m_shared->selectedBar()); -} - QQmlListProperty<QBar3DSeries> DeclarativeBars::seriesList() { return QQmlListProperty<QBar3DSeries>(this, this, diff --git a/src/datavisualizationqml2/declarativebars_p.h b/src/datavisualizationqml2/declarativebars_p.h index a54e5ff7..86cd993e 100644 --- a/src/datavisualizationqml2/declarativebars_p.h +++ b/src/datavisualizationqml2/declarativebars_p.h @@ -57,7 +57,6 @@ class DeclarativeBars : public AbstractDeclarative Q_PROPERTY(bool barSpacingRelative READ isBarSpacingRelative WRITE setBarSpacingRelative NOTIFY barSpacingRelativeChanged) Q_PROPERTY(bool barSmoothingEnabled READ isBarSmoothingEnabled WRITE setBarSmoothingEnabled NOTIFY meshFileNameChanged) Q_PROPERTY(QString meshFileName READ meshFileName WRITE setMeshFileName NOTIFY meshFileNameChanged) - Q_PROPERTY(QPointF selectedBar READ selectedBar WRITE setSelectedBar NOTIFY selectedBarChanged) Q_PROPERTY(QQmlListProperty<QBar3DSeries> seriesList READ seriesList) Q_CLASSINFO("DefaultProperty", "seriesList") @@ -92,9 +91,6 @@ public: void setMeshFileName(const QString &objFileName); QString meshFileName() const; - void setSelectedBar(const QPointF &position); - QPointF selectedBar() const; - QQmlListProperty<QBar3DSeries> seriesList(); static void appendSeriesFunc(QQmlListProperty<QBar3DSeries> *list, QBar3DSeries *series); static int countSeriesFunc(QQmlListProperty<QBar3DSeries> *list); @@ -104,7 +100,6 @@ public: Q_INVOKABLE void removeSeries(QBar3DSeries *series); signals: - void selectedBarChanged(const QPointF &position); void barThicknessChanged(qreal thicknessRatio); void barSpacingChanged(QSizeF spacing); void barSpacingRelativeChanged(bool relative); diff --git a/src/datavisualizationqml2/declarativeseries.cpp b/src/datavisualizationqml2/declarativeseries.cpp index 81bbb649..8b7c0584 100644 --- a/src/datavisualizationqml2/declarativeseries.cpp +++ b/src/datavisualizationqml2/declarativeseries.cpp @@ -26,6 +26,8 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE DeclarativeBar3DSeries::DeclarativeBar3DSeries(QObject *parent) : QBar3DSeries(parent) { + QObject::connect(this, &QBar3DSeries::selectedBarChanged, this, + &DeclarativeBar3DSeries::selectedBarChanged); } DeclarativeBar3DSeries::~DeclarativeBar3DSeries() @@ -45,6 +47,16 @@ void DeclarativeBar3DSeries::appendSeriesChildren(QQmlListProperty<QObject> *lis reinterpret_cast<DeclarativeBar3DSeries *>(list->data)->setDataProxy(proxy); } +void DeclarativeBar3DSeries::setSelectedBar(const QPointF &position) +{ + QBar3DSeries::setSelectedBar(position.toPoint()); +} + +QPointF DeclarativeBar3DSeries::selectedBar() const +{ + return QBar3DSeries::selectedBar(); +} + DeclarativeScatter3DSeries::DeclarativeScatter3DSeries(QObject *parent) : QScatter3DSeries(parent) { diff --git a/src/datavisualizationqml2/declarativeseries_p.h b/src/datavisualizationqml2/declarativeseries_p.h index cb6b76c2..ac45ec3e 100644 --- a/src/datavisualizationqml2/declarativeseries_p.h +++ b/src/datavisualizationqml2/declarativeseries_p.h @@ -41,6 +41,9 @@ class DeclarativeBar3DSeries : public QBar3DSeries { Q_OBJECT Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) + // selectedBar property is overloaded to use QPointF instead of QPoint to work around qml bug + // where Qt.point(0, 0) can't be assigned due to error "Cannot assign QPointF to QPoint". + Q_PROPERTY(QPointF selectedBar READ selectedBar WRITE setSelectedBar NOTIFY selectedBarChanged) Q_CLASSINFO("DefaultProperty", "seriesChildren") public: DeclarativeBar3DSeries(QObject *parent = 0); @@ -48,6 +51,12 @@ public: QQmlListProperty<QObject> seriesChildren(); static void appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element); + + void setSelectedBar(const QPointF &position); + QPointF selectedBar() const; + +signals: + void selectedBarChanged(QPointF position); }; class DeclarativeScatter3DSeries : public QScatter3DSeries |