diff options
Diffstat (limited to 'src/imports/controls/material')
25 files changed, 194 insertions, 202 deletions
diff --git a/src/imports/controls/material/Button.qml b/src/imports/controls/material/Button.qml index a869c915..4dc9bfc5 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 230f696f..fd6ef256 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 1c293567..ef073370 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 f01d2dc9..4c8831a5 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/SpinBox.qml b/src/imports/controls/material/SpinBox.qml index 5d2044e6..f6aba60d 100644 --- a/src/imports/controls/material/SpinBox.qml +++ b/src/imports/controls/material/SpinBox.qml @@ -75,6 +75,7 @@ T.SpinBox { horizontalAlignment: Qt.AlignHCenter verticalAlignment: Qt.AlignVCenter + readOnly: !control.editable validator: control.validator inputMethodHints: Qt.ImhFormattedNumbersOnly } diff --git a/src/imports/controls/material/Switch.qml b/src/imports/controls/material/Switch.qml index 0b9edcab..ca4b1ff6 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/TabBar.qml b/src/imports/controls/material/TabBar.qml index dbc62512..6a09dbb5 100644 --- a/src/imports/controls/material/TabBar.qml +++ b/src/imports/controls/material/TabBar.qml @@ -69,7 +69,7 @@ T.TabBar { Rectangle { height: 2 width: parent.width - y: parent.height - height + y: control.position === T.TabBar.Footer ? 0 : parent.height - height color: control.Material.accentColor } } 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..d21bb0b6 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; @@ -134,11 +134,12 @@ QColor QQuickMaterialProgressRing::color() const void QQuickMaterialProgressRing::setColor(QColor color) { - if (m_color != color) { - m_color = color; - update(); - emit colorChanged(); - } + if (m_color == color) + return; + + m_color = color; + update(); + emit colorChanged(); } static const int spanAnimationDuration = 700; @@ -167,8 +168,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 +259,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 1d888183..34590340 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 57b74d62..280acb77 100644 --- a/src/imports/controls/material/qquickmaterialstyle.cpp +++ b/src/imports/controls/material/qquickmaterialstyle.cpp @@ -431,27 +431,30 @@ QQuickMaterialStyle::Theme QQuickMaterialStyle::theme() const void QQuickMaterialStyle::setTheme(Theme theme) { m_explicitTheme = true; - if (m_theme != theme) { - m_theme = theme; - propagateTheme(); - emit themeChanged(); - emit paletteChanged(); - } + if (m_theme == theme) + return; + + m_theme = theme; + propagateTheme(); + emit themeChanged(); + emit paletteChanged(); } void QQuickMaterialStyle::inheritTheme(Theme theme) { - if (!m_explicitTheme && m_theme != theme) { - m_theme = theme; - propagateTheme(); - emit themeChanged(); - emit paletteChanged(); - } + if (m_explicitTheme || m_theme == theme) + return; + + m_theme = theme; + propagateTheme(); + emit themeChanged(); + emit paletteChanged(); } 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); @@ -460,11 +463,12 @@ void QQuickMaterialStyle::propagateTheme() void QQuickMaterialStyle::resetTheme() { - if (m_explicitTheme) { - m_explicitTheme = false; - QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(parentStyle()); - inheritTheme(material ? material->theme() : defaultTheme); - } + if (!m_explicitTheme) + return; + + m_explicitTheme = false; + QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(parentStyle()); + inheritTheme(material ? material->theme() : defaultTheme); } QVariant QQuickMaterialStyle::primary() const @@ -499,28 +503,31 @@ void QQuickMaterialStyle::setPrimary(const QVariant &var) } m_explicitPrimary = true; - if (m_primary != primary) { - m_customPrimary = custom; - m_primary = primary; - propagatePrimary(); - emit primaryChanged(); - emit paletteChanged(); - } + if (m_primary == primary) + return; + + m_customPrimary = custom; + m_primary = primary; + propagatePrimary(); + emit primaryChanged(); + emit paletteChanged(); } void QQuickMaterialStyle::inheritPrimary(uint primary, bool custom) { - if (!m_explicitPrimary && m_primary != primary) { - m_customPrimary = custom; - m_primary = primary; - propagatePrimary(); - emit primaryChanged(); - } + if (m_explicitPrimary || m_primary == primary) + return; + + m_customPrimary = custom; + m_primary = primary; + propagatePrimary(); + emit primaryChanged(); } 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); @@ -529,12 +536,13 @@ void QQuickMaterialStyle::propagatePrimary() void QQuickMaterialStyle::resetPrimary() { - if (m_explicitPrimary) { - m_customPrimary = false; - m_explicitPrimary = false; - QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(parentStyle()); - inheritPrimary(material ? material->m_primary : defaultPrimary, true); - } + if (!m_explicitPrimary) + return; + + m_customPrimary = false; + m_explicitPrimary = false; + QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(parentStyle()); + inheritPrimary(material ? material->m_primary : defaultPrimary, true); } QVariant QQuickMaterialStyle::accent() const @@ -569,28 +577,31 @@ void QQuickMaterialStyle::setAccent(const QVariant &var) } m_explicitAccent = true; - if (m_accent != accent) { - m_customAccent = custom; - m_accent = accent; - propagateAccent(); - emit accentChanged(); - emit paletteChanged(); - } + if (m_accent == accent) + return; + + m_customAccent = custom; + m_accent = accent; + propagateAccent(); + emit accentChanged(); + emit paletteChanged(); } void QQuickMaterialStyle::inheritAccent(uint accent, bool custom) { - if (!m_explicitAccent && m_accent != accent) { - m_customAccent = custom; - m_accent = accent; - propagateAccent(); - emit accentChanged(); - } + if (m_explicitAccent || m_accent == accent) + return; + + m_customAccent = custom; + m_accent = accent; + propagateAccent(); + emit accentChanged(); } 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); @@ -599,12 +610,13 @@ void QQuickMaterialStyle::propagateAccent() void QQuickMaterialStyle::resetAccent() { - if (m_explicitAccent) { - m_customAccent = false; - m_explicitAccent = false; - QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(parentStyle()); - inheritAccent(material ? material->m_accent : defaultAccent, true); - } + if (!m_explicitAccent) + return; + + m_customAccent = false; + m_explicitAccent = false; + QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(parentStyle()); + inheritAccent(material ? material->m_accent : defaultAccent, true); } QColor QQuickMaterialStyle::primaryColor() const 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 |