summaryrefslogtreecommitdiffstats
path: root/src/private
diff options
context:
space:
mode:
Diffstat (limited to 'src/private')
-rw-r--r--src/private/Style.qml3
-rw-r--r--src/private/plugin.cpp4
-rw-r--r--src/private/private.pro4
-rw-r--r--src/private/qquickabstractstyle.cpp (renamed from src/private/qquickpaddedstyle.cpp)58
-rw-r--r--src/private/qquickabstractstyle_p.h (renamed from src/private/qquickpaddedstyle_p.h)25
5 files changed, 68 insertions, 26 deletions
diff --git a/src/private/Style.qml b/src/private/Style.qml
index 990f61dd7..6b4c08ef7 100644
--- a/src/private/Style.qml
+++ b/src/private/Style.qml
@@ -39,6 +39,7 @@
****************************************************************************/
import QtQuick 2.1
import QtQuick.Controls 1.0
+import QtQuick.Controls.Private 1.0
/*!
\qmltype Style
@@ -46,7 +47,7 @@ import QtQuick.Controls 1.0
\inqmlmodule QtQuick.Controls.Private 1.0
*/
-QtObject {
+AbstractStyle {
/*! The control attached to this style */
readonly property Item control: __control
diff --git a/src/private/plugin.cpp b/src/private/plugin.cpp
index 17bfed07f..e33c2d375 100644
--- a/src/private/plugin.cpp
+++ b/src/private/plugin.cpp
@@ -45,7 +45,7 @@
#include "qquicktooltip_p.h"
#include "qquickcontrolsettings_p.h"
#include "qquickspinboxvalidator_p.h"
-#include "qquickpaddedstyle_p.h"
+#include "qquickabstractstyle_p.h"
#ifndef QT_NO_WIDGETS
#include "qquickstyleitem_p.h"
@@ -81,7 +81,7 @@ public:
void QtQuickControlsPrivatePlugin::registerTypes(const char *uri)
{
- qmlRegisterType<QQuickPaddedStyle>(uri, 1, 0, "PaddedStyle");
+ qmlRegisterType<QQuickAbstractStyle>(uri, 1, 0, "AbstractStyle");
qmlRegisterType<QQuickPadding>();
qmlRegisterType<QQuickRangeModel>(uri, 1, 0, "RangeModel");
qmlRegisterType<QQuickWheelArea>(uri, 1, 0, "WheelArea");
diff --git a/src/private/private.pro b/src/private/private.pro
index cbb08a80a..803b703f4 100644
--- a/src/private/private.pro
+++ b/src/private/private.pro
@@ -10,7 +10,7 @@ HEADERS += \
$$PWD/qquickrangemodel_p_p.h \
$$PWD/qquickcontrolsettings_p.h \
$$PWD/qquickwheelarea_p.h \
- $$PWD/qquickpaddedstyle_p.h \
+ $$PWD/qquickabstractstyle_p.h \
$$PWD/qquickpadding_p.h
SOURCES += \
@@ -20,7 +20,7 @@ SOURCES += \
$$PWD/qquickrangemodel.cpp \
$$PWD/qquickcontrolsettings.cpp \
$$PWD/qquickwheelarea.cpp \
- $$PWD/qquickpaddedstyle.cpp
+ $$PWD/qquickabstractstyle.cpp
# private qml files
QML_FILES += \
diff --git a/src/private/qquickpaddedstyle.cpp b/src/private/qquickabstractstyle.cpp
index 320a3f535..eba57b03b 100644
--- a/src/private/qquickpaddedstyle.cpp
+++ b/src/private/qquickabstractstyle.cpp
@@ -39,30 +39,60 @@
**
****************************************************************************/
-#include "qquickpaddedstyle_p.h"
-#include "qquickpadding_p.h"
+#include "qquickabstractstyle_p.h"
+
+QT_BEGIN_NAMESPACE
/*!
- \qmltype PaddedStyle
- \instantiates QQuickPaddedStyle
+ \qmltype AbstractStyle
+ \instantiates QQuickAbstractStyle
\qmlabstract
\internal
*/
-QT_BEGIN_NAMESPACE
+/*!
+ \qmlproperty int AbstractStyle::padding.top
+ \qmlproperty int AbstractStyle::padding.left
+ \qmlproperty int AbstractStyle::padding.right
+ \qmlproperty int AbstractStyle::padding.bottom
+
+ This grouped property holds the \c top, \c left, \c right and \c bottom padding.
+*/
-QQuickPaddedStyle::QQuickPaddedStyle(QQuickItem *parent) :
- QQuickItem(parent)
+QQuickAbstractStyle::QQuickAbstractStyle(QObject *parent) : QObject(parent)
{
}
-/*!
- \qmlproperty int PaddedStyle::padding.top
- \qmlproperty int PaddedStyle::padding.left
- \qmlproperty int PaddedStyle::padding.right
- \qmlproperty int PaddedStyle::padding.bottom
+QQmlListProperty<QObject> QQuickAbstractStyle::data()
+{
+ return QQmlListProperty<QObject>(this, 0, &QQuickAbstractStyle::data_append, &QQuickAbstractStyle::data_count,
+ &QQuickAbstractStyle::data_at, &QQuickAbstractStyle::data_clear);
+}
- This grouped property holds the \c top, \c left, \c right and \c bottom padding.
-*/
+void QQuickAbstractStyle::data_append(QQmlListProperty<QObject> *list, QObject *object)
+{
+ if (QQuickAbstractStyle *style = qobject_cast<QQuickAbstractStyle *>(list->object))
+ style->m_data.append(object);
+}
+
+int QQuickAbstractStyle::data_count(QQmlListProperty<QObject> *list)
+{
+ if (QQuickAbstractStyle *style = qobject_cast<QQuickAbstractStyle *>(list->object))
+ return style->m_data.count();
+ return 0;
+}
+
+QObject *QQuickAbstractStyle::data_at(QQmlListProperty<QObject> *list, int index)
+{
+ if (QQuickAbstractStyle *style = qobject_cast<QQuickAbstractStyle *>(list->object))
+ return style->m_data.at(index);
+ return 0;
+}
+
+void QQuickAbstractStyle::data_clear(QQmlListProperty<QObject> *list)
+{
+ if (QQuickAbstractStyle *style = qobject_cast<QQuickAbstractStyle *>(list->object))
+ style->m_data.clear();
+}
QT_END_NAMESPACE
diff --git a/src/private/qquickpaddedstyle_p.h b/src/private/qquickabstractstyle_p.h
index 1a5a3c95d..137640535 100644
--- a/src/private/qquickpaddedstyle_p.h
+++ b/src/private/qquickabstractstyle_p.h
@@ -39,29 +39,40 @@
**
****************************************************************************/
-#ifndef QQUICKPADDEDSTYLE_H
-#define QQUICKPADDEDSTYLE_H
+#ifndef QQUICKABSTRACTSTYLE_H
+#define QQUICKABSTRACTSTYLE_H
-#include <QtQuick/QQuickItem>
-#include <QtQml/QQmlListProperty>
+#include <QtCore/qobject.h>
+#include <QtQml/qqmllist.h>
#include "qquickpadding_p.h"
QT_BEGIN_NAMESPACE
-class QQuickPaddedStyle : public QQuickItem
+class QQuickAbstractStyle : public QObject
{
Q_OBJECT
Q_PROPERTY(QQuickPadding* padding READ padding CONSTANT)
+ Q_PROPERTY(QQmlListProperty<QObject> data READ data DESIGNABLE false)
+ Q_CLASSINFO("DefaultProperty", "data")
public:
- QQuickPaddedStyle(QQuickItem *parent = 0);
+ QQuickAbstractStyle(QObject *parent = 0);
+
QQuickPadding* padding() { return &m_padding; }
+ QQmlListProperty<QObject> data();
+
private:
+ static void data_append(QQmlListProperty<QObject> *list, QObject *object);
+ static int data_count(QQmlListProperty<QObject> *list);
+ static QObject *data_at(QQmlListProperty<QObject> *list, int index);
+ static void data_clear(QQmlListProperty<QObject> *list);
+
QQuickPadding m_padding;
+ QList<QObject *> m_data;
};
QT_END_NAMESPACE
-#endif // QQUICKPADDEDSTYLE_H
+#endif // QQUICKABSTRACTSTYLE_H