Улучшен дизайн кнопок SpinBox: добавлены современные стили, улучшена визуальная обратная связь, добавлены SVG иконки, оптимизированы размеры и отступы, улучшена читаемость значени

This commit is contained in:
kromskii2 committed 2025-03-14 19:25:58 +07:00
1 parent 2b9165771b
commit 29dce906c5
6110 files changed
+775979

No files matched your search

@@ -0,0 +1,21 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Window
import QtQuick.Templates as T
import QtQuick.Controls.Universal
import QtQuick.Controls.Universal.impl
T.ApplicationWindow {
id: window
color: Universal.background
FocusRectangle {
parent: window.activeFocusControl
width: parent ? parent.width : 0
height: parent ? parent.height : 0
visible: parent && !!parent.useSystemFocusVisuals && !!parent.visualFocus
}
}
@@ -0,0 +1,27 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
import QtQuick.Controls.Universal.impl
T.BusyIndicator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
contentItem: BusyIndicatorImpl {
implicitWidth: 20
implicitHeight: 20
readonly property real size: Math.min(control.availableWidth, control.availableHeight)
count: size < 60 ? 5 : 6 // "Small" vs. "Large"
color: control.Universal.accent
visible: control.running
}
}
@@ -0,0 +1,56 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.Button {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 8
verticalPadding: padding - 4
spacing: 8
icon.width: 20
icon.height: 20
icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
property bool useSystemFocusVisuals: true
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
text: control.text
font: control.font
color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
}
background: Rectangle {
implicitWidth: 32
implicitHeight: 32
visible: !control.flat || control.down || control.checked || control.highlighted
color: control.down ? control.Universal.baseMediumLowColor :
control.enabled && (control.highlighted || control.checked) ? control.Universal.accent :
control.Universal.baseLowColor
Rectangle {
width: parent.width
height: parent.height
color: "transparent"
visible: enabled && control.hovered
border.width: 2 // ButtonBorderThemeThickness
border.color: control.Universal.baseMediumLowColor
}
}
}
@@ -0,0 +1,41 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
import QtQuick.Controls.Universal.impl
T.CheckBox {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
padding: 6
spacing: 8
property bool useSystemFocusVisuals: true
indicator: CheckIndicator {
x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
y: control.topPadding + (control.availableHeight - height) / 2
control: control
}
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
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
opacity: enabled ? 1.0 : 0.2
color: control.Universal.foreground
}
}
@@ -0,0 +1,63 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
import QtQuick.Controls.Universal.impl
T.CheckDelegate {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
spacing: 12
padding: 12
topPadding: padding - 1
bottomPadding: padding + 1
icon.width: 20
icon.height: 20
icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
indicator: CheckIndicator {
x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
y: control.topPadding + (control.availableHeight - height) / 2
control: control
}
contentItem: IconLabel {
leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
spacing: control.spacing
mirrored: control.mirrored
display: control.display
alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
icon: control.icon
text: control.text
font: control.font
color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
}
background: Rectangle {
visible: enabled && (control.down || control.highlighted || control.visualFocus || control.hovered)
color: control.down ? control.Universal.listMediumColor :
control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
Rectangle {
width: parent.width
height: parent.height
visible: control.visualFocus || control.highlighted
color: control.Universal.accent
opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
}
}
}
@@ -0,0 +1,129 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Window
import QtQuick.Controls.impl
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.ComboBox {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
Universal.theme: editable && activeFocus ? Universal.Light : undefined
delegate: ItemDelegate {
required property var model
required property int index
width: ListView.view.width
text: model[control.textRole]
font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
highlighted: control.highlightedIndex === index
hoverEnabled: control.hoverEnabled
}
indicator: ColorImage {
x: control.mirrored ? control.padding : control.width - width - control.padding
y: control.topPadding + (control.availableHeight - height) / 2
color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseMediumHighColor
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/downarrow.png"
Rectangle {
z: -1
width: parent.width
height: parent.height
color: control.activeFocus ? control.Universal.accent :
control.pressed ? control.Universal.baseMediumLowColor :
control.hovered ? control.Universal.baseLowColor : "transparent"
visible: control.editable && !control.contentItem.hovered && (control.pressed || control.hovered)
opacity: control.activeFocus && !control.pressed ? 0.4 : 1.0
}
}
contentItem: T.TextField {
leftPadding: control.mirrored ? 1 : 12
rightPadding: control.mirrored ? 10 : 1
topPadding: 5 - control.topPadding
bottomPadding: 7 - control.bottomPadding
text: control.editable ? control.editText : control.displayText
enabled: control.editable
autoScroll: control.editable
readOnly: control.down
inputMethodHints: control.inputMethodHints
validator: control.validator
selectByMouse: control.selectTextByMouse
color: !control.enabled ? control.Universal.chromeDisabledLowColor :
control.editable && control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.foreground
selectionColor: control.Universal.accent
selectedTextColor: control.Universal.chromeWhiteColor
verticalAlignment: Text.AlignVCenter
}
background: Rectangle {
implicitWidth: 120
implicitHeight: 32
border.width: control.flat ? 0 : 2 // ComboBoxBorderThemeThickness
border.color: !control.enabled ? control.Universal.baseLowColor :
control.editable && control.activeFocus ? control.Universal.accent :
control.down ? control.Universal.baseMediumLowColor :
control.hovered ? control.Universal.baseMediumColor : control.Universal.baseMediumLowColor
color: !control.enabled ? control.Universal.baseLowColor :
control.down ? control.Universal.listMediumColor :
control.flat && control.hovered ? control.Universal.listLowColor :
control.editable && control.activeFocus ? control.Universal.background : control.Universal.altMediumLowColor
visible: !control.flat || control.pressed || control.hovered || control.visualFocus
Rectangle {
x: 2
y: 2
width: parent.width - 4
height: parent.height - 4
visible: control.visualFocus && !control.editable
color: control.Universal.accent
opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
}
}
popup: T.Popup {
width: control.width
height: Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin)
topMargin: 8
bottomMargin: 8
Universal.theme: control.Universal.theme
Universal.accent: control.Universal.accent
contentItem: ListView {
clip: true
implicitHeight: contentHeight
model: control.delegateModel
currentIndex: control.highlightedIndex
highlightMoveDuration: 0
T.ScrollIndicator.vertical: ScrollIndicator { }
}
background: Rectangle {
color: control.Universal.chromeMediumLowColor
border.color: control.Universal.chromeHighColor
border.width: 1 // FlyoutBorderThemeThickness
}
}
}
@@ -0,0 +1,61 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.DelayButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 8
verticalPadding: padding - 4
property bool useSystemFocusVisuals: true
transition: Transition {
NumberAnimation {
duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
}
}
contentItem: Text {
text: control.text
font: control.font
elide: Text.ElideRight
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
opacity: enabled ? 1.0 : 0.2
color: control.Universal.foreground
}
background: Rectangle {
implicitWidth: 32
implicitHeight: 32
color: control.down ? control.Universal.baseMediumLowColor :
control.enabled && control.checked ? control.Universal.accent : control.Universal.baseLowColor
Rectangle {
visible: !control.checked
width: parent.width * control.progress
height: parent.height
color: control.Universal.accent
}
Rectangle {
width: parent.width
height: parent.height
color: "transparent"
visible: enabled && control.hovered
border.width: 2 // ButtonBorderThemeThickness
border.color: control.Universal.baseMediumLowColor
}
}
}
@@ -0,0 +1,54 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.Dial {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
background: Rectangle {
implicitWidth: 100
implicitHeight: 100
x: control.width / 2 - width / 2
y: control.height / 2 - height / 2
width: Math.max(64, Math.min(control.width, control.height))
height: width
radius: width / 2
color: "transparent"
border.color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseMediumColor
border.width: 2
}
handle: Rectangle {
implicitWidth: 14
implicitHeight: 14
x: control.background.x + control.background.width / 2 - width / 2
y: control.background.y + control.background.height / 2 - height / 2
radius: width / 2
color: !control.enabled ? control.Universal.baseLowColor :
control.pressed ? control.Universal.baseMediumColor :
control.hovered ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor
transform: [
Translate {
y: -control.background.height * 0.4
+ (control.handle ? control.handle.height / 2 : 0)
},
Rotation {
angle: control.angle
origin.x: control.handle ? control.handle.width / 2 : 0
origin.y: control.handle ? control.handle.height / 2 : 0
}
]
}
}
@@ -0,0 +1,57 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.Dialog {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding,
implicitHeaderWidth,
implicitFooterWidth)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding
+ (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
padding: 24
verticalPadding: 18
background: Rectangle {
color: control.Universal.chromeMediumLowColor
border.color: control.Universal.chromeHighColor
border.width: 1 // FlyoutBorderThemeThickness
}
header: Label {
text: control.title
visible: parent?.parent === Overlay.overlay && control.title
elide: Label.ElideRight
topPadding: 18
leftPadding: 24
rightPadding: 24
// TODO: QPlatformTheme::TitleBarFont
font.pixelSize: 20
background: Rectangle {
x: 1; y: 1 // // FlyoutBorderThemeThickness
color: control.Universal.chromeMediumLowColor
width: parent.width - 2
height: parent.height - 1
}
}
footer: DialogButtonBox {
visible: count > 0
}
T.Overlay.modal: Rectangle {
color: control.Universal.baseLowColor
}
T.Overlay.modeless: Rectangle {
color: control.Universal.baseLowColor
}
}
@@ -0,0 +1,43 @@
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.DialogButtonBox {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
(control.count === 1 ? implicitContentWidth * 2 : implicitContentWidth) + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
contentWidth: (contentItem as ListView)?.contentWidth
spacing: 4
padding: 24
topPadding: position === T.DialogButtonBox.Footer ? 6 : 24
bottomPadding: position === T.DialogButtonBox.Header ? 6 : 24
alignment: count === 1 ? Qt.AlignRight : undefined
delegate: Button {
width: control.count === 1 ? control.availableWidth / 2 : undefined
}
contentItem: ListView {
implicitWidth: contentWidth
model: control.contentModel
spacing: control.spacing
orientation: ListView.Horizontal
boundsBehavior: Flickable.StopAtBounds
snapMode: ListView.SnapToItem
}
background: Rectangle {
implicitHeight: 32
color: control.Universal.chromeMediumLowColor
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
}
}
@@ -0,0 +1,45 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.Drawer {
id: control
parent: T.Overlay.overlay
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
topPadding: control.edge === Qt.BottomEdge
leftPadding: control.edge === Qt.RightEdge
rightPadding: control.edge === Qt.LeftEdge
bottomPadding: control.edge === Qt.TopEdge
enter: Transition { SmoothedAnimation { velocity: 5 } }
exit: Transition { SmoothedAnimation { velocity: 5 } }
background: Rectangle {
color: control.Universal.chromeMediumLowColor
Rectangle {
readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge
width: horizontal ? 1 : parent.width
height: horizontal ? parent.height : 1
color: control.Universal.chromeHighColor
x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0
y: control.edge === Qt.TopEdge ? parent.height - 1 : 0
}
}
T.Overlay.modal: Rectangle {
color: control.Universal.baseLowColor
}
T.Overlay.modeless: Rectangle {
color: control.Universal.baseLowColor
}
}
@@ -0,0 +1,22 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.Frame {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
padding: 12
background: Rectangle {
color: "transparent"
border.color: control.Universal.chromeDisabledLowColor
}
}
@@ -0,0 +1,42 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.GroupBox {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding,
implicitLabelWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
spacing: 12
padding: 12
topPadding: padding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
label: Text {
x: control.leftPadding
width: control.availableWidth
text: control.title
font: control.font
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
opacity: enabled ? 1.0 : 0.2
color: control.Universal.foreground
}
background: Rectangle {
y: control.topPadding - control.bottomPadding
width: parent.width
height: parent.height - control.topPadding + control.bottomPadding
color: "transparent"
border.color: control.Universal.chromeDisabledLowColor
}
}
@@ -0,0 +1,45 @@
// Copyright (C) 2020 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Controls.impl
import QtQuick.Templates as T
import QtQuick.Controls.Universal
import QtQuick.Controls.Universal.impl
T.HorizontalHeaderView {
id: control
implicitWidth: syncView ? syncView.width : 0
// The contentHeight of TableView will be zero at start-up, until the delegate
// items have been loaded. This means that even if the implicit height of
// HorizontalHeaderView should be the same as the content height in the end, we
// need to ensure that it has at least a height of 1 at start-up, otherwise
// TableView won't bother loading any delegates at all.
implicitHeight: Math.max(1, contentHeight)
delegate: Rectangle {
id: delegate
required property var model
// Qt6: add cellPadding (and font etc) as public API in headerview
readonly property real cellPadding: 8
implicitWidth: text.implicitWidth + (cellPadding * 2)
implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2))
color: control.Universal.background
Label {
id: text
text: delegate.model[control.textRole]
width: delegate.width
height: delegate.height
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
}
}
}
@@ -0,0 +1,53 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.ItemDelegate {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
spacing: 12
padding: 12
topPadding: padding - 1
bottomPadding: padding + 1
icon.width: 20
icon.height: 20
icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
icon: control.icon
text: control.text
font: control.font
color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
}
background: Rectangle {
visible: enabled && (control.down || control.highlighted || control.visualFocus || control.hovered)
color: control.down ? control.Universal.listMediumColor :
control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
Rectangle {
width: parent.width
height: parent.height
visible: control.visualFocus || control.highlighted
color: control.Universal.accent
opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
}
}
}
@@ -0,0 +1,14 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.Label {
id: control
opacity: enabled ? 1.0 : 0.2
color: control.Universal.foreground
linkColor: Universal.accent
}
@@ -0,0 +1,49 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
import QtQuick.Window
T.Menu {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
margins: 0
overlap: 1
delegate: MenuItem { }
contentItem: ListView {
implicitHeight: contentHeight
model: control.contentModel
interactive: Window.window
? contentHeight + control.topPadding + control.bottomPadding > control.height
: false
clip: true
currentIndex: control.currentIndex
ScrollIndicator.vertical: ScrollIndicator {}
}
background: Rectangle {
implicitWidth: 200
implicitHeight: 40
color: control.Universal.chromeMediumLowColor
border.color: control.Universal.chromeHighColor
border.width: 1 // FlyoutBorderThemeThickness
}
T.Overlay.modal: Rectangle {
color: control.Universal.baseLowColor
}
T.Overlay.modeless: Rectangle {
color: control.Universal.baseLowColor
}
}
@@ -0,0 +1,30 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.MenuBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
delegate: MenuBarItem { }
contentItem: Row {
spacing: control.spacing
Repeater {
model: control.contentModel
}
}
background: Rectangle {
implicitHeight: 40
color: control.Universal.chromeMediumColor
}
}
@@ -0,0 +1,57 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.MenuBarItem {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
padding: 12
topPadding: padding - 1
bottomPadding: padding + 1
spacing: 12
icon.width: 20
icon.height: 20
icon.color: !enabled ? Universal.baseLowColor : Universal.baseHighColor
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
alignment: Qt.AlignLeft
icon: control.icon
text: control.text
font: control.font
color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor
}
background: Rectangle {
implicitWidth: 40
implicitHeight: 40
color: !control.enabled ? control.Universal.baseLowColor :
control.down ? control.Universal.listMediumColor :
control.highlighted ? control.Universal.listLowColor : "transparent"
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
visible: control.visualFocus
color: control.Universal.accent
opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
}
}
}
@@ -0,0 +1,81 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.MenuItem {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
padding: 12
topPadding: padding - 1
bottomPadding: padding + 1
spacing: 12
icon.width: 20
icon.height: 20
icon.color: !enabled ? Universal.baseLowColor : Universal.baseHighColor
contentItem: IconLabel {
readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0
readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0
leftPadding: !control.mirrored ? indicatorPadding : arrowPadding
rightPadding: control.mirrored ? indicatorPadding : arrowPadding
spacing: control.spacing
mirrored: control.mirrored
display: control.display
alignment: Qt.AlignLeft
icon: control.icon
text: control.text
font: control.font
color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor
}
arrow: ColorImage {
x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
y: control.topPadding + (control.availableHeight - height) / 2
visible: control.subMenu
mirror: control.mirrored
color: !enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/rightarrow.png"
}
indicator: ColorImage {
x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
y: control.topPadding + (control.availableHeight - height) / 2
visible: control.checked
color: !control.enabled ? control.Universal.baseLowColor : control.down ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor
source: !control.checkable ? "" : "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/checkmark.png"
}
background: Rectangle {
implicitWidth: 200
implicitHeight: 40
color: !control.enabled ? control.Universal.baseLowColor :
control.down ? control.Universal.listMediumColor :
control.highlighted ? control.Universal.listLowColor : control.Universal.altMediumLowColor
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
visible: control.visualFocus
color: control.Universal.accent
opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
}
}
}
@@ -0,0 +1,29 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.MenuSeparator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 12
topPadding: 9
bottomPadding: 10
contentItem: Rectangle {
implicitWidth: 188
implicitHeight: 1
color: control.Universal.baseMediumLowColor
}
background: Rectangle {
color: control.Universal.altMediumLowColor
}
}
@@ -0,0 +1,23 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.Page {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding,
implicitHeaderWidth,
implicitFooterWidth)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding
+ (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
background: Rectangle {
color: control.Universal.background
}
}
@@ -0,0 +1,38 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.PageIndicator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 6
spacing: 7
delegate: Rectangle {
implicitWidth: 5
implicitHeight: 5
radius: width / 2
color: index === control.currentIndex ? control.Universal.baseMediumHighColor :
pressed ? control.Universal.baseMediumLowColor : control.Universal.baseLowColor
required property int index
}
contentItem: Row {
spacing: control.spacing
Repeater {
model: control.count
delegate: control.delegate
}
}
}
@@ -0,0 +1,21 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.Pane {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
padding: 12
background: Rectangle {
color: control.Universal.background
}
}
@@ -0,0 +1,31 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.Popup {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
padding: 12
background: Rectangle {
color: control.Universal.chromeMediumLowColor
border.color: control.Universal.chromeHighColor
border.width: 1 // FlyoutBorderThemeThickness
}
T.Overlay.modal: Rectangle {
color: control.Universal.baseLowColor
}
T.Overlay.modeless: Rectangle {
color: control.Universal.baseLowColor
}
}
@@ -0,0 +1,35 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
import QtQuick.Controls.Universal.impl
T.ProgressBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
contentItem: ProgressBarImpl {
implicitHeight: 10
scale: control.mirrored ? -1 : 1
color: control.Universal.accent
progress: control.position
indeterminate: control.visible && control.indeterminate
}
background: Rectangle {
implicitWidth: 100
implicitHeight: 10
y: (control.height - height) / 2
height: 10
visible: !control.indeterminate
color: control.Universal.baseLowColor
}
}
@@ -0,0 +1,41 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
import QtQuick.Controls.Universal.impl
T.RadioButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
padding: 6
spacing: 8
property bool useSystemFocusVisuals: true
indicator: RadioIndicator {
x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
y: control.topPadding + (control.availableHeight - height) / 2
control: control
}
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
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
opacity: enabled ? 1.0 : 0.2
color: control.Universal.foreground
}
}
@@ -0,0 +1,63 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
import QtQuick.Controls.Universal.impl
T.RadioDelegate {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
spacing: 12
padding: 12
topPadding: padding - 1
bottomPadding: padding + 1
icon.width: 20
icon.height: 20
icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
indicator: RadioIndicator {
x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
y: control.topPadding + (control.availableHeight - height) / 2
control: control
}
contentItem: IconLabel {
leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
spacing: control.spacing
mirrored: control.mirrored
display: control.display
alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
icon: control.icon
text: control.text
font: control.font
color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
}
background: Rectangle {
visible: enabled && (control.down || control.highlighted || control.visualFocus || control.hovered)
color: control.down ? control.Universal.listMediumColor :
control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
Rectangle {
width: parent.width
height: parent.height
visible: control.visualFocus || control.highlighted
color: control.Universal.accent
opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
}
}
}
@@ -0,0 +1,76 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.RangeSlider {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
first.implicitHandleWidth + leftPadding + rightPadding,
second.implicitHandleWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
first.implicitHandleHeight + topPadding + bottomPadding,
second.implicitHandleHeight + topPadding + bottomPadding)
padding: 6
first.handle: Rectangle {
implicitWidth: control.horizontal ? 8 : 24
implicitHeight: control.horizontal ? 24 : 8
x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
radius: 4
color: control.first.pressed ? control.Universal.chromeHighColor :
control.first.hovered ? control.Universal.chromeAltLowColor :
control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
}
second.handle: Rectangle {
implicitWidth: control.horizontal ? 8 : 24
implicitHeight: control.horizontal ? 24 : 8
x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
radius: 4
color: control.second.pressed ? control.Universal.chromeHighColor :
control.second.hovered ? control.Universal.chromeAltLowColor :
control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
}
background: Item {
implicitWidth: control.horizontal ? 200 : 18
implicitHeight: control.horizontal ? 18 : 200
x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
width: control.horizontal ? control.availableWidth : implicitWidth
height: control.horizontal ? implicitHeight : control.availableHeight
scale: control.horizontal && control.mirrored ? -1 : 1
Rectangle {
x: control.horizontal ? 0 : (parent.width - width) / 2
y: control.horizontal ? (parent.height - height) / 2 : 0
width: control.horizontal ? parent.width : 2 // SliderBackgroundThemeHeight
height: control.vertical ? parent.height : 2 // SliderBackgroundThemeHeight
color: enabled && control.hovered && !control.pressed ? control.Universal.baseMediumColor :
control.enabled ? control.Universal.baseMediumLowColor : control.Universal.chromeDisabledHighColor
}
Rectangle {
x: control.horizontal ? control.first.position * parent.width : (parent.width - width) / 2
y: control.horizontal ? (parent.height - height) / 2 : control.second.visualPosition * parent.height
width: control.horizontal ? control.second.position * parent.width - control.first.position * parent.width : 2 // SliderBackgroundThemeHeight
height: control.vertical ? control.second.position * parent.height - control.first.position * parent.height : 2 // SliderBackgroundThemeHeight
color: control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
}
}
}
@@ -0,0 +1,57 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.RoundButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 8
spacing: 8
icon.width: 20
icon.height: 20
icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
property bool useSystemFocusVisuals: true
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
text: control.text
font: control.font
color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
}
background: Rectangle {
implicitWidth: 32
implicitHeight: 32
radius: control.radius
visible: !control.flat || control.down || control.checked || control.highlighted
color: control.down ? control.Universal.baseMediumLowColor :
control.enabled && (control.highlighted || control.checked) ? control.Universal.accent :
control.Universal.baseLowColor
Rectangle {
width: parent.width
height: parent.height
radius: control.radius
color: "transparent"
visible: enabled && control.hovered
border.width: 2 // ButtonBorderThemeThickness
border.color: control.Universal.baseMediumLowColor
}
}
}
@@ -0,0 +1,61 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.ScrollBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
visible: control.policy !== T.ScrollBar.AlwaysOff
minimumSize: orientation === Qt.Horizontal ? height / width : width / height
// TODO: arrows
contentItem: Rectangle {
implicitWidth: control.interactive ? 12 : 6
implicitHeight: control.interactive ? 12: 6
color: control.pressed ? control.Universal.baseMediumColor :
enabled && control.interactive && control.hovered ? control.Universal.baseMediumLowColor :
control.Universal.chromeHighColor
opacity: 0.0
}
background: Rectangle {
implicitWidth: control.interactive ? 12 : 6
implicitHeight: control.interactive ? 12: 6
color: control.Universal.chromeLowColor
visible: control.size < 1.0
opacity: 0.0
}
states: [
State {
name: "active"
when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
}
]
transitions: [
Transition {
to: "active"
NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 1.0 }
},
Transition {
from: "active"
SequentialAnimation {
PropertyAction{ targets: [control.contentItem, control.background]; property: "opacity"; value: 1.0 }
PauseAnimation { duration: 3000 }
NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 0.0 }
}
}
]
}
@@ -0,0 +1,45 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.ScrollIndicator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
contentItem: Rectangle {
implicitWidth: 6
implicitHeight: 6
color: control.Universal.baseMediumLowColor
visible: control.size < 1.0
opacity: 0.0
states: [
State {
name: "active"
when: control.active
}
]
transitions: [
Transition {
to: "active"
NumberAnimation { target: control.contentItem; property: "opacity"; to: 1.0 }
},
Transition {
from: "active"
SequentialAnimation {
PauseAnimation { duration: 5000 }
NumberAnimation { target: control.contentItem; property: "opacity"; to: 0.0 }
}
}
]
}
}
@@ -0,0 +1,31 @@
// Copyright (C) 2020 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Controls.impl
import QtQuick.Templates as T
T.ScrollView {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
ScrollBar.vertical: ScrollBar {
parent: control
x: control.mirrored ? 0 : control.width - width
y: control.topPadding
height: control.availableHeight
active: control.ScrollBar.horizontal.active
}
ScrollBar.horizontal: ScrollBar {
parent: control
x: control.leftPadding
y: control.height - height
width: control.availableWidth
active: control.ScrollBar.vertical.active
}
}
@@ -0,0 +1,37 @@
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.SelectionRectangle {
id: control
topLeftHandle: handle
bottomRightHandle: handle
Component {
id: handle
Rectangle {
implicitWidth: 8
implicitHeight: 24
radius: 4
color: tapHandler.pressed || SelectionRectangle.dragging ? control.Universal.chromeHighColor :
hoverHandler.hovered ? control.Universal.chromeAltLowColor :
control.Universal.accent
visible: control.active
property Item control: SelectionRectangle.control
HoverHandler {
id: hoverHandler
}
TapHandler {
id: tapHandler
}
}
}
}
@@ -0,0 +1,63 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.Slider {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitHandleWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitHandleHeight + topPadding + bottomPadding)
padding: 6
property bool useSystemFocusVisuals: true
handle: Rectangle {
implicitWidth: control.horizontal ? 8 : 24
implicitHeight: control.horizontal ? 24 : 8
x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
radius: 4
color: control.pressed ? control.Universal.chromeHighColor :
control.enabled ? control.hovered ? control.Universal.chromeAltLowColor :
control.Universal.accent : control.Universal.chromeDisabledHighColor
}
background: Item {
implicitWidth: control.horizontal ? 200 : 18
implicitHeight: control.horizontal ? 18 : 200
x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
width: control.horizontal ? control.availableWidth : implicitWidth
height: control.horizontal ? implicitHeight : control.availableHeight
scale: control.horizontal && control.mirrored ? -1 : 1
Rectangle {
x: control.horizontal ? 0 : (parent.width - width) / 2
y: control.horizontal ? (parent.height - height) / 2 : 0
width: control.horizontal ? parent.width : 2 // SliderTrackThemeHeight
height: !control.horizontal ? parent.height : 2 // SliderTrackThemeHeight
color: enabled && control.hovered && !control.pressed ? control.Universal.baseMediumColor :
control.enabled ? control.Universal.baseMediumLowColor : control.Universal.chromeDisabledHighColor
}
Rectangle {
x: control.horizontal ? 0 : (parent.width - width) / 2
y: control.horizontal ? (parent.height - height) / 2 : control.visualPosition * parent.height
width: control.horizontal ? control.position * parent.width : 2 // SliderTrackThemeHeight
height: !control.horizontal ? control.position * parent.height : 2 // SliderTrackThemeHeight
color: control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
}
}
}
@@ -0,0 +1,114 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.SpinBox {
id: control
// Note: the width of the indicators are calculated into the padding
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentItem.implicitWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
up.implicitIndicatorHeight, down.implicitIndicatorHeight)
// TextControlThemePadding + 2 (border)
padding: 12
topPadding: padding - 7
leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
rightPadding: padding + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
bottomPadding: padding - 5
Universal.theme: activeFocus ? Universal.Light : undefined
validator: IntValidator {
locale: control.locale.name
bottom: Math.min(control.from, control.to)
top: Math.max(control.from, control.to)
}
contentItem: TextInput {
text: control.displayText
font: control.font
color: !enabled ? control.Universal.chromeDisabledLowColor :
activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.foreground
selectionColor: control.Universal.accent
selectedTextColor: control.Universal.chromeWhiteColor
horizontalAlignment: Qt.AlignHCenter
verticalAlignment: TextInput.AlignVCenter
readOnly: !control.editable
validator: control.validator
inputMethodHints: control.inputMethodHints
clip: width < implicitWidth
}
up.indicator: Item {
implicitWidth: 28
height: control.height + 4
y: -2
x: control.mirrored ? 0 : control.width - width
Rectangle {
x: 2; y: 4
width: parent.width - 4
height: parent.height - 8
color: control.activeFocus ? control.Universal.accent :
control.up.pressed ? control.Universal.baseMediumLowColor :
control.up.hovered ? control.Universal.baseLowColor : "transparent"
visible: control.up.pressed || control.up.hovered
opacity: control.activeFocus && !control.up.pressed ? 0.4 : 1.0
}
ColorImage {
x: (parent.width - width) / 2
y: (parent.height - height) / 2
color: !enabled ? control.Universal.chromeDisabledLowColor :
control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.baseHighColor
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/" + (control.mirrored ? "left" : "right") + "arrow.png"
}
}
down.indicator: Item {
implicitWidth: 28
height: control.height + 4
y: -2
x: control.mirrored ? control.width - width : 0
Rectangle {
x: 2; y: 4
width: parent.width - 4
height: parent.height - 8
color: control.activeFocus ? control.Universal.accent :
control.down.pressed ? control.Universal.baseMediumLowColor :
control.down.hovered ? control.Universal.baseLowColor : "transparent"
visible: control.down.pressed || control.down.hovered
opacity: control.activeFocus && !control.down.pressed ? 0.4 : 1.0
}
ColorImage {
x: (parent.width - width) / 2
y: (parent.height - height) / 2
color: !enabled ? control.Universal.chromeDisabledLowColor :
control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.baseHighColor
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/" + (control.mirrored ? "right" : "left") + "arrow.png"
}
}
background: Rectangle {
implicitWidth: 60 + 28 // TextControlThemeMinWidth - 4 (border)
implicitHeight: 28 // TextControlThemeMinHeight - 4 (border)
border.width: 2 // TextControlBorderThemeThickness
border.color: !control.enabled ? control.Universal.baseLowColor :
control.activeFocus ? control.Universal.accent :
control.hovered ? control.Universal.baseMediumColor : control.Universal.chromeDisabledLowColor
color: control.enabled ? control.Universal.background : control.Universal.baseLowColor
}
}
@@ -0,0 +1,22 @@
// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.SplitView {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
handle: Rectangle {
implicitWidth: control.orientation === Qt.Horizontal ? 6 : control.width
implicitHeight: control.orientation === Qt.Horizontal ? control.height : 6
color: T.SplitHandle.pressed ? control.Universal.baseMediumColor
: (enabled && T.SplitHandle.hovered ? control.Universal.baseMediumLowColor : control.Universal.chromeHighColor)
}
}
@@ -0,0 +1,43 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.StackView {
id: control
popEnter: Transition {
ParallelAnimation {
NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 200; easing.type: Easing.InQuint }
NumberAnimation { property: "x"; from: (control.mirrored ? -0.3 : 0.3) * -control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
}
}
popExit: Transition {
NumberAnimation { property: "opacity"; from: 1; to: 0; duration: 200; easing.type: Easing.OutQuint }
}
pushEnter: Transition {
ParallelAnimation {
NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 200; easing.type: Easing.InQuint }
NumberAnimation { property: "x"; from: (control.mirrored ? -0.3 : 0.3) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
}
}
pushExit: Transition {
NumberAnimation { property: "opacity"; from: 1; to: 0; duration: 200; easing.type: Easing.OutQuint }
}
replaceEnter: Transition {
ParallelAnimation {
NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 200; easing.type: Easing.InQuint }
NumberAnimation { property: "x"; from: (control.mirrored ? -0.3 : 0.3) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
}
}
replaceExit: Transition {
NumberAnimation { property: "opacity"; from: 1; to: 0; duration: 200; easing.type: Easing.OutQuint }
}
}
@@ -0,0 +1,59 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.SwipeDelegate {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
spacing: 12
padding: 12
topPadding: padding - 1
bottomPadding: padding + 1
icon.width: 20
icon.height: 20
icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } }
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
icon: control.icon
text: control.text
font: control.font
color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
}
background: Rectangle {
color: control.Universal.background
Rectangle {
width: parent.width
height: parent.height
color: control.down ? control.Universal.listMediumColor :
enabled && control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
Rectangle {
width: parent.width
height: parent.height
visible: control.visualFocus || control.highlighted
color: control.Universal.accent
opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
}
}
}
}
@@ -0,0 +1,41 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
import QtQuick.Controls.Universal.impl
T.Switch {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
padding: 5
spacing: 8
property bool useSystemFocusVisuals: true
indicator: SwitchIndicator {
x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
y: control.topPadding + (control.availableHeight - height) / 2
control: control
}
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
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
opacity: enabled ? 1.0 : 0.2
color: control.Universal.foreground
}
}
@@ -0,0 +1,63 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
import QtQuick.Controls.Universal.impl
T.SwitchDelegate {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
spacing: 12
padding: 12
topPadding: padding - 1
bottomPadding: padding + 1
icon.width: 20
icon.height: 20
icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
indicator: SwitchIndicator {
x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
y: control.topPadding + (control.availableHeight - height) / 2
control: control
}
contentItem: IconLabel {
leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
spacing: control.spacing
mirrored: control.mirrored
display: control.display
alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
icon: control.icon
text: control.text
font: control.font
color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
}
background: Rectangle {
visible: enabled && (control.down || control.highlighted || control.visualFocus || control.hovered)
color: control.down ? control.Universal.listMediumColor :
control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
Rectangle {
width: parent.width
height: parent.height
visible: control.visualFocus || control.highlighted
color: control.Universal.accent
opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
}
}
}
@@ -0,0 +1,37 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.TabBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
contentItem: ListView {
model: control.contentModel
currentIndex: control.currentIndex
spacing: control.spacing
orientation: ListView.Horizontal
boundsBehavior: Flickable.StopAtBounds
flickableDirection: Flickable.AutoFlickIfNeeded
snapMode: ListView.SnapToItem
highlightMoveDuration: 100
highlightRangeMode: ListView.ApplyRange
preferredHighlightBegin: 48
preferredHighlightEnd: width - 48
}
background: Rectangle {
implicitWidth: 200
implicitHeight: 48
color: control.Universal.background
}
}
@@ -0,0 +1,36 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.TabButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 12 // PivotItemMargin
spacing: 8
icon.width: 20
icon.height: 20
icon.color: Color.transparent(control.hovered ? control.Universal.baseMediumHighColor : control.Universal.foreground,
control.checked || control.down || control.hovered ? 1.0 : 0.2)
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
text: control.text
font: control.font
color: Color.transparent(enabled && control.hovered ? control.Universal.baseMediumHighColor : control.Universal.foreground,
control.checked || control.down || (enabled && control.hovered) ? 1.0 : 0.2)
}
}
@@ -0,0 +1,60 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.TextArea {
id: control
implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
implicitBackgroundWidth + leftInset + rightInset,
placeholder.implicitWidth + leftPadding + rightPadding)
implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
implicitBackgroundHeight + topInset + bottomInset,
placeholder.implicitHeight + topPadding + bottomPadding)
// TextControlThemePadding + 2 (border)
padding: 12
topPadding: padding - 7
rightPadding: padding - 4
bottomPadding: padding - 5
Universal.theme: activeFocus ? Universal.Light : undefined
color: !enabled ? Universal.chromeDisabledLowColor : Universal.foreground
selectionColor: Universal.accent
selectedTextColor: Universal.chromeWhiteColor
placeholderTextColor: !enabled ? Universal.chromeDisabledLowColor :
activeFocus ? Universal.chromeBlackMediumLowColor :
Universal.baseMediumColor
PlaceholderText {
id: placeholder
x: control.leftPadding
y: control.topPadding
width: control.width - (control.leftPadding + control.rightPadding)
height: control.height - (control.topPadding + control.bottomPadding)
text: control.placeholderText
font: control.font
color: control.placeholderTextColor
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
verticalAlignment: control.verticalAlignment
elide: Text.ElideRight
renderType: control.renderType
}
background: Rectangle {
implicitWidth: 60 // TextControlThemeMinWidth - 4 (border)
implicitHeight: 28 // TextControlThemeMinHeight - 4 (border)
border.width: 2 // TextControlBorderThemeThickness
border.color: !control.enabled ? control.Universal.baseLowColor :
control.activeFocus ? control.Universal.accent :
control.hovered ? control.Universal.baseMediumColor : control.Universal.chromeDisabledLowColor
color: control.enabled ? control.Universal.background : control.Universal.baseLowColor
}
}
@@ -0,0 +1,60 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.TextField {
id: control
implicitWidth: implicitBackgroundWidth + leftInset + rightInset
|| Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding,
placeholder.implicitHeight + topPadding + bottomPadding)
// TextControlThemePadding + 2 (border)
padding: 12
topPadding: padding - 7
rightPadding: padding - 4
bottomPadding: padding - 5
Universal.theme: activeFocus ? Universal.Light : undefined
color: !enabled ? Universal.chromeDisabledLowColor : Universal.foreground
selectionColor: Universal.accent
selectedTextColor: Universal.chromeWhiteColor
placeholderTextColor: !enabled ? Universal.chromeDisabledLowColor :
activeFocus ? Universal.chromeBlackMediumLowColor :
Universal.baseMediumColor
verticalAlignment: TextInput.AlignVCenter
PlaceholderText {
id: placeholder
x: control.leftPadding
y: control.topPadding
width: control.width - (control.leftPadding + control.rightPadding)
height: control.height - (control.topPadding + control.bottomPadding)
text: control.placeholderText
font: control.font
color: control.placeholderTextColor
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
verticalAlignment: control.verticalAlignment
elide: Text.ElideRight
renderType: control.renderType
}
background: Rectangle {
implicitWidth: 60 // TextControlThemeMinWidth - 4 (border)
implicitHeight: 28 // TextControlThemeMinHeight - 4 (border)
border.width: 2 // TextControlBorderThemeThickness
border.color: !control.enabled ? control.Universal.baseLowColor :
control.activeFocus ? control.Universal.accent :
control.hovered ? control.Universal.baseMediumColor : control.Universal.chromeDisabledLowColor
color: control.enabled ? control.Universal.background : control.Universal.baseLowColor
}
}
@@ -0,0 +1,20 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.ToolBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
background: Rectangle {
implicitHeight: 48 // AppBarThemeCompactHeight
color: control.Universal.chromeMediumColor
}
}
@@ -0,0 +1,50 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
T.ToolButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 6
spacing: 8
icon.width: 20
icon.height: 20
icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
property bool useSystemFocusVisuals: true
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
text: control.text
font: control.font
color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
}
background: Rectangle {
implicitWidth: 68
implicitHeight: 48 // AppBarThemeCompactHeight
color: control.enabled && (control.highlighted || control.checked) ? control.Universal.accent : "transparent"
Rectangle {
width: parent.width
height: parent.height
visible: enabled && (control.down || control.hovered)
color: control.down ? control.Universal.listMediumColor : control.Universal.listLowColor
}
}
}
@@ -0,0 +1,26 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.ToolSeparator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
leftPadding: vertical ? 16 : 12
rightPadding: vertical ? 15 : 12
topPadding: vertical ? 12 : 16
bottomPadding: vertical ? 12 : 15
contentItem: Rectangle {
implicitWidth: control.vertical ? 1 : 20
implicitHeight: control.vertical ? 20 : 1
color: control.Universal.baseMediumLowColor
}
}
@@ -0,0 +1,39 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
T.ToolTip {
id: control
x: parent ? (parent.width - implicitWidth) / 2 : 0
y: -implicitHeight - 16
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
margins: 8
padding: 8
topPadding: padding - 3
bottomPadding: padding - 1
closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
contentItem: Text {
text: control.text
font: control.font
wrapMode: Text.Wrap
opacity: enabled ? 1.0 : 0.2
color: control.Universal.foreground
}
background: Rectangle {
color: control.Universal.chromeMediumLowColor
border.color: control.Universal.chromeHighColor
border.width: 1 // ToolTipBorderThemeThickness
}
}
@@ -0,0 +1,47 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
import QtQuick.Controls.impl
T.Tumbler {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
readonly property real __delegateHeight: availableHeight / visibleItemCount
delegate: Text {
text: modelData
font: control.font
color: control.Universal.foreground
opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
required property var modelData
required property int index
}
contentItem: TumblerView {
implicitWidth: 60
implicitHeight: 200
model: control.model
delegate: control.delegate
path: Path {
startX: control.contentItem.width / 2
startY: -control.__delegateHeight / 2
PathLine {
x: control.contentItem.width / 2
y: (control.visibleItemCount + 1) * control.__delegateHeight - control.__delegateHeight / 2
}
}
property real delegateHeight: control.availableHeight / control.visibleItemCount
}
}
@@ -0,0 +1,45 @@
// Copyright (C) 2020 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Controls.impl
import QtQuick.Templates as T
import QtQuick.Controls.Universal
import QtQuick.Controls.Universal.impl
T.VerticalHeaderView {
id: control
// The contentWidth of TableView will be zero at start-up, until the delegate
// items have been loaded. This means that even if the implicit width of
// VerticalHeaderView should be the same as the content width in the end, we
// need to ensure that it has at least a width of 1 at start-up, otherwise
// TableView won't bother loading any delegates at all.
implicitWidth: Math.max(1, contentWidth)
implicitHeight: syncView ? syncView.height : 0
delegate: Rectangle {
id: delegate
required property var model
// Qt6: add cellPadding (and font etc) as public API in headerview
readonly property real cellPadding: 8
implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2))
implicitHeight: text.implicitHeight + (cellPadding * 2)
color: control.Universal.background
Label {
id: text
text: delegate.model[control.textRole]
width: delegate.width
height: delegate.height
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
}
}
}
@@ -0,0 +1,48 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Universal
Rectangle {
id: indicator
implicitWidth: 20
implicitHeight: 20
color: !control.enabled ? "transparent" :
control.down && !partiallyChecked ? control.Universal.baseMediumColor :
control.checkState === Qt.Checked ? control.Universal.accent : "transparent"
border.color: !control.enabled ? control.Universal.baseLowColor :
control.down ? control.Universal.baseMediumColor :
control.checked ? control.Universal.accent : control.Universal.baseMediumHighColor
border.width: 2 // CheckBoxBorderThemeThickness
property Item control
readonly property bool partiallyChecked: control.checkState === Qt.PartiallyChecked
ColorImage {
x: (parent.width - width) / 2
y: (parent.height - height) / 2
visible: indicator.control.checkState === Qt.Checked
color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor : indicator.control.Universal.chromeWhiteColor
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/checkmark.png"
}
Rectangle {
x: (parent.width - width) / 2
y: (parent.height - height) / 2
width: indicator.partiallyChecked ? parent.width / 2 : parent.width
height: indicator.partiallyChecked ? parent.height / 2 : parent.height
visible: !indicator.control.pressed && enabled && indicator.control.hovered || indicator.partiallyChecked
color: !indicator.partiallyChecked ? "transparent" :
!indicator.control.enabled ? indicator.control.Universal.baseLowColor :
indicator.control.down ? indicator.control.Universal.baseMediumColor :
indicator.control.hovered ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumHighColor
border.width: indicator.partiallyChecked ? 0 : 2 // CheckBoxBorderThemeThickness
border.color: indicator.control.Universal.baseMediumLowColor
}
}
@@ -0,0 +1,47 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Controls.Universal
Rectangle {
id: indicator
implicitWidth: 20
implicitHeight: 20
radius: width / 2
color: "transparent"
border.width: 2 // RadioButtonBorderThemeThickness
border.color: control.checked ? "transparent" :
!control.enabled ? control.Universal.baseLowColor :
control.down ? control.Universal.baseMediumColor :
control.hovered ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor
property var control
Rectangle {
id: checkOuterEllipse
width: parent.width
height: parent.height
radius: width / 2
opacity: indicator.control.checked ? 1 : 0
color: "transparent"
border.width: 2 // RadioButtonBorderThemeThickness
border.color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
indicator.control.down ? indicator.control.Universal.baseMediumColor : indicator.control.Universal.accent
}
Rectangle {
id: checkGlyph
x: (parent.width - width) / 2
y: (parent.height - height) / 2
width: parent.width / 2
height: parent.height / 2
radius: width / 2
opacity: indicator.control.checked ? 1 : 0
color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
indicator.control.down ? indicator.control.Universal.baseMediumColor :
indicator.control.hovered ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumHighColor
}
}
@@ -0,0 +1,48 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Universal
Item {
id: indicator
implicitWidth: 44
implicitHeight: 20
property T.AbstractButton control
Rectangle {
width: parent.width
height: parent.height
radius: 10
color: !indicator.control.enabled ? "transparent" :
indicator.control.pressed ? indicator.control.Universal.baseMediumColor :
indicator.control.checked ? indicator.control.Universal.accent : "transparent"
border.color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
indicator.control.checked && !indicator.control.pressed ? indicator.control.Universal.accent :
indicator.control.hovered && !indicator.control.checked && !indicator.control.pressed ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumColor
opacity: enabled && indicator.control.hovered && indicator.control.checked && !indicator.control.pressed ? (indicator.control.Universal.theme === Universal.Light ? 0.7 : 0.9) : 1.0
border.width: 2
}
Rectangle {
width: 10
height: 10
radius: 5
color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
indicator.control.pressed || indicator.control.checked ? indicator.control.Universal.chromeWhiteColor :
indicator.control.hovered && !indicator.control.checked ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumHighColor
x: Math.max(5, Math.min(parent.width - width - 5,
indicator.control.visualPosition * parent.width - (width / 2)))
y: (parent.height - height) / 2
Behavior on x {
enabled: !indicator.control.pressed
SmoothedAnimation { velocity: 200 }
}
}
}
@@ -0,0 +1,83 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "private/qquickuniversalbusyindicator_p.h"
name: "QQuickUniversalBusyIndicator"
accessSemantics: "reference"
defaultProperty: "data"
parentProperty: "parent"
prototype: "QQuickItem"
exports: [
"QtQuick.Controls.Universal.impl/BusyIndicatorImpl 2.0",
"QtQuick.Controls.Universal.impl/BusyIndicatorImpl 2.1",
"QtQuick.Controls.Universal.impl/BusyIndicatorImpl 2.4",
"QtQuick.Controls.Universal.impl/BusyIndicatorImpl 2.7",
"QtQuick.Controls.Universal.impl/BusyIndicatorImpl 2.11",
"QtQuick.Controls.Universal.impl/BusyIndicatorImpl 6.0",
"QtQuick.Controls.Universal.impl/BusyIndicatorImpl 6.3",
"QtQuick.Controls.Universal.impl/BusyIndicatorImpl 6.7"
]
exportMetaObjectRevisions: [512, 513, 516, 519, 523, 1536, 1539, 1543]
Property { name: "count"; type: "int"; read: "count"; write: "setCount"; index: 0; isFinal: true }
Property { name: "color"; type: "QColor"; read: "color"; write: "setColor"; index: 1; isFinal: true }
}
Component {
file: "private/qquickuniversalfocusrectangle_p.h"
name: "QQuickUniversalFocusRectangle"
accessSemantics: "reference"
prototype: "QQuickPaintedItem"
exports: [
"QtQuick.Controls.Universal.impl/FocusRectangle 2.0",
"QtQuick.Controls.Universal.impl/FocusRectangle 2.1",
"QtQuick.Controls.Universal.impl/FocusRectangle 2.4",
"QtQuick.Controls.Universal.impl/FocusRectangle 2.7",
"QtQuick.Controls.Universal.impl/FocusRectangle 2.11",
"QtQuick.Controls.Universal.impl/FocusRectangle 6.0",
"QtQuick.Controls.Universal.impl/FocusRectangle 6.3",
"QtQuick.Controls.Universal.impl/FocusRectangle 6.7"
]
exportMetaObjectRevisions: [512, 513, 516, 519, 523, 1536, 1539, 1543]
}
Component {
file: "private/qquickuniversalprogressbar_p.h"
name: "QQuickUniversalProgressBar"
accessSemantics: "reference"
defaultProperty: "data"
parentProperty: "parent"
prototype: "QQuickItem"
exports: [
"QtQuick.Controls.Universal.impl/ProgressBarImpl 2.0",
"QtQuick.Controls.Universal.impl/ProgressBarImpl 2.1",
"QtQuick.Controls.Universal.impl/ProgressBarImpl 2.4",
"QtQuick.Controls.Universal.impl/ProgressBarImpl 2.7",
"QtQuick.Controls.Universal.impl/ProgressBarImpl 2.11",
"QtQuick.Controls.Universal.impl/ProgressBarImpl 6.0",
"QtQuick.Controls.Universal.impl/ProgressBarImpl 6.3",
"QtQuick.Controls.Universal.impl/ProgressBarImpl 6.7"
]
exportMetaObjectRevisions: [512, 513, 516, 519, 523, 1536, 1539, 1543]
Property { name: "color"; type: "QColor"; read: "color"; write: "setColor"; index: 0; isFinal: true }
Property {
name: "progress"
type: "double"
read: "progress"
write: "setProgress"
index: 1
isFinal: true
}
Property {
name: "indeterminate"
type: "bool"
read: "isIndeterminate"
write: "setIndeterminate"
index: 2
isFinal: true
}
}
}
@@ -0,0 +1,14 @@
module QtQuick.Controls.Universal.impl
linktarget Qt6::qtquickcontrols2universalstyleimplplugin
optional plugin qtquickcontrols2universalstyleimplplugin
classname QtQuickControls2UniversalStyleImplPlugin
typeinfo plugins.qmltypes
depends QtQuick auto
prefer :/qt-project.org/imports/QtQuick/Controls/Universal/impl/
CheckIndicator 6.0 CheckIndicator.qml
CheckIndicator 2.0 CheckIndicator.qml
RadioIndicator 6.0 RadioIndicator.qml
RadioIndicator 2.0 RadioIndicator.qml
SwitchIndicator 6.0 SwitchIndicator.qml
SwitchIndicator 2.0 SwitchIndicator.qml
@@ -0,0 +1,323 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "qquickattachedpropertypropagator.h"
name: "QQuickAttachedPropertyPropagator"
accessSemantics: "reference"
prototype: "QObject"
}
Component {
file: "private/qquickuniversalstyle_p.h"
name: "QQuickUniversalStyle"
accessSemantics: "reference"
prototype: "QQuickAttachedPropertyPropagator"
exports: [
"QtQuick.Controls.Universal/Universal 2.0",
"QtQuick.Controls.Universal/Universal 6.0"
]
isCreatable: false
exportMetaObjectRevisions: [512, 1536]
attachedType: "QQuickUniversalStyle"
Enum {
name: "Theme"
values: ["Light", "Dark", "System"]
}
Enum {
name: "Color"
values: [
"Lime",
"Green",
"Emerald",
"Teal",
"Cyan",
"Cobalt",
"Indigo",
"Violet",
"Pink",
"Magenta",
"Crimson",
"Red",
"Orange",
"Amber",
"Yellow",
"Brown",
"Olive",
"Steel",
"Mauve",
"Taupe"
]
}
Property {
name: "theme"
type: "Theme"
read: "theme"
write: "setTheme"
reset: "resetTheme"
notify: "themeChanged"
index: 0
isFinal: true
}
Property {
name: "accent"
type: "QVariant"
read: "accent"
write: "setAccent"
reset: "resetAccent"
notify: "accentChanged"
index: 1
isFinal: true
}
Property {
name: "foreground"
type: "QVariant"
read: "foreground"
write: "setForeground"
reset: "resetForeground"
notify: "foregroundChanged"
index: 2
isFinal: true
}
Property {
name: "background"
type: "QVariant"
read: "background"
write: "setBackground"
reset: "resetBackground"
notify: "backgroundChanged"
index: 3
isFinal: true
}
Property {
name: "altHighColor"
type: "QColor"
read: "altHighColor"
notify: "paletteChanged"
index: 4
isReadonly: true
isFinal: true
}
Property {
name: "altLowColor"
type: "QColor"
read: "altLowColor"
notify: "paletteChanged"
index: 5
isReadonly: true
isFinal: true
}
Property {
name: "altMediumColor"
type: "QColor"
read: "altMediumColor"
notify: "paletteChanged"
index: 6
isReadonly: true
isFinal: true
}
Property {
name: "altMediumHighColor"
type: "QColor"
read: "altMediumHighColor"
notify: "paletteChanged"
index: 7
isReadonly: true
isFinal: true
}
Property {
name: "altMediumLowColor"
type: "QColor"
read: "altMediumLowColor"
notify: "paletteChanged"
index: 8
isReadonly: true
isFinal: true
}
Property {
name: "baseHighColor"
type: "QColor"
read: "baseHighColor"
notify: "paletteChanged"
index: 9
isReadonly: true
isFinal: true
}
Property {
name: "baseLowColor"
type: "QColor"
read: "baseLowColor"
notify: "paletteChanged"
index: 10
isReadonly: true
isFinal: true
}
Property {
name: "baseMediumColor"
type: "QColor"
read: "baseMediumColor"
notify: "paletteChanged"
index: 11
isReadonly: true
isFinal: true
}
Property {
name: "baseMediumHighColor"
type: "QColor"
read: "baseMediumHighColor"
notify: "paletteChanged"
index: 12
isReadonly: true
isFinal: true
}
Property {
name: "baseMediumLowColor"
type: "QColor"
read: "baseMediumLowColor"
notify: "paletteChanged"
index: 13
isReadonly: true
isFinal: true
}
Property {
name: "chromeAltLowColor"
type: "QColor"
read: "chromeAltLowColor"
notify: "paletteChanged"
index: 14
isReadonly: true
isFinal: true
}
Property {
name: "chromeBlackHighColor"
type: "QColor"
read: "chromeBlackHighColor"
notify: "paletteChanged"
index: 15
isReadonly: true
isFinal: true
}
Property {
name: "chromeBlackLowColor"
type: "QColor"
read: "chromeBlackLowColor"
notify: "paletteChanged"
index: 16
isReadonly: true
isFinal: true
}
Property {
name: "chromeBlackMediumLowColor"
type: "QColor"
read: "chromeBlackMediumLowColor"
notify: "paletteChanged"
index: 17
isReadonly: true
isFinal: true
}
Property {
name: "chromeBlackMediumColor"
type: "QColor"
read: "chromeBlackMediumColor"
notify: "paletteChanged"
index: 18
isReadonly: true
isFinal: true
}
Property {
name: "chromeDisabledHighColor"
type: "QColor"
read: "chromeDisabledHighColor"
notify: "paletteChanged"
index: 19
isReadonly: true
isFinal: true
}
Property {
name: "chromeDisabledLowColor"
type: "QColor"
read: "chromeDisabledLowColor"
notify: "paletteChanged"
index: 20
isReadonly: true
isFinal: true
}
Property {
name: "chromeHighColor"
type: "QColor"
read: "chromeHighColor"
notify: "paletteChanged"
index: 21
isReadonly: true
isFinal: true
}
Property {
name: "chromeLowColor"
type: "QColor"
read: "chromeLowColor"
notify: "paletteChanged"
index: 22
isReadonly: true
isFinal: true
}
Property {
name: "chromeMediumColor"
type: "QColor"
read: "chromeMediumColor"
notify: "paletteChanged"
index: 23
isReadonly: true
isFinal: true
}
Property {
name: "chromeMediumLowColor"
type: "QColor"
read: "chromeMediumLowColor"
notify: "paletteChanged"
index: 24
isReadonly: true
isFinal: true
}
Property {
name: "chromeWhiteColor"
type: "QColor"
read: "chromeWhiteColor"
notify: "paletteChanged"
index: 25
isReadonly: true
isFinal: true
}
Property {
name: "listLowColor"
type: "QColor"
read: "listLowColor"
notify: "paletteChanged"
index: 26
isReadonly: true
isFinal: true
}
Property {
name: "listMediumColor"
type: "QColor"
read: "listMediumColor"
notify: "paletteChanged"
index: 27
isReadonly: true
isFinal: true
}
Signal { name: "themeChanged" }
Signal { name: "accentChanged" }
Signal { name: "foregroundChanged" }
Signal { name: "backgroundChanged" }
Signal { name: "paletteChanged" }
Method {
name: "color"
type: "QColor"
Parameter { name: "color"; type: "Color" }
}
}
}
@@ -0,0 +1,111 @@
module QtQuick.Controls.Universal
linktarget Qt6::qtquickcontrols2universalstyleplugin
plugin qtquickcontrols2universalstyleplugin
classname QtQuickControls2UniversalStylePlugin
typeinfo plugins.qmltypes
import QtQuick.Controls.Basic auto
depends QtQuick auto
prefer :/qt-project.org/imports/QtQuick/Controls/Universal/
ApplicationWindow 6.0 ApplicationWindow.qml
ApplicationWindow 2.0 ApplicationWindow.qml
BusyIndicator 6.0 BusyIndicator.qml
BusyIndicator 2.0 BusyIndicator.qml
Button 6.0 Button.qml
Button 2.0 Button.qml
CheckBox 6.0 CheckBox.qml
CheckBox 2.0 CheckBox.qml
CheckDelegate 6.0 CheckDelegate.qml
CheckDelegate 2.0 CheckDelegate.qml
ComboBox 6.0 ComboBox.qml
ComboBox 2.0 ComboBox.qml
DelayButton 2.2 DelayButton.qml
DelayButton 6.0 DelayButton.qml
Dial 6.0 Dial.qml
Dial 2.0 Dial.qml
Dialog 2.1 Dialog.qml
Dialog 6.0 Dialog.qml
DialogButtonBox 2.1 DialogButtonBox.qml
DialogButtonBox 6.0 DialogButtonBox.qml
Drawer 6.0 Drawer.qml
Drawer 2.0 Drawer.qml
Frame 6.0 Frame.qml
Frame 2.0 Frame.qml
GroupBox 6.0 GroupBox.qml
GroupBox 2.0 GroupBox.qml
HorizontalHeaderView 2.15 HorizontalHeaderView.qml
HorizontalHeaderView 6.0 HorizontalHeaderView.qml
ItemDelegate 6.0 ItemDelegate.qml
ItemDelegate 2.0 ItemDelegate.qml
Label 6.0 Label.qml
Label 2.0 Label.qml
Menu 6.0 Menu.qml
Menu 2.0 Menu.qml
MenuBar 2.3 MenuBar.qml
MenuBar 6.0 MenuBar.qml
MenuBarItem 2.3 MenuBarItem.qml
MenuBarItem 6.0 MenuBarItem.qml
MenuItem 6.0 MenuItem.qml
MenuItem 2.0 MenuItem.qml
MenuSeparator 2.1 MenuSeparator.qml
MenuSeparator 6.0 MenuSeparator.qml
Page 6.0 Page.qml
Page 2.0 Page.qml
PageIndicator 6.0 PageIndicator.qml
PageIndicator 2.0 PageIndicator.qml
Pane 6.0 Pane.qml
Pane 2.0 Pane.qml
Popup 6.0 Popup.qml
Popup 2.0 Popup.qml
ProgressBar 6.0 ProgressBar.qml
ProgressBar 2.0 ProgressBar.qml
RadioButton 6.0 RadioButton.qml
RadioButton 2.0 RadioButton.qml
RadioDelegate 6.0 RadioDelegate.qml
RadioDelegate 2.0 RadioDelegate.qml
RangeSlider 6.0 RangeSlider.qml
RangeSlider 2.0 RangeSlider.qml
RoundButton 2.1 RoundButton.qml
RoundButton 6.0 RoundButton.qml
ScrollView 6.0 ScrollView.qml
ScrollView 2.0 ScrollView.qml
ScrollBar 6.0 ScrollBar.qml
ScrollBar 2.0 ScrollBar.qml
ScrollIndicator 6.0 ScrollIndicator.qml
ScrollIndicator 2.0 ScrollIndicator.qml
SelectionRectangle 6.0 SelectionRectangle.qml
SelectionRectangle 2.0 SelectionRectangle.qml
Slider 6.0 Slider.qml
Slider 2.0 Slider.qml
SpinBox 6.0 SpinBox.qml
SpinBox 2.0 SpinBox.qml
SplitView 2.13 SplitView.qml
SplitView 6.0 SplitView.qml
StackView 6.0 StackView.qml
StackView 2.0 StackView.qml
SwipeDelegate 6.0 SwipeDelegate.qml
SwipeDelegate 2.0 SwipeDelegate.qml
SwitchDelegate 6.0 SwitchDelegate.qml
SwitchDelegate 2.0 SwitchDelegate.qml
Switch 6.0 Switch.qml
Switch 2.0 Switch.qml
TabBar 6.0 TabBar.qml
TabBar 2.0 TabBar.qml
TabButton 6.0 TabButton.qml
TabButton 2.0 TabButton.qml
TextArea 6.0 TextArea.qml
TextArea 2.0 TextArea.qml
TextField 6.0 TextField.qml
TextField 2.0 TextField.qml
ToolBar 6.0 ToolBar.qml
ToolBar 2.0 ToolBar.qml
ToolButton 6.0 ToolButton.qml
ToolButton 2.0 ToolButton.qml
ToolSeparator 2.1 ToolSeparator.qml
ToolSeparator 6.0 ToolSeparator.qml
ToolTip 6.0 ToolTip.qml
ToolTip 2.0 ToolTip.qml
Tumbler 6.0 Tumbler.qml
Tumbler 2.0 Tumbler.qml
VerticalHeaderView 2.15 VerticalHeaderView.qml
VerticalHeaderView 6.0 VerticalHeaderView.qml