diff options
Diffstat (limited to 'src/imports')
103 files changed, 472 insertions, 781 deletions
diff --git a/src/imports/calendar/qquickcalendar_p.h b/src/imports/calendar/qquickcalendar_p.h index c44a6a1c..cdc9cc94 100644 --- a/src/imports/calendar/qquickcalendar_p.h +++ b/src/imports/calendar/qquickcalendar_p.h @@ -59,7 +59,7 @@ class QQuickCalendar : public QObject Q_OBJECT public: - explicit QQuickCalendar(QObject *parent = Q_NULLPTR); + explicit QQuickCalendar(QObject *parent = nullptr); enum Month { January, diff --git a/src/imports/calendar/qquickcalendarmodel_p.h b/src/imports/calendar/qquickcalendarmodel_p.h index 4f17980a..fa7717ed 100644 --- a/src/imports/calendar/qquickcalendarmodel_p.h +++ b/src/imports/calendar/qquickcalendarmodel_p.h @@ -66,7 +66,7 @@ class QQuickCalendarModel : public QAbstractListModel, public QQmlParserStatus Q_PROPERTY(int count READ rowCount NOTIFY countChanged) public: - explicit QQuickCalendarModel(QObject *parent = Q_NULLPTR); + explicit QQuickCalendarModel(QObject *parent = nullptr); QDate from() const; void setFrom(const QDate &from); @@ -84,9 +84,9 @@ public: YearRole }; - QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE; - QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE; - int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + QHash<int, QByteArray> roleNames() const override; + QVariant data(const QModelIndex &index, int role) const override; + int rowCount(const QModelIndex &parent = QModelIndex()) const override; Q_SIGNALS: void fromChanged(); @@ -94,8 +94,8 @@ Q_SIGNALS: void countChanged(); protected: - void classBegin() Q_DECL_OVERRIDE; - void componentComplete() Q_DECL_OVERRIDE; + void classBegin() override; + void componentComplete() override; private: Q_DISABLE_COPY(QQuickCalendarModel) diff --git a/src/imports/calendar/qquickdayofweekmodel_p.h b/src/imports/calendar/qquickdayofweekmodel_p.h index 90ebdc6c..9e76b961 100644 --- a/src/imports/calendar/qquickdayofweekmodel_p.h +++ b/src/imports/calendar/qquickdayofweekmodel_p.h @@ -63,7 +63,7 @@ class QQuickDayOfWeekModel : public QAbstractListModel Q_PROPERTY(int count READ rowCount CONSTANT FINAL) public: - explicit QQuickDayOfWeekModel(QObject *parent = Q_NULLPTR); + explicit QQuickDayOfWeekModel(QObject *parent = nullptr); QLocale locale() const; void setLocale(const QLocale &locale); @@ -77,9 +77,9 @@ public: NarrowNameRole }; - QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE; - QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE; - int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + QHash<int, QByteArray> roleNames() const override; + QVariant data(const QModelIndex &index, int role) const override; + int rowCount(const QModelIndex &parent = QModelIndex()) const override; Q_SIGNALS: void localeChanged(); diff --git a/src/imports/calendar/qquickdayofweekrow.cpp b/src/imports/calendar/qquickdayofweekrow.cpp index 76bcf5df..1f5e4387 100644 --- a/src/imports/calendar/qquickdayofweekrow.cpp +++ b/src/imports/calendar/qquickdayofweekrow.cpp @@ -72,7 +72,7 @@ QT_BEGIN_NAMESPACE class QQuickDayOfWeekRowPrivate : public QQuickControlPrivate { public: - QQuickDayOfWeekRowPrivate() : delegate(Q_NULLPTR), model(Q_NULLPTR) { } + QQuickDayOfWeekRowPrivate() : delegate(nullptr), model(nullptr) { } void resizeItems(); @@ -90,7 +90,8 @@ void QQuickDayOfWeekRowPrivate::resizeItems() itemSize.setWidth((contentItem->width() - 6 * spacing) / 7); itemSize.setHeight(contentItem->height()); - foreach (QQuickItem *item, contentItem->childItems()) + const auto childItems = contentItem->childItems(); + for (QQuickItem *item : childItems) item->setSize(itemSize); } diff --git a/src/imports/calendar/qquickdayofweekrow_p.h b/src/imports/calendar/qquickdayofweekrow_p.h index d1e5e16f..b0c4ead9 100644 --- a/src/imports/calendar/qquickdayofweekrow_p.h +++ b/src/imports/calendar/qquickdayofweekrow_p.h @@ -62,7 +62,7 @@ class QQuickDayOfWeekRow : public QQuickControl Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged FINAL) public: - explicit QQuickDayOfWeekRow(QQuickItem *parent = Q_NULLPTR); + explicit QQuickDayOfWeekRow(QQuickItem *parent = nullptr); QVariant source() const; void setSource(const QVariant &source); @@ -75,10 +75,10 @@ Q_SIGNALS: void delegateChanged(); protected: - void componentComplete() Q_DECL_OVERRIDE; - void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE; - void localeChange(const QLocale &newLocale, const QLocale &oldLocale) Q_DECL_OVERRIDE; - void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) Q_DECL_OVERRIDE; + void componentComplete() override; + void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; + void localeChange(const QLocale &newLocale, const QLocale &oldLocale) override; + void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) override; private: Q_DISABLE_COPY(QQuickDayOfWeekRow) diff --git a/src/imports/calendar/qquickmonthgrid.cpp b/src/imports/calendar/qquickmonthgrid.cpp index fd2909f8..8fe9ad63 100644 --- a/src/imports/calendar/qquickmonthgrid.cpp +++ b/src/imports/calendar/qquickmonthgrid.cpp @@ -78,7 +78,7 @@ class QQuickMonthGridPrivate : public QQuickControlPrivate Q_DECLARE_PUBLIC(QQuickMonthGrid) public: - QQuickMonthGridPrivate() : pressTimer(0), pressedItem(Q_NULLPTR), model(Q_NULLPTR), delegate(Q_NULLPTR) { } + QQuickMonthGridPrivate() : pressTimer(0), pressedItem(nullptr), model(nullptr), delegate(nullptr) { } void resizeItems(); @@ -108,7 +108,8 @@ void QQuickMonthGridPrivate::resizeItems() itemSize.setWidth((contentItem->width() - 6 * spacing) / 7); itemSize.setHeight((contentItem->height() - 5 * spacing) / 6); - foreach (QQuickItem *item, contentItem->childItems()) + const auto childItems = contentItem->childItems(); + for (QQuickItem *item : childItems) item->setSize(itemSize); } @@ -119,7 +120,7 @@ QQuickItem *QQuickMonthGridPrivate::cellAt(const QPoint &pos) const QPointF mapped = q->mapToItem(contentItem, pos); return contentItem->childAt(mapped.x(), mapped.y()); } - return Q_NULLPTR; + return nullptr; } QDate QQuickMonthGridPrivate::dateOf(QQuickItem *cell) const @@ -150,7 +151,7 @@ void QQuickMonthGridPrivate::clearPress(bool clicked) emit q->clicked(pressedDate); } pressedDate = QDate(); - pressedItem = Q_NULLPTR; + pressedItem = nullptr; } void QQuickMonthGridPrivate::setContextProperty(QQuickItem *item, const QString &name, const QVariant &value) @@ -335,7 +336,8 @@ void QQuickMonthGrid::componentComplete() Q_D(QQuickMonthGrid); QQuickControl::componentComplete(); if (d->contentItem) { - foreach (QQuickItem *child, d->contentItem->childItems()) { + const auto childItems = d->contentItem->childItems(); + for (QQuickItem *child : childItems) { if (!QQuickItemPrivate::get(child)->isTransparentForPositioner()) d->setContextProperty(child, QStringLiteral("pressed"), false); } diff --git a/src/imports/calendar/qquickmonthgrid_p.h b/src/imports/calendar/qquickmonthgrid_p.h index b2d8124a..93ba3900 100644 --- a/src/imports/calendar/qquickmonthgrid_p.h +++ b/src/imports/calendar/qquickmonthgrid_p.h @@ -65,7 +65,7 @@ class QQuickMonthGrid : public QQuickControl Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged FINAL) public: - explicit QQuickMonthGrid(QQuickItem *parent = Q_NULLPTR); + explicit QQuickMonthGrid(QQuickItem *parent = nullptr); int month() const; void setMonth(int month); @@ -95,17 +95,17 @@ Q_SIGNALS: void pressAndHold(const QDate &date); protected: - void componentComplete() Q_DECL_OVERRIDE; - void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE; - void localeChange(const QLocale &newLocale, const QLocale &oldLocale) Q_DECL_OVERRIDE; - void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) Q_DECL_OVERRIDE; - void updatePolish() Q_DECL_OVERRIDE; - - void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; - void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE; - void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; - void mouseUngrabEvent() Q_DECL_OVERRIDE; - void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE; + void componentComplete() override; + void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; + void localeChange(const QLocale &newLocale, const QLocale &oldLocale) override; + void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) override; + void updatePolish() override; + + void mousePressEvent(QMouseEvent *event) override; + void mouseMoveEvent(QMouseEvent *event) override; + void mouseReleaseEvent(QMouseEvent *event) override; + void mouseUngrabEvent() override; + void timerEvent(QTimerEvent *event) override; private: Q_DISABLE_COPY(QQuickMonthGrid) diff --git a/src/imports/calendar/qquickmonthmodel_p.h b/src/imports/calendar/qquickmonthmodel_p.h index 0f8347b5..578fe620 100644 --- a/src/imports/calendar/qquickmonthmodel_p.h +++ b/src/imports/calendar/qquickmonthmodel_p.h @@ -67,7 +67,7 @@ class QQuickMonthModel : public QAbstractListModel Q_PROPERTY(int count READ rowCount CONSTANT FINAL) public: - explicit QQuickMonthModel(QObject *parent = Q_NULLPTR); + explicit QQuickMonthModel(QObject *parent = nullptr); int month() const; void setMonth(int month); @@ -93,9 +93,9 @@ public: YearRole }; - QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE; - QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE; - int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + QHash<int, QByteArray> roleNames() const override; + QVariant data(const QModelIndex &index, int role) const override; + int rowCount(const QModelIndex &parent = QModelIndex()) const override; Q_SIGNALS: void monthChanged(); diff --git a/src/imports/calendar/qquickweeknumbercolumn.cpp b/src/imports/calendar/qquickweeknumbercolumn.cpp index 3e8f1a6b..031b0555 100644 --- a/src/imports/calendar/qquickweeknumbercolumn.cpp +++ b/src/imports/calendar/qquickweeknumbercolumn.cpp @@ -74,7 +74,7 @@ QT_BEGIN_NAMESPACE class QQuickWeekNumberColumnPrivate : public QQuickControlPrivate { public: - QQuickWeekNumberColumnPrivate() : delegate(Q_NULLPTR), model(Q_NULLPTR) { } + QQuickWeekNumberColumnPrivate() : delegate(nullptr), model(nullptr) { } void resizeItems(); @@ -92,7 +92,8 @@ void QQuickWeekNumberColumnPrivate::resizeItems() itemSize.setWidth(contentItem->width()); itemSize.setHeight((contentItem->height() - 5 * spacing) / 6); - foreach (QQuickItem *item, contentItem->childItems()) + const auto childItems = contentItem->childItems(); + for (QQuickItem *item : childItems) item->setSize(itemSize); } diff --git a/src/imports/calendar/qquickweeknumbercolumn_p.h b/src/imports/calendar/qquickweeknumbercolumn_p.h index 2cacdeac..f2e0e1cc 100644 --- a/src/imports/calendar/qquickweeknumbercolumn_p.h +++ b/src/imports/calendar/qquickweeknumbercolumn_p.h @@ -64,7 +64,7 @@ class QQuickWeekNumberColumn : public QQuickControl Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged FINAL) public: - explicit QQuickWeekNumberColumn(QQuickItem *parent = Q_NULLPTR); + explicit QQuickWeekNumberColumn(QQuickItem *parent = nullptr); int month() const; void setMonth(int month); @@ -85,10 +85,10 @@ Q_SIGNALS: void delegateChanged(); protected: - void componentComplete() Q_DECL_OVERRIDE; - void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE; - void localeChange(const QLocale &newLocale, const QLocale &oldLocale) Q_DECL_OVERRIDE; - void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) Q_DECL_OVERRIDE; + void componentComplete() override; + void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; + void localeChange(const QLocale &newLocale, const QLocale &oldLocale) override; + void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) override; private: Q_DISABLE_COPY(QQuickWeekNumberColumn) diff --git a/src/imports/calendar/qquickweeknumbermodel_p.h b/src/imports/calendar/qquickweeknumbermodel_p.h index 2c8b484f..74f2550f 100644 --- a/src/imports/calendar/qquickweeknumbermodel_p.h +++ b/src/imports/calendar/qquickweeknumbermodel_p.h @@ -65,7 +65,7 @@ class QQuickWeekNumberModel : public QAbstractListModel Q_PROPERTY(int count READ rowCount CONSTANT FINAL) public: - explicit QQuickWeekNumberModel(QObject *parent = Q_NULLPTR); + explicit QQuickWeekNumberModel(QObject *parent = nullptr); int month() const; void setMonth(int month); @@ -83,9 +83,9 @@ public: WeekNumberRole = Qt::UserRole + 1 }; - QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE; - QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE; - int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; + QHash<int, QByteArray> roleNames() const override; + QVariant data(const QModelIndex &index, int role) const override; + int rowCount(const QModelIndex &parent = QModelIndex()) const override; Q_SIGNALS: void monthChanged(); diff --git a/src/imports/calendar/qtlabscalendarplugin.cpp b/src/imports/calendar/qtlabscalendarplugin.cpp index 8d7d563d..4ecd5ddb 100644 --- a/src/imports/calendar/qtlabscalendarplugin.cpp +++ b/src/imports/calendar/qtlabscalendarplugin.cpp @@ -42,6 +42,13 @@ #include "qquickcalendarmodel_p.h" #include "qquickcalendar_p.h" +static inline void initResources() +{ +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_calendar); +#endif +} + QT_BEGIN_NAMESPACE class QtLabsCalendarPlugin: public QQmlExtensionPlugin @@ -50,9 +57,15 @@ class QtLabsCalendarPlugin: public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtLabsCalendarPlugin(QObject *parent = nullptr); void registerTypes(const char *uri); }; +QtLabsCalendarPlugin::QtLabsCalendarPlugin(QObject *parent) : QQmlExtensionPlugin(parent) +{ + initResources(); +} + static QObject *calendarSingleton(QQmlEngine *engine, QJSEngine *scriptEngine) { Q_UNUSED(engine); diff --git a/src/imports/controls/Button.qml b/src/imports/controls/Button.qml index 290f4ce4..67e9bffe 100644 --- a/src/imports/controls/Button.qml +++ b/src/imports/controls/Button.qml @@ -41,21 +41,17 @@ T.Button { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - label ? label.implicitWidth + leftPadding + rightPadding : 0) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - label ? label.implicitHeight + topPadding + bottomPadding : 0) - baselineOffset: label ? label.y + label.baselineOffset : 0 + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 leftPadding: 8 rightPadding: 8 - //! [label] - label: Text { - x: control.leftPadding - y: control.topPadding - width: control.availableWidth - height: control.availableHeight + //! [contentItem] + contentItem: Text { text: control.text font: control.font opacity: enabled || highlighted ? 1 : 0.3 @@ -64,7 +60,7 @@ T.Button { verticalAlignment: Text.AlignVCenter elide: Text.ElideRight } - //! [label] + //! [contentItem] //! [background] background: Rectangle { diff --git a/src/imports/controls/CheckBox.qml b/src/imports/controls/CheckBox.qml index 4b7af3b1..52061681 100644 --- a/src/imports/controls/CheckBox.qml +++ b/src/imports/controls/CheckBox.qml @@ -41,13 +41,11 @@ T.CheckBox { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 spacing: 6 @@ -81,12 +79,10 @@ T.CheckBox { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - indicator.width - control.spacing - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -96,5 +92,5 @@ T.CheckBox { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] } diff --git a/src/imports/controls/ComboBox.qml b/src/imports/controls/ComboBox.qml index 189eed92..30f45af3 100644 --- a/src/imports/controls/ComboBox.qml +++ b/src/imports/controls/ComboBox.qml @@ -36,6 +36,7 @@ import QtQuick 2.6 import QtQuick.Window 2.2 +import Qt.labs.controls 1.0 import Qt.labs.templates 1.0 as T T.ComboBox { diff --git a/src/imports/controls/Frame.qml b/src/imports/controls/Frame.qml index 3c9326e1..1f1bfac6 100644 --- a/src/imports/controls/Frame.qml +++ b/src/imports/controls/Frame.qml @@ -52,13 +52,10 @@ T.Frame { contentItem: Item { } //! [contentItem] - //! [frame] - frame: Rectangle { - width: parent.width - height: parent.height - + //! [background] + background: Rectangle { color: "transparent" border.color: "#bdbebf" } - //! [frame] + //! [background] } diff --git a/src/imports/controls/GroupBox.qml b/src/imports/controls/GroupBox.qml index bc1801c2..7ae14c24 100644 --- a/src/imports/controls/GroupBox.qml +++ b/src/imports/controls/GroupBox.qml @@ -70,8 +70,8 @@ T.GroupBox { } //! [label] - //! [frame] - frame: Rectangle { + //! [background] + background: Rectangle { y: control.topPadding - control.padding width: parent.width height: parent.height - control.topPadding + control.padding @@ -79,5 +79,5 @@ T.GroupBox { color: "transparent" border.color: "#bdbebf" } - //! [frame] + //! [background] } diff --git a/src/imports/controls/ItemDelegate.qml b/src/imports/controls/ItemDelegate.qml index b5dfb4b6..13a13e1e 100644 --- a/src/imports/controls/ItemDelegate.qml +++ b/src/imports/controls/ItemDelegate.qml @@ -41,23 +41,19 @@ T.ItemDelegate { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 12 spacing: 12 - //! [label] - label: Text { - x: control.mirrored ? control.width - width - control.rightPadding : control.leftPadding - y: control.topPadding - width: control.availableWidth - (control.checkable ? indicator.width + control.spacing : 0) - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -67,7 +63,7 @@ T.ItemDelegate { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] //! [indicator] indicator: Image { diff --git a/src/imports/controls/MenuItem.qml b/src/imports/controls/MenuItem.qml index ae5a8e38..75866fbe 100644 --- a/src/imports/controls/MenuItem.qml +++ b/src/imports/controls/MenuItem.qml @@ -40,21 +40,19 @@ import Qt.labs.templates 1.0 as T T.MenuItem { id: control - implicitWidth: background ? background.implicitWidth - : (label ? label.implicitWidth : 0) + (indicator ? indicator.implicitWidth : 0) - + (label && indicator ? spacing : 0) + leftPadding + rightPadding - implicitHeight: background ? background.implicitHeight - : (label ? label.implicitHeight : 0) + (indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding - baselineOffset: label ? label.y + label.baselineOffset : 0 + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 - //! [label] - label: Text { - x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding - y: control.topPadding - width: control.availableWidth - (control.checkable ? indicator.width + control.spacing : 0) - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -64,7 +62,7 @@ T.MenuItem { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] //! [indicator] indicator: Image { diff --git a/src/imports/controls/RadioButton.qml b/src/imports/controls/RadioButton.qml index 8e1e0bce..f1e10a6c 100644 --- a/src/imports/controls/RadioButton.qml +++ b/src/imports/controls/RadioButton.qml @@ -42,13 +42,11 @@ T.RadioButton { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 spacing: 6 @@ -78,12 +76,10 @@ T.RadioButton { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - indicator.width - control.spacing - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -93,5 +89,5 @@ T.RadioButton { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] } diff --git a/src/imports/controls/Switch.qml b/src/imports/controls/Switch.qml index 51348e77..01f561a1 100644 --- a/src/imports/controls/Switch.qml +++ b/src/imports/controls/Switch.qml @@ -41,13 +41,11 @@ T.Switch { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 spacing: 6 @@ -87,12 +85,10 @@ T.Switch { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - indicator.width - control.spacing - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -102,5 +98,5 @@ T.Switch { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] } diff --git a/src/imports/controls/TabButton.qml b/src/imports/controls/TabButton.qml index 178a0a7f..63a88b10 100644 --- a/src/imports/controls/TabButton.qml +++ b/src/imports/controls/TabButton.qml @@ -41,20 +41,15 @@ T.TabButton { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - label ? label.contentWidth + leftPadding + rightPadding : 0) + contentItem.contentWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - label ? label.contentHeight + topPadding + bottomPadding : 0) - baselineOffset: label ? label.y + label.baselineOffset : 0 + contentItem.contentHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 - //! [label] - label: Text { - x: control.leftPadding - y: control.topPadding - width: control.availableWidth - height: control.availableHeight - + //! [contentItem] + contentItem: Text { text: control.text font: control.font elide: Text.ElideRight @@ -63,7 +58,7 @@ T.TabButton { horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] //! [background] background: Rectangle { diff --git a/src/imports/controls/TextArea.qml b/src/imports/controls/TextArea.qml index 8326fc89..46b6bc6c 100644 --- a/src/imports/controls/TextArea.qml +++ b/src/imports/controls/TextArea.qml @@ -67,7 +67,7 @@ T.TextArea { color: "#c2c2c2" horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment - visible: !control.length && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) + visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) elide: Text.ElideRight } } diff --git a/src/imports/controls/TextField.qml b/src/imports/controls/TextField.qml index d9f31b2f..7abf540b 100644 --- a/src/imports/controls/TextField.qml +++ b/src/imports/controls/TextField.qml @@ -66,7 +66,7 @@ T.TextField { color: "#bdbebf" horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment - visible: !control.displayText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) + visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) elide: Text.ElideRight } diff --git a/src/imports/controls/ToolButton.qml b/src/imports/controls/ToolButton.qml index 314ce966..a610dc2b 100644 --- a/src/imports/controls/ToolButton.qml +++ b/src/imports/controls/ToolButton.qml @@ -41,20 +41,15 @@ T.ToolButton { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - label ? label.implicitWidth + leftPadding + rightPadding : 0) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - label ? label.implicitHeight + topPadding + bottomPadding : 0) - baselineOffset: label ? label.y + label.baselineOffset : 0 + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 - //! [label] - label: Text { - x: control.leftPadding - y: control.topPadding - width: control.availableWidth - height: control.availableHeight - + //! [contentItem] + contentItem: Text { text: control.text font: control.font color: control.enabled ? "#26282a" : "#c2c2c2" @@ -62,7 +57,7 @@ T.ToolButton { horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] //! [background] background: Rectangle { diff --git a/src/imports/controls/controls.pri b/src/imports/controls/controls.pri index c3391929..32e86f3a 100644 --- a/src/imports/controls/controls.pri +++ b/src/imports/controls/controls.pri @@ -1,4 +1,4 @@ -QML_FILES = \ +QML_CONTROLS = \ ApplicationWindow.qml \ BusyIndicator.qml \ Button.qml \ @@ -33,3 +33,5 @@ QML_FILES = \ ToolBar.qml \ ToolButton.qml \ Tumbler.qml + +!qtquickcompiler: QML_FILES += $$QML_CONTROLS diff --git a/src/imports/controls/controls.pro b/src/imports/controls/controls.pro index 30f8e223..0ccdf5a0 100644 --- a/src/imports/controls/controls.pro +++ b/src/imports/controls/controls.pro @@ -27,5 +27,11 @@ RESOURCES += \ include(controls.pri) include(designer/designer.pri) +qtquickcompiler { + qmlfiles.prefix = /qt-project.org/imports/Qt/labs/controls + qmlfiles.files += $$QML_CONTROLS + RESOURCES += qmlfiles +} + CONFIG += no_cxx_module load(qml_plugin) diff --git a/src/imports/controls/doc/images/qtlabscontrols-button-label.png b/src/imports/controls/doc/images/qtlabscontrols-button-contentItem.png Binary files differindex 73d8f2fb..73d8f2fb 100644 --- a/src/imports/controls/doc/images/qtlabscontrols-button-label.png +++ b/src/imports/controls/doc/images/qtlabscontrols-button-contentItem.png diff --git a/src/imports/controls/doc/images/qtlabscontrols-checkbox-label.png b/src/imports/controls/doc/images/qtlabscontrols-checkbox-contentItem.png Binary files differindex d5a1ef2e..d5a1ef2e 100644 --- a/src/imports/controls/doc/images/qtlabscontrols-checkbox-label.png +++ b/src/imports/controls/doc/images/qtlabscontrols-checkbox-contentItem.png diff --git a/src/imports/controls/doc/images/qtlabscontrols-frame-frame.png b/src/imports/controls/doc/images/qtlabscontrols-frame-frame.png Binary files differdeleted file mode 100644 index a379d915..00000000 --- a/src/imports/controls/doc/images/qtlabscontrols-frame-frame.png +++ /dev/null diff --git a/src/imports/controls/doc/images/qtlabscontrols-groupbox-frame.png b/src/imports/controls/doc/images/qtlabscontrols-groupbox-frame.png Binary files differdeleted file mode 100644 index 2ed75011..00000000 --- a/src/imports/controls/doc/images/qtlabscontrols-groupbox-frame.png +++ /dev/null diff --git a/src/imports/controls/doc/images/qtlabscontrols-itemdelegate-label.png b/src/imports/controls/doc/images/qtlabscontrols-itemdelegate-contentItem.png Binary files differindex 89f094c6..89f094c6 100644 --- a/src/imports/controls/doc/images/qtlabscontrols-itemdelegate-label.png +++ b/src/imports/controls/doc/images/qtlabscontrols-itemdelegate-contentItem.png diff --git a/src/imports/controls/doc/images/qtlabscontrols-radiobutton-label.png b/src/imports/controls/doc/images/qtlabscontrols-radiobutton-contentItem.png Binary files differindex 457555b7..457555b7 100644 --- a/src/imports/controls/doc/images/qtlabscontrols-radiobutton-label.png +++ b/src/imports/controls/doc/images/qtlabscontrols-radiobutton-contentItem.png diff --git a/src/imports/controls/doc/images/qtlabscontrols-switch-label.png b/src/imports/controls/doc/images/qtlabscontrols-switch-contentItem.png Binary files differindex 50f608ab..50f608ab 100644 --- a/src/imports/controls/doc/images/qtlabscontrols-switch-label.png +++ b/src/imports/controls/doc/images/qtlabscontrols-switch-contentItem.png diff --git a/src/imports/controls/doc/images/qtlabscontrols-toolbar-frame.png b/src/imports/controls/doc/images/qtlabscontrols-toolbar-frame.png Binary files differdeleted file mode 100644 index 12b4c348..00000000 --- a/src/imports/controls/doc/images/qtlabscontrols-toolbar-frame.png +++ /dev/null diff --git a/src/imports/controls/doc/images/qtlabscontrols-toolbutton-label.png b/src/imports/controls/doc/images/qtlabscontrols-toolbutton-contentItem.png Binary files differindex f4797098..f4797098 100644 --- a/src/imports/controls/doc/images/qtlabscontrols-toolbutton-label.png +++ b/src/imports/controls/doc/images/qtlabscontrols-toolbutton-contentItem.png diff --git a/src/imports/controls/doc/snippets/qtlabscontrols-button-label.qml b/src/imports/controls/doc/snippets/qtlabscontrols-button-contentItem.qml index 4fbeab08..ee59ab7f 100644 --- a/src/imports/controls/doc/snippets/qtlabscontrols-button-label.qml +++ b/src/imports/controls/doc/snippets/qtlabscontrols-button-contentItem.qml @@ -32,7 +32,7 @@ Button { width: 80 text: "Button" Rectangle { - anchors.fill: label + anchors.fill: contentItem color: 'transparent' border.color: 'red' } diff --git a/src/imports/controls/doc/snippets/qtlabscontrols-checkbox-label.qml b/src/imports/controls/doc/snippets/qtlabscontrols-checkbox-contentItem.qml index fcb3a49d..bef150a3 100644 --- a/src/imports/controls/doc/snippets/qtlabscontrols-checkbox-label.qml +++ b/src/imports/controls/doc/snippets/qtlabscontrols-checkbox-contentItem.qml @@ -31,7 +31,7 @@ import Qt.labs.controls 1.0 CheckBox { text: "CheckBox" Rectangle { - anchors.fill: label + anchors.fill: contentItem color: "transparent" border.color: "red" } diff --git a/src/imports/controls/doc/snippets/qtlabscontrols-frame-frame.qml b/src/imports/controls/doc/snippets/qtlabscontrols-frame-frame.qml deleted file mode 100644 index e4c9e32b..00000000 --- a/src/imports/controls/doc/snippets/qtlabscontrols-frame-frame.qml +++ /dev/null @@ -1,40 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 -import Qt.labs.controls 1.0 - -Frame { - width: 100 - height: 100 - Rectangle { - parent: frame - anchors.fill: parent - color: 'transparent' - border.color: 'red' - } -} diff --git a/src/imports/controls/doc/snippets/qtlabscontrols-groupbox-frame.qml b/src/imports/controls/doc/snippets/qtlabscontrols-groupbox-frame.qml deleted file mode 100644 index 49ecc00d..00000000 --- a/src/imports/controls/doc/snippets/qtlabscontrols-groupbox-frame.qml +++ /dev/null @@ -1,41 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 -import Qt.labs.controls 1.0 - -GroupBox { - width: 100 - height: 100 - title: "GroupBox" - Rectangle { - parent: frame - anchors.fill: parent - color: 'transparent' - border.color: 'red' - } -} diff --git a/src/imports/controls/doc/snippets/qtlabscontrols-itemdelegate-label.qml b/src/imports/controls/doc/snippets/qtlabscontrols-itemdelegate-contentItem.qml index 696560a5..43e6f85e 100644 --- a/src/imports/controls/doc/snippets/qtlabscontrols-itemdelegate-label.qml +++ b/src/imports/controls/doc/snippets/qtlabscontrols-itemdelegate-contentItem.qml @@ -33,7 +33,7 @@ ItemDelegate { checked: true checkable: true Rectangle { - anchors.fill: label + anchors.fill: contentItem color: "transparent" border.color: "red" } diff --git a/src/imports/controls/doc/snippets/qtlabscontrols-radiobutton-label.qml b/src/imports/controls/doc/snippets/qtlabscontrols-radiobutton-contentItem.qml index eab52fbe..14bb7c47 100644 --- a/src/imports/controls/doc/snippets/qtlabscontrols-radiobutton-label.qml +++ b/src/imports/controls/doc/snippets/qtlabscontrols-radiobutton-contentItem.qml @@ -31,7 +31,7 @@ import Qt.labs.controls 1.0 RadioButton { text: "RadioButton" Rectangle { - anchors.fill: label + anchors.fill: contentItem color: "transparent" border.color: "red" } diff --git a/src/imports/controls/doc/snippets/qtlabscontrols-switch-label.qml b/src/imports/controls/doc/snippets/qtlabscontrols-switch-contentItem.qml index c739bf57..99f2af7e 100644 --- a/src/imports/controls/doc/snippets/qtlabscontrols-switch-label.qml +++ b/src/imports/controls/doc/snippets/qtlabscontrols-switch-contentItem.qml @@ -31,7 +31,7 @@ import Qt.labs.controls 1.0 Switch { text: "Switch" Rectangle { - anchors.fill: label + anchors.fill: contentItem color: "transparent" border.color: "red" } diff --git a/src/imports/controls/doc/snippets/qtlabscontrols-toolbar-frame.qml b/src/imports/controls/doc/snippets/qtlabscontrols-toolbar-frame.qml deleted file mode 100644 index b887d464..00000000 --- a/src/imports/controls/doc/snippets/qtlabscontrols-toolbar-frame.qml +++ /dev/null @@ -1,38 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 -import Qt.labs.controls 1.0 - -ToolBar { - width: 100 - frame: Rectangle { - anchors.fill: parent - color: 'transparent' - border.color: 'red' - } -} diff --git a/src/imports/controls/doc/snippets/qtlabscontrols-toolbutton-label.qml b/src/imports/controls/doc/snippets/qtlabscontrols-toolbutton-contentItem.qml index 5a8c3a50..9a25d130 100644 --- a/src/imports/controls/doc/snippets/qtlabscontrols-toolbutton-label.qml +++ b/src/imports/controls/doc/snippets/qtlabscontrols-toolbutton-contentItem.qml @@ -31,7 +31,7 @@ import Qt.labs.controls 1.0 ToolButton { text: "ToolButton" Rectangle { - anchors.fill: label + anchors.fill: contentItem color: 'transparent' border.color: 'red' } diff --git a/src/imports/controls/doc/src/qtlabscontrols-customize.qdoc b/src/imports/controls/doc/src/qtlabscontrols-customize.qdoc index 4aff46a4..1811d638 100644 --- a/src/imports/controls/doc/src/qtlabscontrols-customize.qdoc +++ b/src/imports/controls/doc/src/qtlabscontrols-customize.qdoc @@ -57,7 +57,7 @@ \section1 Customizing Button Button consists of two visual items: \l {Control::background}{background} - and \l {AbstractButton::label}{label}. + and \l {Control::contentItem}{content item}. \section3 Background @@ -65,17 +65,17 @@ \snippet Button.qml background - \section3 Label + \section3 Content item - \image qtlabscontrols-button-label.png + \image qtlabscontrols-button-contentItem.png - \snippet Button.qml label + \snippet Button.qml contentItem \section1 Customizing CheckBox CheckBox consists of three visual items: \l {Control::background}{background}, - \l {AbstractButton::label}{label} and \l {AbstractButton::indicator}{indicator}. + \l {Control::contentItem}{contentItem} and \l {AbstractButton::indicator}{indicator}. \section3 Background @@ -83,11 +83,11 @@ CheckBox has no background item by default. - \section3 Label + \section3 Content item - \image qtlabscontrols-checkbox-label.png + \image qtlabscontrols-checkbox-contentItem.png - \snippet CheckBox.qml label + \snippet CheckBox.qml contentItem \section3 Indicator @@ -162,38 +162,25 @@ \section1 Customizing Frame - Frame consists of two visual items: \l {Control::background}{background} - and \l {Frame::frame}{frame}. + Frame consists of one visual item: \l {Control::background}{background}. \section3 Background \image qtlabscontrols-frame-background.png - Frame has no background item by default. - - \section3 Frame - - \image qtlabscontrols-frame-frame.png - - \snippet Frame.qml frame + \snippet Frame.qml background \section1 Customizing GroupBox - GroupBox consists of three visual items: \l {Control::background}{background}, - \l {Frame::frame}{frame} and \l {GroupBox::label}{label}. + GroupBox consists of two visual items: \l {Control::background}{background} + and \l {GroupBox::label}{label}. \section3 Background \image qtlabscontrols-groupbox-background.png - GroupBox has no background item by default. - - \section3 Frame - - \image qtlabscontrols-groupbox-frame.png - - \snippet GroupBox.qml frame + \snippet GroupBox.qml background \section3 Label @@ -205,7 +192,7 @@ \section1 Customizing ItemDelegate ItemDelegate consists of three visual items: \l {Control::background}{background}, - \l {AbstractButton::label}{label} and \l {AbstractButton::indicator}{indicator}. + \l {Control::contentItem}{content item} and \l {AbstractButton::indicator}{indicator}. The indicator is only visible for \l {AbstractButton::checkable}{checkable} items. \section3 Background @@ -214,11 +201,11 @@ \snippet ItemDelegate.qml background - \section3 Label + \section3 Content item - \image qtlabscontrols-itemdelegate-label.png + \image qtlabscontrols-itemdelegate-contentItem.png - \snippet ItemDelegate.qml label + \snippet ItemDelegate.qml contentItem \section3 Indicator @@ -292,7 +279,7 @@ \section1 Customizing RadioButton RadioButton consists of three visual items: \l {Control::background}{background}, - \l {AbstractButton::label}{label} and \l {AbstractButton::indicator}{indicator}. + \l {Control::contentItem}{content item} and \l {AbstractButton::indicator}{indicator}. \section3 Background @@ -300,11 +287,11 @@ RadioButton has no background item by default. - \section3 Label + \section3 Content item - \image qtlabscontrols-radiobutton-label.png + \image qtlabscontrols-radiobutton-contentItem.png - \snippet RadioButton.qml label + \snippet RadioButton.qml contentItem \section3 Indicator @@ -484,7 +471,7 @@ \section1 Customizing Switch Switch consists of three visual items: \l {Control::background}{background}, - \l {AbstractButton::label}{label} and \l {AbstractButton::indicator}{indicator}. + \l {Control::contentItem}{content item} and \l {AbstractButton::indicator}{indicator}. \section3 Background @@ -492,11 +479,11 @@ Switch has no background item by default. - \section3 Label + \section3 Content item - \image qtlabscontrols-switch-label.png + \image qtlabscontrols-switch-contentItem.png - \snippet Switch.qml label + \snippet Switch.qml contentItem \section3 Indicator @@ -533,8 +520,7 @@ \section1 Customizing ToolBar - ToolBar consists of two visual items: \l {Control::background}{background} and - \l {Frame::frame}{frame}. + ToolBar consists of one visual item: \l {Control::background}{background}. \section3 Background @@ -552,7 +538,7 @@ \section1 Customizing ToolButton ToolButton consists of two visual items: \l {Control::background}{background} - and \l {AbstractButton::label}{label}. + and \l {Control::contentItem}{content item}. \section3 Background @@ -560,11 +546,11 @@ \snippet ToolButton.qml background - \section3 Label + \section3 Content item - \image qtlabscontrols-toolbutton-label.png + \image qtlabscontrols-toolbutton-contentItem.png - \snippet ToolButton.qml label + \snippet ToolButton.qml contentItem \section1 Customizing Tumbler diff --git a/src/imports/controls/doc/src/qtlabscontrols-differences.qdoc b/src/imports/controls/doc/src/qtlabscontrols-differences.qdoc index 7fcce7a3..87bf152d 100644 --- a/src/imports/controls/doc/src/qtlabscontrols-differences.qdoc +++ b/src/imports/controls/doc/src/qtlabscontrols-differences.qdoc @@ -155,7 +155,7 @@ \qml Button { - label: Label { + contentItem: Label { // ... } } diff --git a/src/imports/controls/material/Button.qml b/src/imports/controls/material/Button.qml index 77128861..d0b05b2c 100644 --- a/src/imports/controls/material/Button.qml +++ b/src/imports/controls/material/Button.qml @@ -43,23 +43,18 @@ T.Button { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - label ? label.implicitWidth + leftPadding + rightPadding : 0) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - label ? label.implicitHeight + topPadding + bottomPadding : 0) - baselineOffset: label ? label.y + label.baselineOffset : 0 + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset // external vertical padding is 6 (to increase touch area) padding: 12 leftPadding: 8 rightPadding: 8 - //! [label] - label: Text { - x: control.leftPadding - y: control.topPadding - width: control.availableWidth - height: control.availableHeight - + //! [contentItem] + contentItem: Text { text: control.text font: control.font color: !control.enabled ? control.Material.hintTextColor : @@ -68,7 +63,7 @@ T.Button { verticalAlignment: Text.AlignVCenter elide: Text.ElideRight } - //! [label] + //! [contentItem] //! [background] background: Rectangle { diff --git a/src/imports/controls/material/CheckBox.qml b/src/imports/controls/material/CheckBox.qml index 5becfc5c..abaf571d 100644 --- a/src/imports/controls/material/CheckBox.qml +++ b/src/imports/controls/material/CheckBox.qml @@ -37,18 +37,17 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.CheckBox { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset spacing: 8 topPadding: 14 @@ -143,12 +142,10 @@ T.CheckBox { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - indicator.width - control.spacing - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -158,5 +155,5 @@ T.CheckBox { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] } diff --git a/src/imports/controls/material/ComboBox.qml b/src/imports/controls/material/ComboBox.qml index eb637ef2..5529c546 100644 --- a/src/imports/controls/material/ComboBox.qml +++ b/src/imports/controls/material/ComboBox.qml @@ -36,6 +36,7 @@ import QtQuick 2.6 import QtQuick.Window 2.2 +import Qt.labs.controls 1.0 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 import QtGraphicalEffects 1.0 diff --git a/src/imports/controls/material/Frame.qml b/src/imports/controls/material/Frame.qml index 9336850d..4c21e40b 100644 --- a/src/imports/controls/material/Frame.qml +++ b/src/imports/controls/material/Frame.qml @@ -53,14 +53,11 @@ T.Frame { contentItem: Item { } //! [contentItem] - //! [frame] - frame: Rectangle { - width: parent.width - height: parent.height - + //! [background] + background: Rectangle { radius: 3 color: "transparent" border.color: control.Material.frameColor } - //! [frame] + //! [background] } diff --git a/src/imports/controls/material/GroupBox.qml b/src/imports/controls/material/GroupBox.qml index 3461cb6e..ef54ea7c 100644 --- a/src/imports/controls/material/GroupBox.qml +++ b/src/imports/controls/material/GroupBox.qml @@ -71,8 +71,8 @@ T.GroupBox { } //! [label] - //! [frame] - frame: Rectangle { + //! [background] + background: Rectangle { y: control.topPadding - control.padding width: parent.width height: parent.height - control.topPadding + control.padding @@ -81,5 +81,5 @@ T.GroupBox { color: "transparent" border.color: control.Material.frameColor } - //! [frame] + //! [background] } diff --git a/src/imports/controls/material/ItemDelegate.qml b/src/imports/controls/material/ItemDelegate.qml index acfbfb98..132cce3d 100644 --- a/src/imports/controls/material/ItemDelegate.qml +++ b/src/imports/controls/material/ItemDelegate.qml @@ -37,18 +37,17 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.ItemDelegate { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 16 spacing: 16 @@ -128,12 +127,10 @@ T.ItemDelegate { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored || !control.checkable ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - (control.checkable ? indicator.width + control.spacing : 0) - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -143,7 +140,7 @@ T.ItemDelegate { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] //! [background] background: Rectangle { diff --git a/src/imports/controls/material/MenuItem.qml b/src/imports/controls/material/MenuItem.qml index 89867e15..e2042894 100644 --- a/src/imports/controls/material/MenuItem.qml +++ b/src/imports/controls/material/MenuItem.qml @@ -37,18 +37,17 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.MenuItem { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 16 spacing: 16 @@ -128,12 +127,10 @@ T.MenuItem { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored || !control.checkable ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - (control.checkable ? indicator.width + control.spacing : 0) - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -143,7 +140,7 @@ T.MenuItem { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] //! [background] background: Rectangle { diff --git a/src/imports/controls/material/RadioButton.qml b/src/imports/controls/material/RadioButton.qml index 25d91a5c..429e4f80 100644 --- a/src/imports/controls/material/RadioButton.qml +++ b/src/imports/controls/material/RadioButton.qml @@ -37,18 +37,17 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.RadioButton { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset spacing: 8 topPadding: 14 @@ -87,12 +86,10 @@ T.RadioButton { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - indicator.width - control.spacing - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -102,5 +99,5 @@ T.RadioButton { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] } diff --git a/src/imports/controls/material/RangeSlider.qml b/src/imports/controls/material/RangeSlider.qml index bf8c16ef..617f9ac7 100644 --- a/src/imports/controls/material/RangeSlider.qml +++ b/src/imports/controls/material/RangeSlider.qml @@ -37,6 +37,7 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.RangeSlider { id: control diff --git a/src/imports/controls/material/Slider.qml b/src/imports/controls/material/Slider.qml index 139c9151..c121c10b 100644 --- a/src/imports/controls/material/Slider.qml +++ b/src/imports/controls/material/Slider.qml @@ -37,6 +37,7 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.Slider { id: control diff --git a/src/imports/controls/material/Switch.qml b/src/imports/controls/material/Switch.qml index f44fb31a..a38a643c 100644 --- a/src/imports/controls/material/Switch.qml +++ b/src/imports/controls/material/Switch.qml @@ -36,6 +36,7 @@ import QtQuick 2.6 import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 import Qt.labs.templates 1.0 as T import QtGraphicalEffects 1.0 @@ -43,13 +44,11 @@ T.Switch { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 8 spacing: 8 @@ -107,12 +106,10 @@ T.Switch { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - indicator.width - control.spacing - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -122,5 +119,5 @@ T.Switch { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] } diff --git a/src/imports/controls/material/TabButton.qml b/src/imports/controls/material/TabButton.qml index 27b27e3b..496513dd 100644 --- a/src/imports/controls/material/TabButton.qml +++ b/src/imports/controls/material/TabButton.qml @@ -42,20 +42,15 @@ T.TabButton { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - label ? label.contentWidth + leftPadding + rightPadding : 0) + contentItem.contentWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - label ? label.contentHeight + topPadding + bottomPadding : 0) - baselineOffset: label ? label.y + label.baselineOffset : 0 + contentItem.contentHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 12 - //! [label] - label: Text { - x: control.leftPadding - y: control.topPadding - width: control.availableWidth - height: control.availableHeight - + //! [contentItem] + contentItem: Text { text: control.text font: control.font elide: Text.ElideRight @@ -63,7 +58,7 @@ T.TabButton { horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] //! [background] background: Item { diff --git a/src/imports/controls/material/TextArea.qml b/src/imports/controls/material/TextArea.qml index a5423727..b6f614c0 100644 --- a/src/imports/controls/material/TextArea.qml +++ b/src/imports/controls/material/TextArea.qml @@ -92,7 +92,7 @@ T.TextArea { horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment elide: Text.ElideRight - visible: !control.length && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) + visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) } //! [placeholder] diff --git a/src/imports/controls/material/TextField.qml b/src/imports/controls/material/TextField.qml index 6a0010f7..eaea710e 100644 --- a/src/imports/controls/material/TextField.qml +++ b/src/imports/controls/material/TextField.qml @@ -91,7 +91,7 @@ T.TextField { horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment elide: Text.ElideRight - visible: !control.displayText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) + visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) } //! [placeholder] diff --git a/src/imports/controls/material/ToolButton.qml b/src/imports/controls/material/ToolButton.qml index ebdc36f2..34a745c1 100644 --- a/src/imports/controls/material/ToolButton.qml +++ b/src/imports/controls/material/ToolButton.qml @@ -42,20 +42,15 @@ T.ToolButton { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - label ? label.implicitWidth + leftPadding + rightPadding : 0) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - label ? label.implicitHeight + topPadding + bottomPadding : 0) - baselineOffset: label ? label.y + label.baselineOffset : 0 + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 - //! [label] - label: Text { - x: control.leftPadding - y: control.topPadding - width: control.availableWidth - height: control.availableHeight - + //! [contentItem] + contentItem: Text { text: control.text font: control.font color: control.enabled ? control.Material.primaryTextColor : control.Material.hintTextColor @@ -63,7 +58,7 @@ T.ToolButton { horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] //! [background] background: Rectangle { diff --git a/src/imports/controls/material/qquickmaterialprogressring.cpp b/src/imports/controls/material/qquickmaterialprogressring.cpp index c11a347f..dc96fe03 100644 --- a/src/imports/controls/material/qquickmaterialprogressring.cpp +++ b/src/imports/controls/material/qquickmaterialprogressring.cpp @@ -67,11 +67,11 @@ public: QQuickMaterialRingAnimatorJob(); ~QQuickMaterialRingAnimatorJob(); - void initialize(QQuickAnimatorController *controller) Q_DECL_OVERRIDE; - void updateCurrentTime(int time) Q_DECL_OVERRIDE; - void writeBack() Q_DECL_OVERRIDE; - void nodeWasDestroyed() Q_DECL_OVERRIDE; - void afterNodeSync() Q_DECL_OVERRIDE; + void initialize(QQuickAnimatorController *controller) override; + void updateCurrentTime(int time) override; + void writeBack() override; + void nodeWasDestroyed() override; + void afterNodeSync() override; private: qreal m_devicePixelRatio; @@ -167,8 +167,8 @@ QQuickAnimatorJob *QQuickMaterialRingAnimator::createJob() const QQuickMaterialRingAnimatorJob::QQuickMaterialRingAnimatorJob() : m_devicePixelRatio(1.0), - m_containerNode(Q_NULLPTR), - m_window(Q_NULLPTR) + m_containerNode(nullptr), + m_window(nullptr) { } @@ -258,8 +258,8 @@ void QQuickMaterialRingAnimatorJob::writeBack() void QQuickMaterialRingAnimatorJob::nodeWasDestroyed() { - m_containerNode = Q_NULLPTR; - m_window = Q_NULLPTR; + m_containerNode = nullptr; + m_window = nullptr; } void QQuickMaterialRingAnimatorJob::afterNodeSync() diff --git a/src/imports/controls/material/qquickmaterialprogressring_p.h b/src/imports/controls/material/qquickmaterialprogressring_p.h index 6f4ebc6b..a829f948 100644 --- a/src/imports/controls/material/qquickmaterialprogressring_p.h +++ b/src/imports/controls/material/qquickmaterialprogressring_p.h @@ -60,7 +60,7 @@ class QQuickMaterialProgressRing : public QQuickItem Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged FINAL) public: - explicit QQuickMaterialProgressRing(QQuickItem *parent = Q_NULLPTR); + explicit QQuickMaterialProgressRing(QQuickItem *parent = nullptr); ~QQuickMaterialProgressRing(); QColor color() const; @@ -70,7 +70,7 @@ Q_SIGNALS: void colorChanged(); protected: - QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) Q_DECL_OVERRIDE; + QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override; private: QColor m_color; @@ -79,11 +79,11 @@ private: class QQuickMaterialRingAnimator : public QQuickAnimator { public: - QQuickMaterialRingAnimator(QObject *parent = Q_NULLPTR); + QQuickMaterialRingAnimator(QObject *parent = nullptr); protected: - QString propertyName() const Q_DECL_OVERRIDE; - QQuickAnimatorJob *createJob() const Q_DECL_OVERRIDE; + QString propertyName() const override; + QQuickAnimatorJob *createJob() const override; }; QT_END_NAMESPACE diff --git a/src/imports/controls/material/qquickmaterialprogressstrip.cpp b/src/imports/controls/material/qquickmaterialprogressstrip.cpp index 3ac09e24..a3ff6c9b 100644 --- a/src/imports/controls/material/qquickmaterialprogressstrip.cpp +++ b/src/imports/controls/material/qquickmaterialprogressstrip.cpp @@ -54,11 +54,11 @@ class QQuickMaterialProgressStripAnimatorJob : public QQuickAnimatorJob public: QQuickMaterialProgressStripAnimatorJob(); - void initialize(QQuickAnimatorController *controller) Q_DECL_OVERRIDE; - void updateCurrentTime(int time) Q_DECL_OVERRIDE; - void writeBack() Q_DECL_OVERRIDE; - void nodeWasDestroyed() Q_DECL_OVERRIDE; - void afterNodeSync() Q_DECL_OVERRIDE; + void initialize(QQuickAnimatorController *controller) override; + void updateCurrentTime(int time) override; + void writeBack() override; + void nodeWasDestroyed() override; + void afterNodeSync() override; void moveNode(QSGTransformNode *node, const QRectF &geometry, qreal progress); @@ -66,7 +66,7 @@ private: QSGNode *m_node; }; -QQuickMaterialProgressStripAnimatorJob::QQuickMaterialProgressStripAnimatorJob() : m_node(Q_NULLPTR) +QQuickMaterialProgressStripAnimatorJob::QQuickMaterialProgressStripAnimatorJob() : m_node(nullptr) { } @@ -111,7 +111,7 @@ void QQuickMaterialProgressStripAnimatorJob::writeBack() void QQuickMaterialProgressStripAnimatorJob::nodeWasDestroyed() { - m_node = Q_NULLPTR; + m_node = nullptr; } void QQuickMaterialProgressStripAnimatorJob::afterNodeSync() diff --git a/src/imports/controls/material/qquickmaterialprogressstrip_p.h b/src/imports/controls/material/qquickmaterialprogressstrip_p.h index d0618af6..38333ee5 100644 --- a/src/imports/controls/material/qquickmaterialprogressstrip_p.h +++ b/src/imports/controls/material/qquickmaterialprogressstrip_p.h @@ -61,7 +61,7 @@ class QQuickMaterialProgressStrip : public QQuickItem Q_PROPERTY(bool indeterminate READ isIndeterminate WRITE setIndeterminate FINAL) public: - QQuickMaterialProgressStrip(QQuickItem *parent = Q_NULLPTR); + QQuickMaterialProgressStrip(QQuickItem *parent = nullptr); QColor color() const; void setColor(const QColor &color); @@ -73,7 +73,7 @@ public: void setIndeterminate(bool indeterminate); protected: - QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) Q_DECL_OVERRIDE; + QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override; private: QColor m_color; @@ -86,11 +86,11 @@ class QQuickMaterialStripAnimator : public QQuickAnimator Q_OBJECT public: - QQuickMaterialStripAnimator(QObject *parent = Q_NULLPTR); + QQuickMaterialStripAnimator(QObject *parent = nullptr); protected: - QString propertyName() const Q_DECL_OVERRIDE; - QQuickAnimatorJob *createJob() const Q_DECL_OVERRIDE; + QString propertyName() const override; + QQuickAnimatorJob *createJob() const override; }; QT_END_NAMESPACE diff --git a/src/imports/controls/material/qquickmaterialstyle.cpp b/src/imports/controls/material/qquickmaterialstyle.cpp index c2e43254..29ff2c48 100644 --- a/src/imports/controls/material/qquickmaterialstyle.cpp +++ b/src/imports/controls/material/qquickmaterialstyle.cpp @@ -451,7 +451,8 @@ void QQuickMaterialStyle::inheritTheme(Theme theme) void QQuickMaterialStyle::propagateTheme() { - foreach (QQuickStyle *child, childStyles()) { + const auto styles = childStyles(); + for (QQuickStyle *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritTheme(m_theme); @@ -520,7 +521,8 @@ void QQuickMaterialStyle::inheritPrimary(uint primary, bool custom) void QQuickMaterialStyle::propagatePrimary() { - foreach (QQuickStyle *child, childStyles()) { + const auto styles = childStyles(); + for (QQuickStyle *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritPrimary(m_primary, m_customPrimary); @@ -590,7 +592,8 @@ void QQuickMaterialStyle::inheritAccent(uint accent, bool custom) void QQuickMaterialStyle::propagateAccent() { - foreach (QQuickStyle *child, childStyles()) { + const auto styles = childStyles(); + for (QQuickStyle *child : styles) { QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child); if (material) material->inheritAccent(m_accent, m_customAccent); diff --git a/src/imports/controls/material/qquickmaterialstyle_p.h b/src/imports/controls/material/qquickmaterialstyle_p.h index f92bfe9d..9f3dbbbd 100644 --- a/src/imports/controls/material/qquickmaterialstyle_p.h +++ b/src/imports/controls/material/qquickmaterialstyle_p.h @@ -146,7 +146,7 @@ public: Q_ENUM(Color) Q_ENUM(Shade) - explicit QQuickMaterialStyle(QObject *parent = Q_NULLPTR); + explicit QQuickMaterialStyle(QObject *parent = nullptr); static QQuickMaterialStyle *qmlAttachedProperties(QObject *object); @@ -214,7 +214,7 @@ Q_SIGNALS: void paletteChanged(); protected: - void parentStyleChange(QQuickStyle *newParent, QQuickStyle *oldParent) Q_DECL_OVERRIDE; + void parentStyleChange(QQuickStyle *newParent, QQuickStyle *oldParent) override; private: void init(); diff --git a/src/imports/controls/material/qquickmaterialtheme_p.h b/src/imports/controls/material/qquickmaterialtheme_p.h index e0279bf6..27ffdddc 100644 --- a/src/imports/controls/material/qquickmaterialtheme_p.h +++ b/src/imports/controls/material/qquickmaterialtheme_p.h @@ -61,7 +61,7 @@ public: ~QQuickMaterialTheme(); - const QFont *font(Font type = SystemFont) const Q_DECL_OVERRIDE; + const QFont *font(Font type = SystemFont) const override; private: QFont systemFont; diff --git a/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp b/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp index 11df4464..e4b44890 100644 --- a/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp +++ b/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp @@ -47,6 +47,9 @@ static inline void initResources() { Q_INIT_RESOURCE(qtlabsmaterialstyleplugin); +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_controls_material); +#endif } QT_BEGIN_NAMESPACE @@ -57,14 +60,20 @@ class QtLabsMaterialStylePlugin : public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtLabsMaterialStylePlugin(QObject *parent = nullptr); ~QtLabsMaterialStylePlugin(); - void registerTypes(const char *uri) Q_DECL_OVERRIDE; - void initializeEngine(QQmlEngine *engine, const char *uri) Q_DECL_OVERRIDE; + void registerTypes(const char *uri) override; + void initializeEngine(QQmlEngine *engine, const char *uri) override; private: QQuickProxyTheme *theme; }; +QtLabsMaterialStylePlugin::QtLabsMaterialStylePlugin(QObject *parent) : QQmlExtensionPlugin(parent) +{ + initResources(); +} + QtLabsMaterialStylePlugin::~QtLabsMaterialStylePlugin() { if (theme) { @@ -82,7 +91,6 @@ void QtLabsMaterialStylePlugin::registerTypes(const char *uri) void QtLabsMaterialStylePlugin::initializeEngine(QQmlEngine *engine, const char *uri) { Q_UNUSED(engine); - Q_UNUSED(uri); QQuickStyleSelector selector; if (selector.style() == QLatin1String("material")) { @@ -93,13 +101,13 @@ void QtLabsMaterialStylePlugin::initializeEngine(QQmlEngine *engine, const char } } - initResources(); - QByteArray import = QByteArray(uri) + ".impl"; qmlRegisterType<QQuickMaterialProgressRing>(import, 1, 0, "ProgressRing"); qmlRegisterType<QQuickMaterialProgressStrip>(import, 1, 0, "ProgressStrip"); qmlRegisterType<QQuickMaterialRingAnimator>(import, 1, 0, "RingAnimator"); qmlRegisterType<QQuickMaterialStripAnimator>(import, 1, 0, "StripAnimator"); + qmlRegisterType(QUrl(baseUrl().toString() + QStringLiteral("/Ripple.qml")), import, 1, 0, "Ripple"); + qmlRegisterType(QUrl(baseUrl().toString() + QStringLiteral("/SliderHandle.qml")), import, 1, 0, "SliderHandle"); } QT_END_NAMESPACE diff --git a/src/imports/controls/plugins.qmltypes b/src/imports/controls/plugins.qmltypes index e9f0cff2..91553625 100644 --- a/src/imports/controls/plugins.qmltypes +++ b/src/imports/controls/plugins.qmltypes @@ -28,7 +28,6 @@ Module { Property { name: "autoExclusive"; type: "bool" } Property { name: "autoRepeat"; type: "bool" } Property { name: "indicator"; type: "QQuickItem"; isPointer: true } - Property { name: "label"; type: "QQuickItem"; isPointer: true } Signal { name: "pressed" } Signal { name: "released" } Signal { name: "canceled" } diff --git a/src/imports/controls/qquickbusyindicatorring.cpp b/src/imports/controls/qquickbusyindicatorring.cpp index 96213fa4..06e62c16 100644 --- a/src/imports/controls/qquickbusyindicatorring.cpp +++ b/src/imports/controls/qquickbusyindicatorring.cpp @@ -50,11 +50,11 @@ public: QQuickBusyIndicatorAnimatorJob(); ~QQuickBusyIndicatorAnimatorJob(); - void initialize(QQuickAnimatorController *controller) Q_DECL_OVERRIDE; - void updateCurrentTime(int time) Q_DECL_OVERRIDE; - void writeBack() Q_DECL_OVERRIDE; - void nodeWasDestroyed() Q_DECL_OVERRIDE; - void afterNodeSync() Q_DECL_OVERRIDE; + void initialize(QQuickAnimatorController *controller) override; + void updateCurrentTime(int time) override; + void writeBack() override; + void nodeWasDestroyed() override; + void afterNodeSync() override; private: QSGNode *m_node; @@ -159,7 +159,7 @@ QQuickAnimatorJob *QQuickBusyIndicatorAnimator::createJob() const return new QQuickBusyIndicatorAnimatorJob; } -QQuickBusyIndicatorAnimatorJob::QQuickBusyIndicatorAnimatorJob() : m_node(Q_NULLPTR) +QQuickBusyIndicatorAnimatorJob::QQuickBusyIndicatorAnimatorJob() : m_node(nullptr) { } @@ -217,7 +217,7 @@ void QQuickBusyIndicatorAnimatorJob::writeBack() void QQuickBusyIndicatorAnimatorJob::nodeWasDestroyed() { - m_node = Q_NULLPTR; + m_node = nullptr; } void QQuickBusyIndicatorAnimatorJob::afterNodeSync() diff --git a/src/imports/controls/qquickbusyindicatorring_p.h b/src/imports/controls/qquickbusyindicatorring_p.h index 4697628d..cd1e70ad 100644 --- a/src/imports/controls/qquickbusyindicatorring_p.h +++ b/src/imports/controls/qquickbusyindicatorring_p.h @@ -58,21 +58,21 @@ class QQuickBusyIndicatorRing : public QQuickItem Q_OBJECT public: - explicit QQuickBusyIndicatorRing(QQuickItem *parent = Q_NULLPTR); + explicit QQuickBusyIndicatorRing(QQuickItem *parent = nullptr); ~QQuickBusyIndicatorRing(); protected: - QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) Q_DECL_OVERRIDE; + QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override; }; class QQuickBusyIndicatorAnimator : public QQuickAnimator { public: - QQuickBusyIndicatorAnimator(QObject *parent = Q_NULLPTR); + QQuickBusyIndicatorAnimator(QObject *parent = nullptr); protected: - QString propertyName() const Q_DECL_OVERRIDE; - QQuickAnimatorJob *createJob() const Q_DECL_OVERRIDE; + QString propertyName() const override; + QQuickAnimatorJob *createJob() const override; }; QT_END_NAMESPACE diff --git a/src/imports/controls/qquickprogressstrip.cpp b/src/imports/controls/qquickprogressstrip.cpp index e9480ff1..0fc72087 100644 --- a/src/imports/controls/qquickprogressstrip.cpp +++ b/src/imports/controls/qquickprogressstrip.cpp @@ -47,11 +47,11 @@ public: QQuickProgressAnimatorJob(); ~QQuickProgressAnimatorJob(); - void initialize(QQuickAnimatorController *controller) Q_DECL_OVERRIDE; - void afterNodeSync() Q_DECL_OVERRIDE; - void updateCurrentTime(int time) Q_DECL_OVERRIDE; - void writeBack() Q_DECL_OVERRIDE; - void nodeWasDestroyed() Q_DECL_OVERRIDE; + void initialize(QQuickAnimatorController *controller) override; + void afterNodeSync() override; + void updateCurrentTime(int time) override; + void writeBack() override; + void nodeWasDestroyed() override; private: QSGNode *m_node; @@ -210,7 +210,7 @@ QQuickAnimatorJob *QQuickProgressAnimator::createJob() const } QQuickProgressAnimatorJob::QQuickProgressAnimatorJob() : - m_node(Q_NULLPTR) + m_node(nullptr) { } @@ -308,7 +308,7 @@ void QQuickProgressAnimatorJob::writeBack() void QQuickProgressAnimatorJob::nodeWasDestroyed() { - m_node = Q_NULLPTR; + m_node = nullptr; } QT_END_NAMESPACE diff --git a/src/imports/controls/qquickprogressstrip_p.h b/src/imports/controls/qquickprogressstrip_p.h index c34698dc..105c6a29 100644 --- a/src/imports/controls/qquickprogressstrip_p.h +++ b/src/imports/controls/qquickprogressstrip_p.h @@ -60,7 +60,7 @@ class QQuickProgressStrip : public QQuickItem Q_PROPERTY(qreal progress READ progress WRITE setProgress NOTIFY progressChanged FINAL) public: - explicit QQuickProgressStrip(QQuickItem *parent = Q_NULLPTR); + explicit QQuickProgressStrip(QQuickItem *parent = nullptr); ~QQuickProgressStrip(); bool isIndeterminate() const; @@ -74,7 +74,7 @@ Q_SIGNALS: void indeterminateChanged(); protected: - QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) Q_DECL_OVERRIDE; + QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override; private: qreal m_progress; @@ -84,11 +84,11 @@ private: class QQuickProgressAnimator : public QQuickAnimator { public: - QQuickProgressAnimator(QObject *parent = Q_NULLPTR); + QQuickProgressAnimator(QObject *parent = nullptr); protected: - QString propertyName() const Q_DECL_OVERRIDE; - QQuickAnimatorJob *createJob() const Q_DECL_OVERRIDE; + QString propertyName() const override; + QQuickAnimatorJob *createJob() const override; }; QT_END_NAMESPACE diff --git a/src/imports/controls/qtlabscontrolsplugin.cpp b/src/imports/controls/qtlabscontrolsplugin.cpp index 4258fb9c..008d13a7 100644 --- a/src/imports/controls/qtlabscontrolsplugin.cpp +++ b/src/imports/controls/qtlabscontrolsplugin.cpp @@ -36,6 +36,7 @@ #include <QtQml/qqmlextensionplugin.h> #include <QtCore/qurl.h> +#include <QtCore/qfile.h> #include <QtCore/qcoreapplication.h> #include <QtLabsTemplates/private/qquickabstractbutton_p.h> @@ -51,6 +52,9 @@ static inline void initResources() { Q_INIT_RESOURCE(qtlabscontrolsplugin); +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_controls); +#endif } QT_BEGIN_NAMESPACE @@ -61,10 +65,16 @@ class QtLabsControlsPlugin: public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtLabsControlsPlugin(QObject *parent = nullptr); void registerTypes(const char *uri); void initializeEngine(QQmlEngine *engine, const char *uri); }; +QtLabsControlsPlugin::QtLabsControlsPlugin(QObject *parent) : QQmlExtensionPlugin(parent) +{ + initResources(); +} + void QtLabsControlsPlugin::registerTypes(const char *uri) { qmlRegisterType<QQuickAbstractButton>(uri, 1, 0, "AbstractButton"); @@ -74,7 +84,10 @@ void QtLabsControlsPlugin::registerTypes(const char *uri) qmlRegisterType<QQuickControl>(uri, 1, 0, "Control"); QQuickStyleSelector selector; - selector.setBaseUrl(baseUrl()); + if (QFile::exists(QLatin1String(":/qt-project.org/imports/Qt/labs/controls/ApplicationWindow.qml"))) + selector.setBaseUrl(QUrl(QLatin1String("qrc:/qt-project.org/imports/Qt/labs/controls")));\ + else + selector.setBaseUrl(baseUrl()); qmlRegisterType(selector.select(QStringLiteral("/ApplicationWindow.qml")), uri, 1, 0, "ApplicationWindow"); qmlRegisterType(selector.select(QStringLiteral("/BusyIndicator.qml")), uri, 1, 0, "BusyIndicator"); @@ -116,7 +129,6 @@ void QtLabsControlsPlugin::initializeEngine(QQmlEngine *engine, const char *uri) { Q_UNUSED(engine); Q_UNUSED(uri); - initResources(); const QByteArray import = QByteArray(uri) + ".impl"; qmlRegisterType<QQuickBusyIndicatorRing>(import, 1, 0, "BusyRing"); diff --git a/src/imports/controls/universal/Button.qml b/src/imports/controls/universal/Button.qml index c43d8d67..18b242ca 100644 --- a/src/imports/controls/universal/Button.qml +++ b/src/imports/controls/universal/Button.qml @@ -42,10 +42,10 @@ T.Button { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - label ? label.implicitWidth + leftPadding + rightPadding : 0) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - label ? label.implicitHeight + topPadding + bottomPadding : 0) - baselineOffset: label ? label.y + label.baselineOffset : 0 + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset topPadding: 4 leftPadding: 8 @@ -54,13 +54,8 @@ T.Button { property bool useSystemFocusVisuals: true - //! [label] - label: Text { - x: control.leftPadding - y: control.topPadding - width: control.availableWidth - height: control.availableHeight - + //! [contentItem] + contentItem: Text { text: control.text font: control.font elide: Text.ElideRight @@ -70,7 +65,7 @@ T.Button { color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor } - //! [label] + //! [contentItem] //! [background] background: Rectangle { diff --git a/src/imports/controls/universal/CheckBox.qml b/src/imports/controls/universal/CheckBox.qml index 07321a9c..b5442c57 100644 --- a/src/imports/controls/universal/CheckBox.qml +++ b/src/imports/controls/universal/CheckBox.qml @@ -42,13 +42,11 @@ T.CheckBox { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 spacing: 8 @@ -92,12 +90,10 @@ T.CheckBox { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - indicator.width - control.spacing - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -109,5 +105,5 @@ T.CheckBox { color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor } - //! [label] + //! [contentItem] } diff --git a/src/imports/controls/universal/ComboBox.qml b/src/imports/controls/universal/ComboBox.qml index 5c0f1004..f736ef96 100644 --- a/src/imports/controls/universal/ComboBox.qml +++ b/src/imports/controls/universal/ComboBox.qml @@ -36,6 +36,7 @@ import QtQuick 2.6 import QtQuick.Window 2.2 +import Qt.labs.controls 1.0 import Qt.labs.templates 1.0 as T import Qt.labs.controls.universal 1.0 diff --git a/src/imports/controls/universal/Frame.qml b/src/imports/controls/universal/Frame.qml index 9427dc2f..70f1647d 100644 --- a/src/imports/controls/universal/Frame.qml +++ b/src/imports/controls/universal/Frame.qml @@ -53,13 +53,10 @@ T.Frame { contentItem: Item { } //! [contentItem] - //! [frame] - frame: Rectangle { - width: parent.width - height: parent.height - + //! [background] + background: Rectangle { color: "transparent" border.color: control.Universal.chromeDisabledLowColor } - //! [frame] + //! [background] } diff --git a/src/imports/controls/universal/GroupBox.qml b/src/imports/controls/universal/GroupBox.qml index 9b21a17f..5b25fc75 100644 --- a/src/imports/controls/universal/GroupBox.qml +++ b/src/imports/controls/universal/GroupBox.qml @@ -72,8 +72,8 @@ T.GroupBox { } //! [label] - //! [frame] - frame: Rectangle { + //! [background] + background: Rectangle { y: control.topPadding - control.padding width: parent.width height: parent.height - control.topPadding + control.padding @@ -81,5 +81,5 @@ T.GroupBox { color: "transparent" border.color: control.Universal.chromeDisabledLowColor } - //! [frame] + //! [background] } diff --git a/src/imports/controls/universal/ItemDelegate.qml b/src/imports/controls/universal/ItemDelegate.qml index d2c9a4f3..406bdb42 100644 --- a/src/imports/controls/universal/ItemDelegate.qml +++ b/src/imports/controls/universal/ItemDelegate.qml @@ -42,13 +42,11 @@ T.ItemDelegate { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset spacing: 12 @@ -67,12 +65,10 @@ T.ItemDelegate { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored || !control.checkable ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - (control.checkable ? indicator.width + control.spacing : 0) - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -84,7 +80,7 @@ T.ItemDelegate { color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor } - //! [label] + //! [contentItem] //! [background] background: Rectangle { diff --git a/src/imports/controls/universal/MenuItem.qml b/src/imports/controls/universal/MenuItem.qml index fee5d886..cc8cb75d 100644 --- a/src/imports/controls/universal/MenuItem.qml +++ b/src/imports/controls/universal/MenuItem.qml @@ -41,12 +41,12 @@ import Qt.labs.controls.universal 1.0 T.MenuItem { id: control - implicitWidth: background ? background.implicitWidth - : (label ? label.implicitWidth : 0) + (indicator ? indicator.implicitWidth : 0) - + (label && indicator ? spacing : 0) + leftPadding + rightPadding - implicitHeight: background ? background.implicitHeight - : (label ? label.implicitHeight : 0) + (indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding - baselineOffset: label ? label.y + label.baselineOffset : 0 + implicitWidth: Math.max(background ? background.implicitWidth : 0, + contentItem.implicitWidth + leftPadding + rightPadding) + implicitHeight: Math.max(background ? background.implicitHeight : 0, + Math.max(contentItem.implicitHeight, + indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset topPadding: 11 leftPadding: 12 @@ -54,12 +54,10 @@ T.MenuItem { bottomPadding: 13 spacing: 12 - //! [label] - label: Text { - x: control.mirrored || !control.checkable ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - (control.checkable ? indicator.width + control.spacing : 0) - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.checkable && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.checkable && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -69,7 +67,7 @@ T.MenuItem { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter } - //! [label] + //! [contentItem] //! [indicator] indicator: Image { diff --git a/src/imports/controls/universal/RadioButton.qml b/src/imports/controls/universal/RadioButton.qml index 04cd3dcc..45e77ac1 100644 --- a/src/imports/controls/universal/RadioButton.qml +++ b/src/imports/controls/universal/RadioButton.qml @@ -42,13 +42,11 @@ T.RadioButton { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 spacing: 8 @@ -98,12 +96,10 @@ T.RadioButton { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - indicator.width - control.spacing - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -115,5 +111,5 @@ T.RadioButton { color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor } - //! [label] + //! [contentItem] } diff --git a/src/imports/controls/universal/Switch.qml b/src/imports/controls/universal/Switch.qml index ca33e121..f37c1054 100644 --- a/src/imports/controls/universal/Switch.qml +++ b/src/imports/controls/universal/Switch.qml @@ -42,13 +42,11 @@ T.Switch { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - (label ? label.implicitWidth : 0) + - (indicator ? indicator.implicitWidth : 0) + - (label && indicator ? spacing : 0) + leftPadding + rightPadding) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - Math.max(label ? label.implicitHeight : 0, + Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding) - baselineOffset: label ? label.y + label.baselineOffset : 0 + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 5 spacing: 8 @@ -90,12 +88,10 @@ T.Switch { } //! [indicator] - //! [label] - label: Text { - x: control.mirrored ? control.leftPadding : (indicator.x + indicator.width + control.spacing) - y: control.topPadding - width: control.availableWidth - indicator.width - control.spacing - height: control.availableHeight + //! [contentItem] + contentItem: Text { + leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0 + rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0 text: control.text font: control.font @@ -107,5 +103,5 @@ T.Switch { color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor } - //! [label] + //! [contentItem] } diff --git a/src/imports/controls/universal/TabButton.qml b/src/imports/controls/universal/TabButton.qml index 3b9fc60c..b332160b 100644 --- a/src/imports/controls/universal/TabButton.qml +++ b/src/imports/controls/universal/TabButton.qml @@ -42,20 +42,15 @@ T.TabButton { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - label ? label.implicitWidth + leftPadding + rightPadding : 0) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - label ? label.implicitHeight + topPadding + bottomPadding : 0) - baselineOffset: label ? label.y + label.baselineOffset : 0 + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 12 // PivotItemMargin - //! [label] - label: Text { - x: control.leftPadding - y: control.topPadding - width: control.availableWidth - height: control.availableHeight - + //! [contentItem] + contentItem: Text { text: control.text font: control.font elide: Text.ElideRight @@ -64,5 +59,5 @@ T.TabButton { verticalAlignment: Text.AlignVCenter renderType: Text.NativeRendering } - //! [label] + //! [contentItem] } diff --git a/src/imports/controls/universal/TextArea.qml b/src/imports/controls/universal/TextArea.qml index 72b69cb9..4f3f8a34 100644 --- a/src/imports/controls/universal/TextArea.qml +++ b/src/imports/controls/universal/TextArea.qml @@ -73,7 +73,7 @@ T.TextArea { font: control.font color: !control.enabled ? control.Universal.chromeDisabledLowColor : control.activeFocus ? control.Universal.chromeBlackMediumLowColor : control.Universal.baseMediumColor - visible: !control.length && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) + visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment renderType: Text.NativeRendering diff --git a/src/imports/controls/universal/TextField.qml b/src/imports/controls/universal/TextField.qml index 1f066220..a0c854b2 100644 --- a/src/imports/controls/universal/TextField.qml +++ b/src/imports/controls/universal/TextField.qml @@ -74,7 +74,7 @@ T.TextField { font: control.font color: !control.enabled ? control.Universal.chromeDisabledLowColor : control.activeFocus ? control.Universal.chromeBlackMediumLowColor : control.Universal.baseMediumColor - visible: !control.displayText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) + visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter) horizontalAlignment: control.horizontalAlignment verticalAlignment: control.verticalAlignment renderType: Text.NativeRendering diff --git a/src/imports/controls/universal/ToolButton.qml b/src/imports/controls/universal/ToolButton.qml index f3fe80d4..f5fd5c88 100644 --- a/src/imports/controls/universal/ToolButton.qml +++ b/src/imports/controls/universal/ToolButton.qml @@ -42,22 +42,17 @@ T.ToolButton { id: control implicitWidth: Math.max(background ? background.implicitWidth : 0, - label ? label.implicitWidth + leftPadding + rightPadding : 0) + contentItem.implicitWidth + leftPadding + rightPadding) implicitHeight: Math.max(background ? background.implicitHeight : 0, - label ? label.implicitHeight + topPadding + bottomPadding : 0) - baselineOffset: label ? label.y + label.baselineOffset : 0 + contentItem.implicitHeight + topPadding + bottomPadding) + baselineOffset: contentItem.y + contentItem.baselineOffset padding: 6 property bool useSystemFocusVisuals: true - //! [label] - label: Text { - x: control.leftPadding - y: control.topPadding - width: control.availableWidth - height: control.availableHeight - + //! [contentItem] + contentItem: Text { text: control.text font: control.font color: control.enabled ? control.Universal.baseHighColor : control.Universal.baseLowColor @@ -66,7 +61,7 @@ T.ToolButton { verticalAlignment: Text.AlignVCenter renderType: Text.NativeRendering } - //! [label] + //! [contentItem] //! [background] background: Rectangle { diff --git a/src/imports/controls/universal/qquickuniversalfocusrectangle_p.h b/src/imports/controls/universal/qquickuniversalfocusrectangle_p.h index 6b15bc8d..628db5b2 100644 --- a/src/imports/controls/universal/qquickuniversalfocusrectangle_p.h +++ b/src/imports/controls/universal/qquickuniversalfocusrectangle_p.h @@ -57,9 +57,9 @@ class QQuickUniversalFocusRectangle : public QQuickPaintedItem Q_OBJECT public: - QQuickUniversalFocusRectangle(QQuickItem *parent = Q_NULLPTR); + QQuickUniversalFocusRectangle(QQuickItem *parent = nullptr); - void paint(QPainter *painter) Q_DECL_OVERRIDE; + void paint(QPainter *painter) override; }; QT_END_NAMESPACE diff --git a/src/imports/controls/universal/qquickuniversalimageprovider.cpp b/src/imports/controls/universal/qquickuniversalimageprovider.cpp deleted file mode 100644 index 7cb7b926..00000000 --- a/src/imports/controls/universal/qquickuniversalimageprovider.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt Labs Controls module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qquickuniversalimageprovider_p.h" - -#include <QtCore/qdebug.h> -#include <QtGui/qpainter.h> -#include <QtGui/qguiapplication.h> -#include <QtGui/qscreen.h> -#include <QtGui/qicon.h> - -QT_BEGIN_NAMESPACE - -QQuickUniversalImageProvider::QQuickUniversalImageProvider() : QQuickImageProvider(Image) -{ -} - -QImage QQuickUniversalImageProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize) -{ - Q_UNUSED(requestedSize); - - int sep = id.indexOf(QLatin1Char('/')); - QString name = id.left(sep); - QString color = id.mid(sep + 1); - qreal dpr = qApp->primaryScreen()->devicePixelRatio(); - QString file = qt_findAtNxFile(QStringLiteral(":/qt-project.org/imports/Qt/labs/controls/universal/images/") + name + QStringLiteral(".png"), dpr); - - QImage image(file); - if (image.isNull()) { - qWarning() << "QQuickUniversalImageProvider: unknown id:" << id; - return QImage(); - } - - if (size) - *size = image.size(); - - if (!color.isEmpty()) { - QPainter painter(&image); - painter.setCompositionMode(QPainter::CompositionMode_SourceIn); - painter.fillRect(image.rect(), QColor(color)); - } - - return image; -} - -QT_END_NAMESPACE diff --git a/src/imports/controls/universal/qquickuniversalimageprovider_p.h b/src/imports/controls/universal/qquickuniversalimageprovider_p.h deleted file mode 100644 index 15648157..00000000 --- a/src/imports/controls/universal/qquickuniversalimageprovider_p.h +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt Labs Controls module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QQUICKUNIVERSALIMAGEPROVIDER_P_H -#define QQUICKUNIVERSALIMAGEPROVIDER_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include <QtQuick/qquickimageprovider.h> - -QT_BEGIN_NAMESPACE - -class QQuickUniversalImageProvider : public QQuickImageProvider -{ -public: - QQuickUniversalImageProvider(); - - QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize) Q_DECL_OVERRIDE; -}; - -QT_END_NAMESPACE - -#endif // QQUICKUNIVERSALIMAGEPROVIDER_P_H diff --git a/src/imports/controls/universal/qquickuniversalprogressring.cpp b/src/imports/controls/universal/qquickuniversalprogressring.cpp index 2fe66047..9b95341d 100644 --- a/src/imports/controls/universal/qquickuniversalprogressring.cpp +++ b/src/imports/controls/universal/qquickuniversalprogressring.cpp @@ -53,11 +53,11 @@ class QQuickUniversalProgressRingAnimatorJob : public QQuickAnimatorJob public: QQuickUniversalProgressRingAnimatorJob(); - void initialize(QQuickAnimatorController *controller) Q_DECL_OVERRIDE; - void updateCurrentTime(int time) Q_DECL_OVERRIDE; - void writeBack() Q_DECL_OVERRIDE; - void nodeWasDestroyed() Q_DECL_OVERRIDE; - void afterNodeSync() Q_DECL_OVERRIDE; + void initialize(QQuickAnimatorController *controller) override; + void updateCurrentTime(int time) override; + void writeBack() override; + void nodeWasDestroyed() override; + void afterNodeSync() override; private: struct Phase { @@ -73,7 +73,7 @@ private: Phase m_phases[PhaseCount]; }; -QQuickUniversalProgressRingAnimatorJob::QQuickUniversalProgressRingAnimatorJob() : m_node(Q_NULLPTR) +QQuickUniversalProgressRingAnimatorJob::QQuickUniversalProgressRingAnimatorJob() : m_node(nullptr) { m_phases[0] = Phase(433, -110, 10, QEasingCurve::BezierSpline); m_phases[1] = Phase(767, 10, 93, QEasingCurve::Linear ); @@ -153,7 +153,7 @@ void QQuickUniversalProgressRingAnimatorJob::writeBack() void QQuickUniversalProgressRingAnimatorJob::nodeWasDestroyed() { - m_node = Q_NULLPTR; + m_node = nullptr; } void QQuickUniversalProgressRingAnimatorJob::afterNodeSync() diff --git a/src/imports/controls/universal/qquickuniversalprogressring_p.h b/src/imports/controls/universal/qquickuniversalprogressring_p.h index 1d484e3a..f32beb54 100644 --- a/src/imports/controls/universal/qquickuniversalprogressring_p.h +++ b/src/imports/controls/universal/qquickuniversalprogressring_p.h @@ -60,7 +60,7 @@ class QQuickUniversalProgressRing : public QQuickItem Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged FINAL) public: - QQuickUniversalProgressRing(QQuickItem *parent = Q_NULLPTR); + QQuickUniversalProgressRing(QQuickItem *parent = nullptr); int count() const; void setCount(int count); @@ -73,7 +73,7 @@ Q_SIGNALS: void colorChanged(); protected: - QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) Q_DECL_OVERRIDE; + QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override; private: int m_count; @@ -85,11 +85,11 @@ class QQuickUniversalProgressRingAnimator : public QQuickAnimator Q_OBJECT public: - QQuickUniversalProgressRingAnimator(QObject *parent = Q_NULLPTR); + QQuickUniversalProgressRingAnimator(QObject *parent = nullptr); protected: - QString propertyName() const Q_DECL_OVERRIDE; - QQuickAnimatorJob *createJob() const Q_DECL_OVERRIDE; + QString propertyName() const override; + QQuickAnimatorJob *createJob() const override; }; QT_END_NAMESPACE diff --git a/src/imports/controls/universal/qquickuniversalprogressstrip.cpp b/src/imports/controls/universal/qquickuniversalprogressstrip.cpp index 39ce1b5c..c4fab7ae 100644 --- a/src/imports/controls/universal/qquickuniversalprogressstrip.cpp +++ b/src/imports/controls/universal/qquickuniversalprogressstrip.cpp @@ -62,11 +62,11 @@ class QQuickUniversalProgressStripAnimatorJob : public QQuickAnimatorJob public: QQuickUniversalProgressStripAnimatorJob(); - void initialize(QQuickAnimatorController *controller) Q_DECL_OVERRIDE; - void updateCurrentTime(int time) Q_DECL_OVERRIDE; - void writeBack() Q_DECL_OVERRIDE; - void nodeWasDestroyed() Q_DECL_OVERRIDE; - void afterNodeSync() Q_DECL_OVERRIDE; + void initialize(QQuickAnimatorController *controller) override; + void updateCurrentTime(int time) override; + void writeBack() override; + void nodeWasDestroyed() override; + void afterNodeSync() override; private: struct Phase { @@ -82,7 +82,7 @@ private: Phase m_ellipsePhases[PhaseCount]; }; -QQuickUniversalProgressStripAnimatorJob::QQuickUniversalProgressStripAnimatorJob() : m_node(Q_NULLPTR) +QQuickUniversalProgressStripAnimatorJob::QQuickUniversalProgressStripAnimatorJob() : m_node(nullptr) { m_borderPhases[0] = Phase( 500, -50, 0); m_borderPhases[1] = Phase(1500, 0, 0); @@ -203,7 +203,7 @@ void QQuickUniversalProgressStripAnimatorJob::writeBack() void QQuickUniversalProgressStripAnimatorJob::nodeWasDestroyed() { - m_node = Q_NULLPTR; + m_node = nullptr; } void QQuickUniversalProgressStripAnimatorJob::afterNodeSync() diff --git a/src/imports/controls/universal/qquickuniversalprogressstrip_p.h b/src/imports/controls/universal/qquickuniversalprogressstrip_p.h index b61e73c6..1b2c729d 100644 --- a/src/imports/controls/universal/qquickuniversalprogressstrip_p.h +++ b/src/imports/controls/universal/qquickuniversalprogressstrip_p.h @@ -59,7 +59,7 @@ class QQuickUniversalProgressStrip : public QQuickItem Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged FINAL) public: - QQuickUniversalProgressStrip(QQuickItem *parent = Q_NULLPTR); + QQuickUniversalProgressStrip(QQuickItem *parent = nullptr); QColor color() const; void setColor(const QColor &color); @@ -68,7 +68,7 @@ Q_SIGNALS: void colorChanged(); protected: - QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) Q_DECL_OVERRIDE; + QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override; private: QColor m_color; @@ -79,11 +79,11 @@ class QQuickUniversalProgressStripAnimator : public QQuickAnimator Q_OBJECT public: - QQuickUniversalProgressStripAnimator(QObject *parent = Q_NULLPTR); + QQuickUniversalProgressStripAnimator(QObject *parent = nullptr); protected: - QString propertyName() const Q_DECL_OVERRIDE; - QQuickAnimatorJob *createJob() const Q_DECL_OVERRIDE; + QString propertyName() const override; + QQuickAnimatorJob *createJob() const override; }; QT_END_NAMESPACE diff --git a/src/imports/controls/universal/qquickuniversalstyle.cpp b/src/imports/controls/universal/qquickuniversalstyle.cpp index 2f9c86cb..49b2d9f7 100644 --- a/src/imports/controls/universal/qquickuniversalstyle.cpp +++ b/src/imports/controls/universal/qquickuniversalstyle.cpp @@ -174,7 +174,8 @@ void QQuickUniversalStyle::inheritTheme(Theme theme) void QQuickUniversalStyle::propagateTheme() { - foreach (QQuickStyle *child, childStyles()) { + const auto styles = childStyles(); + for (QQuickStyle *child : styles) { QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(child); if (universal) universal->inheritTheme(m_theme); @@ -238,7 +239,8 @@ void QQuickUniversalStyle::inheritAccent(QRgb accent) void QQuickUniversalStyle::propagateAccent() { - foreach (QQuickStyle *child, childStyles()) { + const auto styles = childStyles(); + for (QQuickStyle *child : styles) { QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(child); if (universal) universal->inheritAccent(m_accent); diff --git a/src/imports/controls/universal/qquickuniversalstyle_p.h b/src/imports/controls/universal/qquickuniversalstyle_p.h index 00a04c65..bba1876d 100644 --- a/src/imports/controls/universal/qquickuniversalstyle_p.h +++ b/src/imports/controls/universal/qquickuniversalstyle_p.h @@ -87,7 +87,7 @@ class QQuickUniversalStyle : public QQuickStyle Q_PROPERTY(QColor listMediumColor READ listMediumColor NOTIFY paletteChanged FINAL) public: - explicit QQuickUniversalStyle(QObject *parent = Q_NULLPTR); + explicit QQuickUniversalStyle(QObject *parent = nullptr); static QQuickUniversalStyle *qmlAttachedProperties(QObject *object); @@ -190,7 +190,7 @@ Q_SIGNALS: void paletteChanged(); protected: - void parentStyleChange(QQuickStyle *newParent, QQuickStyle *oldParent) Q_DECL_OVERRIDE; + void parentStyleChange(QQuickStyle *newParent, QQuickStyle *oldParent) override; private: void init(); diff --git a/src/imports/controls/universal/qquickuniversaltheme_p.h b/src/imports/controls/universal/qquickuniversaltheme_p.h index 20243917..809d7a89 100644 --- a/src/imports/controls/universal/qquickuniversaltheme_p.h +++ b/src/imports/controls/universal/qquickuniversaltheme_p.h @@ -61,7 +61,7 @@ public: ~QQuickUniversalTheme(); - const QFont *font(Font type = SystemFont) const Q_DECL_OVERRIDE; + const QFont *font(Font type = SystemFont) const override; private: QFont systemFont; diff --git a/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp b/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp index b3a82781..51a71ea1 100644 --- a/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp +++ b/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp @@ -36,18 +36,21 @@ #include <QtQml/qqmlextensionplugin.h> #include "qquickuniversalfocusrectangle_p.h" -#include "qquickuniversalimageprovider_p.h" #include "qquickuniversalprogressring_p.h" #include "qquickuniversalprogressstrip_p.h" #include "qquickuniversalstyle_p.h" #include "qquickuniversaltheme_p.h" #include <QtGui/private/qguiapplication_p.h> +#include <QtLabsControls/private/qquickcolorimageprovider_p.h> #include <QtLabsControls/private/qquickstyleselector_p.h> static inline void initResources() { Q_INIT_RESOURCE(qtlabsuniversalstyleplugin); +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_controls_universal); +#endif } QT_BEGIN_NAMESPACE @@ -58,14 +61,20 @@ class QtLabsUniversalStylePlugin: public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtLabsUniversalStylePlugin(QObject *parent = nullptr); ~QtLabsUniversalStylePlugin(); - void registerTypes(const char *uri) Q_DECL_OVERRIDE; - void initializeEngine(QQmlEngine *engine, const char *uri) Q_DECL_OVERRIDE; + void registerTypes(const char *uri) override; + void initializeEngine(QQmlEngine *engine, const char *uri) override; private: QQuickProxyTheme *theme; }; +QtLabsUniversalStylePlugin::QtLabsUniversalStylePlugin(QObject *parent) : QQmlExtensionPlugin(parent) +{ + initResources(); +} + QtLabsUniversalStylePlugin::~QtLabsUniversalStylePlugin() { if (theme) { @@ -91,8 +100,7 @@ void QtLabsUniversalStylePlugin::initializeEngine(QQmlEngine *engine, const char } } - initResources(); - engine->addImageProvider(QStringLiteral("universal"), new QQuickUniversalImageProvider); + engine->addImageProvider(QStringLiteral("universal"), new QQuickColorImageProvider(QStringLiteral(":/qt-project.org/imports/Qt/labs/controls/universal/images"))); QByteArray import = QByteArray(uri) + ".impl"; qmlRegisterType<QQuickUniversalFocusRectangle>(import, 1, 0, "FocusRectangle"); diff --git a/src/imports/controls/universal/universal.pri b/src/imports/controls/universal/universal.pri index c7717d78..965228cb 100644 --- a/src/imports/controls/universal/universal.pri +++ b/src/imports/controls/universal/universal.pri @@ -34,7 +34,6 @@ QML_FILES += \ HEADERS += \ $$PWD/qquickuniversalfocusrectangle_p.h \ - $$PWD/qquickuniversalimageprovider_p.h \ $$PWD/qquickuniversalprogressring_p.h \ $$PWD/qquickuniversalprogressstrip_p.h \ $$PWD/qquickuniversalstyle_p.h \ @@ -42,7 +41,6 @@ HEADERS += \ SOURCES += \ $$PWD/qquickuniversalfocusrectangle.cpp \ - $$PWD/qquickuniversalimageprovider.cpp \ $$PWD/qquickuniversalprogressring.cpp \ $$PWD/qquickuniversalprogressstrip.cpp \ $$PWD/qquickuniversalstyle.cpp \ diff --git a/src/imports/templates/plugins.qmltypes b/src/imports/templates/plugins.qmltypes index 05491643..1879dc6c 100644 --- a/src/imports/templates/plugins.qmltypes +++ b/src/imports/templates/plugins.qmltypes @@ -22,7 +22,6 @@ Module { Property { name: "autoExclusive"; type: "bool" } Property { name: "autoRepeat"; type: "bool" } Property { name: "indicator"; type: "QQuickItem"; isPointer: true } - Property { name: "label"; type: "QQuickItem"; isPointer: true } Signal { name: "pressed" } Signal { name: "released" } Signal { name: "canceled" } diff --git a/src/imports/templates/qtlabstemplatesplugin.cpp b/src/imports/templates/qtlabstemplatesplugin.cpp index 635a2006..be7882c4 100644 --- a/src/imports/templates/qtlabstemplatesplugin.cpp +++ b/src/imports/templates/qtlabstemplatesplugin.cpp @@ -75,6 +75,13 @@ #include <QtLabsTemplates/private/qquicktoolbutton_p.h> #include <QtLabsTemplates/private/qquicktumbler_p.h> +static inline void initResources() +{ +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_templates); +#endif +} + QT_BEGIN_NAMESPACE class QtLabsTemplatesPlugin: public QQmlExtensionPlugin @@ -83,9 +90,15 @@ class QtLabsTemplatesPlugin: public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtLabsTemplatesPlugin(QObject *parent = nullptr); void registerTypes(const char *uri); }; +QtLabsTemplatesPlugin::QtLabsTemplatesPlugin(QObject *parent) : QQmlExtensionPlugin(parent) +{ + initResources(); +} + void QtLabsTemplatesPlugin::registerTypes(const char *uri) { qmlRegisterType<QQuickAbstractButton>(uri, 1, 0, "AbstractButton"); |