summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml2
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-05-12 10:06:27 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-05-12 10:07:15 +0300
commit6880277f23b47117f7788f08f855ed99b5120f9f (patch)
treede8b9e64ffce03a3ce77c8ffac396f7174e91956 /src/datavisualizationqml2
parent590d11726e0708e9f8fad0ec386cc5859dbe5cc8 (diff)
CustomDataItem made into a public class
Task-number: QTRD-3055 Change-Id: I1e449df7c1bcb48fc639dbae579e2e1499c9ef2b Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualizationqml2')
-rw-r--r--src/datavisualizationqml2/abstractdeclarative.cpp51
-rw-r--r--src/datavisualizationqml2/abstractdeclarative_p.h17
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.cpp5
-rw-r--r--src/datavisualizationqml2/datavisualizationqml2_plugin.h3
-rw-r--r--src/datavisualizationqml2/declarativebars_p.h1
-rw-r--r--src/datavisualizationqml2/declarativecolor.cpp2
-rw-r--r--src/datavisualizationqml2/declarativetheme.cpp8
-rw-r--r--src/datavisualizationqml2/declarativetheme_p.h8
8 files changed, 69 insertions, 26 deletions
diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp
index 70ba8df8..fa69cac9 100644
--- a/src/datavisualizationqml2/abstractdeclarative.cpp
+++ b/src/datavisualizationqml2/abstractdeclarative.cpp
@@ -211,19 +211,19 @@ bool AbstractDeclarative::shadowsSupported() const
return m_controller->shadowsSupported();
}
-int AbstractDeclarative::addCustomItem(const QString &meshFile, const QVector3D &position,
- const QVector3D &scaling, const QQuaternion &rotation,
- const QString &textureFile)
+int AbstractDeclarative::addCustomItem(QCustom3DItem *item)
{
- QImage textureImage;
- if (!textureFile.isNull())
- textureImage = QImage(textureFile);
- return m_controller->addCustomItem(meshFile, position, scaling, rotation, textureImage);
+ return m_controller->addCustomItem(item);
}
-void AbstractDeclarative::removeCustomItemAt(int index)
+void AbstractDeclarative::removeCustomItems()
{
- m_controller->deleteCustomItem(index);
+ m_controller->deleteCustomItems();
+}
+
+void AbstractDeclarative::removeCustomItem(QCustom3DItem *item)
+{
+ m_controller->deleteCustomItem(item);
}
void AbstractDeclarative::removeCustomItemAt(const QVector3D &position)
@@ -231,6 +231,39 @@ void AbstractDeclarative::removeCustomItemAt(const QVector3D &position)
m_controller->deleteCustomItem(position);
}
+QQmlListProperty<QCustom3DItem> AbstractDeclarative::customItemList()
+{
+ return QQmlListProperty<QCustom3DItem>(this, this,
+ &AbstractDeclarative::appendCustomItemFunc,
+ &AbstractDeclarative::countCustomItemFunc,
+ &AbstractDeclarative::atCustomItemFunc,
+ &AbstractDeclarative::clearCustomItemFunc);
+}
+
+void AbstractDeclarative::appendCustomItemFunc(QQmlListProperty<QCustom3DItem> *list,
+ QCustom3DItem *item)
+{
+ AbstractDeclarative *decl = reinterpret_cast<AbstractDeclarative *>(list->data);
+ decl->addCustomItem(item);
+}
+
+int AbstractDeclarative::countCustomItemFunc(QQmlListProperty<QCustom3DItem> *list)
+{
+ return reinterpret_cast<AbstractDeclarative *>(list->data)->m_controller->m_customItems.size();
+}
+
+QCustom3DItem *AbstractDeclarative::atCustomItemFunc(QQmlListProperty<QCustom3DItem> *list,
+ int index)
+{
+ return reinterpret_cast<AbstractDeclarative *>(list->data)->m_controller->m_customItems.at(index);
+}
+
+void AbstractDeclarative::clearCustomItemFunc(QQmlListProperty<QCustom3DItem> *list)
+{
+ AbstractDeclarative *decl = reinterpret_cast<AbstractDeclarative *>(list->data);
+ decl->removeCustomItems();
+}
+
void AbstractDeclarative::setSharedController(Abstract3DController *controller)
{
Q_ASSERT(controller);
diff --git a/src/datavisualizationqml2/abstractdeclarative_p.h b/src/datavisualizationqml2/abstractdeclarative_p.h
index d5ad8836..8121e35d 100644
--- a/src/datavisualizationqml2/abstractdeclarative_p.h
+++ b/src/datavisualizationqml2/abstractdeclarative_p.h
@@ -68,6 +68,7 @@ class AbstractDeclarative : public QQuickItem
Q_PROPERTY(RenderingMode renderingMode READ renderingMode WRITE setRenderingMode NOTIFY renderingModeChanged)
Q_PROPERTY(bool measureFps READ measureFps WRITE setMeasureFps NOTIFY measureFpsChanged REVISION 1)
Q_PROPERTY(qreal currentFps READ currentFps NOTIFY currentFpsChanged REVISION 1)
+ Q_PROPERTY(QQmlListProperty<QCustom3DItem> customItemList READ customItemList REVISION 1)
public:
enum SelectionFlag {
@@ -128,14 +129,18 @@ public:
Q_INVOKABLE virtual void clearSelection();
- Q_REVISION(1) Q_INVOKABLE virtual int addCustomItem(const QString &meshFile,
- const QVector3D &position,
- const QVector3D &scaling,
- const QQuaternion &rotation,
- const QString &textureFile = 0);
- Q_REVISION(1) Q_INVOKABLE virtual void removeCustomItemAt(int index);
+ Q_REVISION(1) Q_INVOKABLE virtual int addCustomItem(QCustom3DItem *item);
+ Q_REVISION(1) Q_INVOKABLE virtual void removeCustomItems();
+ Q_REVISION(1) Q_INVOKABLE virtual void removeCustomItem(QCustom3DItem *item);
Q_REVISION(1) Q_INVOKABLE virtual void removeCustomItemAt(const QVector3D &position);
+ QQmlListProperty<QCustom3DItem> customItemList();
+ static void appendCustomItemFunc(QQmlListProperty<QCustom3DItem> *list,
+ QCustom3DItem *item);
+ static int countCustomItemFunc(QQmlListProperty<QCustom3DItem> *list);
+ static QCustom3DItem *atCustomItemFunc(QQmlListProperty<QCustom3DItem> *list, int index);
+ static void clearCustomItemFunc(QQmlListProperty<QCustom3DItem> *list);
+
virtual void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry);
void setSharedController(Abstract3DController *controller);
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
index d7a82d6b..d419d904 100644
--- a/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
+++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.cpp
@@ -43,7 +43,7 @@ void QtDataVisualizationQml2Plugin::registerTypes(const char *uri)
qmlRegisterUncreatableType<AbstractDeclarative>(uri, 1, 0, "AbstractGraph3D",
QLatin1String("Trying to create uncreatable: AbstractGraph3D."));
qmlRegisterUncreatableType<Declarative3DScene>(uri, 1, 0, "Scene3D",
- QLatin1String("Trying to create uncreatable: Scene3D."));
+ QLatin1String("Trying to create uncreatable: Scene3D."));
qmlRegisterUncreatableType<QAbstract3DSeries>(uri, 1, 0, "Abstract3DSeries",
QLatin1String("Trying to create uncreatable: Abstract3DSeries."));
qmlRegisterUncreatableType<QBar3DSeries>(uri, 1, 0, "QBar3DSeries",
@@ -89,7 +89,7 @@ void QtDataVisualizationQml2Plugin::registerTypes(const char *uri)
// New revisions
qmlRegisterType<QValue3DAxis, 1>(uri, 1, 1, "ValueAxis3D");
qmlRegisterUncreatableType<QAbstract3DSeries, 1>(uri, 1, 1, "Abstract3DSeries",
- QLatin1String("Trying to create uncreatable: Abstract3DSeries."));
+ QLatin1String("Trying to create uncreatable: Abstract3DSeries."));
qmlRegisterUncreatableType<AbstractDeclarative, 1>(uri, 1, 1, "AbstractGraph3D",
QLatin1String("Trying to create uncreatable: AbstractGraph3D."));
qmlRegisterType<QItemModelBarDataProxy, 1>(uri, 1, 1, "ItemModelBarDataProxy");
@@ -97,6 +97,7 @@ void QtDataVisualizationQml2Plugin::registerTypes(const char *uri)
// New types
qmlRegisterType<QValue3DAxisFormatter>(uri, 1, 1, "ValueAxis3DFormatter");
qmlRegisterType<QLogValue3DAxisFormatter>(uri, 1, 1, "LogValueAxis3DFormatter");
+ qmlRegisterType<QCustom3DItem>(uri, 1, 1, "Custom3DItem");
}
QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualizationqml2/datavisualizationqml2_plugin.h b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
index 14fb530e..fcc0bcde 100644
--- a/src/datavisualizationqml2/datavisualizationqml2_plugin.h
+++ b/src/datavisualizationqml2/datavisualizationqml2_plugin.h
@@ -45,6 +45,7 @@
#include "qabstract3dinputhandler.h"
#include "declarativecolor_p.h"
#include "declarativescene_p.h"
+#include "qcustom3ditem.h"
#include <QtQml/QQmlExtensionPlugin>
@@ -96,6 +97,8 @@ QML_DECLARE_TYPE(DeclarativeTheme3D)
QML_DECLARE_TYPE(QAbstract3DInputHandler)
+QML_DECLARE_TYPE(QCustom3DItem)
+
QT_BEGIN_NAMESPACE_DATAVISUALIZATION
class QtDataVisualizationQml2Plugin : public QQmlExtensionPlugin
diff --git a/src/datavisualizationqml2/declarativebars_p.h b/src/datavisualizationqml2/declarativebars_p.h
index 97f5882a..ae44e2ab 100644
--- a/src/datavisualizationqml2/declarativebars_p.h
+++ b/src/datavisualizationqml2/declarativebars_p.h
@@ -88,7 +88,6 @@ public:
Q_INVOKABLE void insertSeries(int index, QBar3DSeries *series);
void setPrimarySeries(QBar3DSeries *series);
QBar3DSeries *primarySeries() const;
-
QBar3DSeries *selectedSeries() const;
public slots:
diff --git a/src/datavisualizationqml2/declarativecolor.cpp b/src/datavisualizationqml2/declarativecolor.cpp
index ffd4227f..f8ef06d2 100644
--- a/src/datavisualizationqml2/declarativecolor.cpp
+++ b/src/datavisualizationqml2/declarativecolor.cpp
@@ -20,6 +20,8 @@
QT_BEGIN_NAMESPACE_DATAVISUALIZATION
+// TODO: Docs missing?
+
DeclarativeColor::DeclarativeColor(QObject *parent)
: QObject(parent)
{
diff --git a/src/datavisualizationqml2/declarativetheme.cpp b/src/datavisualizationqml2/declarativetheme.cpp
index f051341e..ab10155e 100644
--- a/src/datavisualizationqml2/declarativetheme.cpp
+++ b/src/datavisualizationqml2/declarativetheme.cpp
@@ -36,17 +36,17 @@ DeclarativeTheme3D::~DeclarativeTheme3D()
{
}
-QQmlListProperty<QObject> DeclarativeTheme3D::seriesChildren()
+QQmlListProperty<QObject> DeclarativeTheme3D::themeChildren()
{
- return QQmlListProperty<QObject>(this, this, &DeclarativeTheme3D::appendSeriesChildren,
+ return QQmlListProperty<QObject>(this, this, &DeclarativeTheme3D::appendThemeChildren,
0, 0, 0);
}
-void DeclarativeTheme3D::appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element)
+void DeclarativeTheme3D::appendThemeChildren(QQmlListProperty<QObject> *list, QObject *element)
{
Q_UNUSED(list)
Q_UNUSED(element)
- // Nothing to do, seriesChildren is there only to enable scoping gradient items in Theme3D item.
+ // Nothing to do, themeChildren is there only to enable scoping gradient items in Theme3D item.
}
void DeclarativeTheme3D::handleTypeChange(Theme themeType)
diff --git a/src/datavisualizationqml2/declarativetheme_p.h b/src/datavisualizationqml2/declarativetheme_p.h
index a7f40b1e..89b66f8c 100644
--- a/src/datavisualizationqml2/declarativetheme_p.h
+++ b/src/datavisualizationqml2/declarativetheme_p.h
@@ -42,19 +42,19 @@ class DeclarativeTheme3D : public Q3DTheme, public QQmlParserStatus
{
Q_OBJECT
Q_INTERFACES(QQmlParserStatus)
- Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren)
+ Q_PROPERTY(QQmlListProperty<QObject> themeChildren READ themeChildren)
Q_PROPERTY(QQmlListProperty<DeclarativeColor> baseColors READ baseColors)
Q_PROPERTY(QQmlListProperty<ColorGradient> baseGradients READ baseGradients)
Q_PROPERTY(ColorGradient *singleHighlightGradient READ singleHighlightGradient WRITE setSingleHighlightGradient NOTIFY singleHighlightGradientChanged)
Q_PROPERTY(ColorGradient *multiHighlightGradient READ multiHighlightGradient WRITE setMultiHighlightGradient NOTIFY multiHighlightGradientChanged)
- Q_CLASSINFO("DefaultProperty", "seriesChildren")
+ Q_CLASSINFO("DefaultProperty", "themeChildren")
public:
DeclarativeTheme3D(QObject *parent = 0);
virtual ~DeclarativeTheme3D();
- QQmlListProperty<QObject> seriesChildren();
- static void appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element);
+ QQmlListProperty<QObject> themeChildren();
+ static void appendThemeChildren(QQmlListProperty<QObject> *list, QObject *element);
QQmlListProperty<DeclarativeColor> baseColors();
static void appendBaseColorsFunc(QQmlListProperty<DeclarativeColor> *list,