diff options
Diffstat (limited to 'src/private')
| -rw-r--r-- | src/private/Style.qml | 3 | ||||
| -rw-r--r-- | src/private/plugin.cpp | 4 | ||||
| -rw-r--r-- | src/private/private.pro | 4 | ||||
| -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 |
