diff options
21 files changed, 85 insertions, 43 deletions
diff --git a/src/controls/ScrollView.qml b/src/controls/ScrollView.qml index efa6e631..0af69a0d 100644 --- a/src/controls/ScrollView.qml +++ b/src/controls/ScrollView.qml @@ -147,7 +147,7 @@ FocusScope { property Component style: Qt.createComponent(Settings.style + "/ScrollViewStyle.qml", root) /*! \internal */ - property PaddedStyle __style: styleLoader.item + property Style __style: styleLoader.item activeFocusOnTab: true diff --git a/src/controls/doc/qtquickcontrols.qdocconf b/src/controls/doc/qtquickcontrols.qdocconf index c04bced2..1f692597 100644 --- a/src/controls/doc/qtquickcontrols.qdocconf +++ b/src/controls/doc/qtquickcontrols.qdocconf @@ -52,7 +52,7 @@ sources += ../../private/qstyleitem.cpp \ ../../private/TabBar.qml \ ../../private/Control.qml \ ../../private/Style.qml \ - ../../private/qquickpaddedstyle.h \ - ../../private/qquickpaddedstyle.cpp + ../../private/qquickabstractstyle.h \ + ../../private/qquickabstractstyle.cpp imagedirs += images diff --git a/src/private/Style.qml b/src/private/Style.qml index 990f61dd..6b4c08ef 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 17bfed07..e33c2d37 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 cbb08a80..803b703f 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 320a3f53..eba57b03 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 1a5a3c95..13764053 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 diff --git a/src/styles/Base/ButtonStyle.qml b/src/styles/Base/ButtonStyle.qml index 5674c118..fe37d170 100644 --- a/src/styles/Base/ButtonStyle.qml +++ b/src/styles/Base/ButtonStyle.qml @@ -72,7 +72,7 @@ import QtQuick.Controls.Private 1.0 If you need a custom label, you can replace the label item. */ -PaddedStyle { +Style { id: buttonstyle /*! The \l Button attached to this style. */ diff --git a/src/styles/Base/CheckBoxStyle.qml b/src/styles/Base/CheckBoxStyle.qml index b10b2859..4311c629 100644 --- a/src/styles/Base/CheckBoxStyle.qml +++ b/src/styles/Base/CheckBoxStyle.qml @@ -72,7 +72,7 @@ import QtQuick.Controls.Private 1.0 } \endqml */ -PaddedStyle { +Style { id: checkboxStyle /*! The \l CheckBox attached to this style. */ diff --git a/src/styles/Base/ComboBoxStyle.qml b/src/styles/Base/ComboBoxStyle.qml index 5643d50f..08382f15 100644 --- a/src/styles/Base/ComboBoxStyle.qml +++ b/src/styles/Base/ComboBoxStyle.qml @@ -49,7 +49,7 @@ import QtQuick.Controls.Private 1.0 \brief Provides custom styling for ComboBox */ -PaddedStyle { +Style { /*! \internal */ property var __syspal: SystemPalette { diff --git a/src/styles/Base/GroupBoxStyle.qml b/src/styles/Base/GroupBoxStyle.qml index 86fc83fe..db0c3bf6 100644 --- a/src/styles/Base/GroupBoxStyle.qml +++ b/src/styles/Base/GroupBoxStyle.qml @@ -47,7 +47,7 @@ import QtQuick.Controls.Private 1.0 \inqmlmodule QtQuick.Controls.Styles 1.0 \since QtQuick.Controls.Styles 1.0 */ -PaddedStyle { +Style { /*! \internal */ property var __syspal: SystemPalette { diff --git a/src/styles/Base/ProgressBarStyle.qml b/src/styles/Base/ProgressBarStyle.qml index c93a6356..eab286f0 100644 --- a/src/styles/Base/ProgressBarStyle.qml +++ b/src/styles/Base/ProgressBarStyle.qml @@ -71,7 +71,7 @@ import QtQuick.Controls.Private 1.0 \endqml */ -PaddedStyle { +Style { id: progressBarStyle /*! \internal */ diff --git a/src/styles/Base/RadioButtonStyle.qml b/src/styles/Base/RadioButtonStyle.qml index 614a9537..f8fdb647 100644 --- a/src/styles/Base/RadioButtonStyle.qml +++ b/src/styles/Base/RadioButtonStyle.qml @@ -72,7 +72,7 @@ import QtQuick.Controls.Private 1.0 \endqml */ -PaddedStyle { +Style { id: radiobuttonStyle /*! \internal */ diff --git a/src/styles/Base/ScrollViewStyle.qml b/src/styles/Base/ScrollViewStyle.qml index b1fe789f..fb65fe2c 100644 --- a/src/styles/Base/ScrollViewStyle.qml +++ b/src/styles/Base/ScrollViewStyle.qml @@ -47,7 +47,7 @@ import QtQuick.Controls.Private 1.0 \since QtQuick.Controls.Styles 1.0 \brief Provides custom styling for ScrollView */ -PaddedStyle { +Style { id: root /*! \internal */ diff --git a/src/styles/Base/SliderStyle.qml b/src/styles/Base/SliderStyle.qml index 7870e2f2..a17de0a1 100644 --- a/src/styles/Base/SliderStyle.qml +++ b/src/styles/Base/SliderStyle.qml @@ -78,7 +78,7 @@ import QtQuick.Controls.Private 1.0 } \endqml */ -PaddedStyle { +Style { id: styleitem /*! \internal */ diff --git a/src/styles/Base/SpinBoxStyle.qml b/src/styles/Base/SpinBoxStyle.qml index 6280ea93..c239483e 100644 --- a/src/styles/Base/SpinBoxStyle.qml +++ b/src/styles/Base/SpinBoxStyle.qml @@ -49,7 +49,7 @@ import QtQuick.Controls.Private 1.0 \brief Provides custom styling for SpinBox */ -PaddedStyle { +Style { id: spinboxStyle /*! The \l SpinBox attached to this style. */ diff --git a/src/styles/Base/TextFieldStyle.qml b/src/styles/Base/TextFieldStyle.qml index 3c1a10a6..7b0ba6b2 100644 --- a/src/styles/Base/TextFieldStyle.qml +++ b/src/styles/Base/TextFieldStyle.qml @@ -64,7 +64,7 @@ import QtQuick.Controls.Private 1.0 \endqml */ -PaddedStyle { +Style { id: style /*! \internal */ diff --git a/src/styles/Desktop/GroupBoxStyle.qml b/src/styles/Desktop/GroupBoxStyle.qml index 2348e663..81d6de86 100644 --- a/src/styles/Desktop/GroupBoxStyle.qml +++ b/src/styles/Desktop/GroupBoxStyle.qml @@ -42,7 +42,7 @@ import QtQuick.Controls 1.0 import QtQuick.Controls.Private 1.0 -PaddedStyle { +Style { readonly property GroupBox control: __control property var __style: StyleItem { id: style } diff --git a/src/styles/Desktop/ScrollViewStyle.qml b/src/styles/Desktop/ScrollViewStyle.qml index d504c59b..deddc354 100644 --- a/src/styles/Desktop/ScrollViewStyle.qml +++ b/src/styles/Desktop/ScrollViewStyle.qml @@ -42,7 +42,7 @@ import QtQuick.Controls 1.0 import QtQuick.Controls.Private 1.0 import "." as Desktop -PaddedStyle { +Style { id: root padding { diff --git a/src/styles/Desktop/SliderStyle.qml b/src/styles/Desktop/SliderStyle.qml index 1c89d21c..fbe2cfb6 100644 --- a/src/styles/Desktop/SliderStyle.qml +++ b/src/styles/Desktop/SliderStyle.qml @@ -40,7 +40,7 @@ import QtQuick 2.1 import QtQuick.Controls.Private 1.0 -PaddedStyle { +Style { readonly property Item control: __control property Component panel: StyleItem { elementType: "slider" diff --git a/src/styles/Desktop/SpinBoxStyle.qml b/src/styles/Desktop/SpinBoxStyle.qml index 59c20f55..2f05838e 100644 --- a/src/styles/Desktop/SpinBoxStyle.qml +++ b/src/styles/Desktop/SpinBoxStyle.qml @@ -41,7 +41,7 @@ import QtQuick 2.1 import QtQuick.Controls 1.0 import QtQuick.Controls.Private 1.0 -PaddedStyle { +Style { readonly property SpinBox control: __control property var __syspal: SystemPalette { |