Fixed multiple instances opening at once

This commit is contained in:
thezephyrsong
2026-06-17 00:41:40 +10:00
parent 4cfafffd4e
commit 348692ddc1
1781 changed files with 263100 additions and 6 deletions
@@ -0,0 +1,15 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Window
import QtQuick.Templates as T
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.ApplicationWindow {
id: window
color: window.palette.window
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.BusyIndicator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 6
contentItem: BusyIndicatorImpl {
implicitWidth: 28
implicitHeight: 28
color: control.palette.text
running: control.running
opacity: control.running ? 1 : 0
Behavior on opacity { OpacityAnimator { duration: 250 } }
RotationAnimator on rotation {
running: control.running && control.contentItem.visible
from: 0
to: 360
duration: 1000
loops: Animation.Infinite
}
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.Button {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 4
spacing: 6
icon.width: 16
icon.height: 16
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
defaultIconColor: control.checked || control.highlighted ? control.palette.brightText
: control.flat && !control.down ? (control.visualFocus ? control.palette.highlight
: control.palette.windowText) : control.palette.buttonText
text: control.text
font: control.font
color: control.palette.buttonText
}
background: ButtonPanel {
implicitWidth: 80
implicitHeight: 24
control: control
visible: !control.flat || control.down || control.checked || control.highlighted || control.visualFocus
|| (enabled && control.hovered)
}
}
@@ -0,0 +1,40 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.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: 6
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
baseLightness: control.enabled ? 1.25 : 1.0
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
color: control.palette.windowText
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.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)
padding: 6
spacing: 6
icon.width: 16
icon.height: 16
contentItem: IconLabel {
leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
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: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
}
indicator: CheckIndicator {
x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
y: control.topPadding + (control.availableHeight - height) / 2
control: control
}
background: Rectangle {
implicitWidth: 100
implicitHeight: 20
color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
: control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
}
}
@@ -0,0 +1,153 @@
// 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
// Qt-Security score:significant reason:default
pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Window
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
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)
delegate: MenuItem {
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.editable ? control.palette.text : control.palette.buttonText
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
width: 20
fillMode: Image.Pad
}
contentItem: T.TextField {
implicitHeight: contentHeight + topPadding + bottomPadding
topPadding: 4
leftPadding: 4 - control.padding
rightPadding: 4 - control.padding
bottomPadding: 4
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.editable ? control.palette.text : control.palette.buttonText
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
verticalAlignment: Text.AlignVCenter
ContextMenu.menu: TextEditingContextMenu {
editor: parent
}
background: PaddedRectangle {
clip: true
radius: 2
padding: 1
leftPadding: control.mirrored ? -2 : padding
rightPadding: !control.mirrored ? -2 : padding
color: control.palette.base
visible: control.editable && !control.flat
Rectangle {
x: parent.width - width
y: 1
width: 1
height: parent.height - 2
color: Fusion.buttonOutline(control.palette, control.activeFocus, control.enabled)
}
Rectangle {
x: 1
y: 1
width: parent.width - 3
height: 1
color: Fusion.topShadow
}
}
Rectangle {
x: 1 - control.leftPadding
y: 1
width: control.width - 2
height: control.height - 2
color: "transparent"
border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255)
visible: control.activeFocus
radius: 1.7
}
}
background: ButtonPanel {
implicitWidth: 120
implicitHeight: 24
control: control
visible: !control.flat || control.down
// ### TODO: fix control.contentItem.activeFocus
highlighted: control.visualFocus || control.contentItem.activeFocus
}
popup: T.Popup {
width: control.width
height: Math.min(contentItem.implicitHeight + 2, control.Window.height - topMargin - bottomMargin)
topMargin: 6
bottomMargin: 6
padding: 1
palette: control.palette
contentItem: ListView {
clip: true
implicitHeight: contentHeight
model: control.delegateModel
currentIndex: control.highlightedIndex
highlightRangeMode: ListView.ApplyRange
highlightMoveDuration: 0
T.ScrollBar.vertical: ScrollBar { }
}
background: Rectangle {
color: control.popup.palette.window
border.color: Fusion.outline(control.palette)
Rectangle {
z: -1
x: 1; y: 1
width: parent.width
height: parent.height
color: control.palette.shadow
opacity: 0.2
}
}
}
}
@@ -0,0 +1,83 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.DelayButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 6
transition: Transition {
NumberAnimation {
duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
}
}
contentItem: ItemGroup {
ClippedText {
clip: control.progress > 0
clipX: -control.leftPadding + (control.mirrored ? 0 : control.progress * control.width)
clipWidth: control.width
visible: control.mirrored ? control.progress > 0 : control.progress < 1
text: control.text
font: control.font
color: control.mirrored ? control.palette.brightText : control.palette.buttonText
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
ClippedText {
clip: control.progress > 0
clipX: -control.leftPadding
clipWidth: (control.mirrored ? 1.0 - control.progress : control.progress) * control.width
visible: control.mirrored ? control.progress < 1 : control.progress > 0
text: control.text
font: control.font
color: control.mirrored ? control.palette.buttonText : control.palette.brightText
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
}
background: ButtonPanel {
implicitWidth: 80
implicitHeight: 24
control: control
highlighted: false
scale: control.mirrored ? -1 : 1
Rectangle {
width: control.progress * parent.width
height: parent.height
radius: 2
border.color: Qt.darker(Fusion.highlight(control.palette), 1.4)
gradient: Gradient {
GradientStop {
position: 0
color: Qt.lighter(Fusion.highlight(control.palette), 1.2)
}
GradientStop {
position: 1
color: Fusion.highlight(control.palette)
}
}
}
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.Dial {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
background: DialImpl {
implicitWidth: 100
implicitHeight: 100
highlight: control.visualFocus
}
handle: KnobImpl {
x: control.background.x + control.background.width / 2 - width / 2
y: control.background.y + control.background.height / 2 - height / 2
width: control.width / 7
height: control.height / 7
transform: [
Translate {
y: -Math.min(control.background.width, control.background.height) * 0.35
+ (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,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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.Dialog {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding,
implicitHeaderWidth,
implicitFooterWidth)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding
+ (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
padding: 6
background: Rectangle {
color: control.palette.window
border.color: Fusion.highContrast ? control.palette.windowText : control.palette.mid
radius: 2
Rectangle {
z: -1
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
color: control.palette.shadow
opacity: 0.2
radius: 2
}
}
header: Label {
text: control.title
visible: control.title && parent?.parent === Overlay.overlay
elide: Label.ElideRight
font.bold: true
padding: 6
background: Rectangle {
border.color: Fusion.highContrast ? control.palette.windowText : "transparent"
color: "transparent"
width: parent.width
height: parent.height
topLeftRadius: 2
topRightRadius: 2
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
color: control.palette.window
topLeftRadius: 2
topRightRadius: 2
}
}
}
footer: DialogButtonBox {
visible: count > 0
}
T.Overlay.modal: Rectangle {
color: Fusion.topShadow
}
T.Overlay.modeless: Rectangle {
color: Fusion.topShadow
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.DialogButtonBox {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
spacing: 6
padding: 6
alignment: Qt.AlignRight
delegate: Button { }
contentItem: ListView {
implicitWidth: contentWidth
model: control.contentModel
spacing: control.spacing
orientation: ListView.Horizontal
boundsBehavior: Flickable.StopAtBounds
snapMode: ListView.SnapToItem
}
background: Rectangle {
implicitHeight: 34
width: parent.width
height: parent.height
color: "transparent"
border.color: Fusion.highContrast ? control.palette.windowText : "transparent"
radius: 2
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
color: control.palette.window
radius: 2
}
}
}
@@ -0,0 +1,153 @@
// Copyright (C) 2025 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.DoubleSpinBox {
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)
padding: 4
leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : 0)
rightPadding: padding + (!control.mirrored ? (up.indicator ? up.indicator.width : 0) : 0)
validator: DoubleValidator {
locale: control.locale.name
bottom: Math.min(control.from, control.to)
top: Math.max(control.from, control.to)
decimals: control.decimals
}
contentItem: TextInput {
z: 2
text: control.displayText
font: control.font
color: control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
horizontalAlignment: Qt.AlignHCenter
verticalAlignment: Qt.AlignVCenter
readOnly: !control.editable
validator: control.validator
inputMethodHints: control.inputMethodHints
clip: width < implicitWidth
ContextMenu.menu: TextEditingContextMenu {
editor: parent
}
}
up.indicator: PaddedRectangle {
x: control.mirrored ? 1 : control.width - width - 1
y: 1
height: control.height / 2 - 1
implicitWidth: 16
implicitHeight: 10
radius: 1.7
clip: true
topPadding: -2
leftPadding: -2
color: control.up.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent"
ColorImage {
scale: -1
width: parent.width
height: parent.height
opacity: enabled ? 1.0 : 0.5
color: control.palette.buttonText
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
fillMode: Image.Pad
}
}
down.indicator: PaddedRectangle {
x: control.mirrored ? 1 : control.width - width - 1
y: control.height - height - 1
height: control.height / 2 - 1
implicitWidth: 16
implicitHeight: 10
radius: 1.7
clip: true
topPadding: -2
leftPadding: -2
color: control.down.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent"
ColorImage {
width: parent.width
height: parent.height
opacity: enabled ? 1.0 : 0.5
color: control.palette.buttonText
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
fillMode: Image.Pad
}
}
background: Rectangle {
implicitWidth: 120
implicitHeight: 24
radius: 2
color: control.palette.base
border.color: control.activeFocus ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette)
Rectangle {
x: 2
y: 1
width: parent.width - 4
height: 1
color: Fusion.topShadow
}
Rectangle {
x: control.mirrored ? 1 : parent.width - width - 1
y: 1
width: Math.max(control.up.indicator ? control.up.indicator.width : 0,
control.down.indicator ? control.down.indicator.width : 0) + 1
height: parent.height - 2
radius: 2
gradient: Gradient {
GradientStop {
position: 0
color: Fusion.gradientStart(Fusion.buttonColor(control.palette, control.visualFocus, false, control.up.hovered || control.down.hovered))
}
GradientStop {
position: 1
color: Fusion.gradientStop(Fusion.buttonColor(control.palette, control.visualFocus, false, control.up.hovered || control.down.hovered))
}
}
Rectangle {
x: control.mirrored ? parent.width - 1 : 0
height: parent.height
width: 1
color: Fusion.outline(control.palette)
}
}
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
color: "transparent"
border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255)
visible: control.activeFocus
radius: 1.7
}
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.Drawer {
id: control
parent: T.Overlay.overlay
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: SafeArea.margins.top + (control.edge === Qt.BottomEdge)
leftPadding: SafeArea.margins.left + (control.edge === Qt.RightEdge)
rightPadding: SafeArea.margins.right + (control.edge === Qt.LeftEdge)
bottomPadding: SafeArea.margins.bottom + (control.edge === Qt.TopEdge)
enter: Transition { SmoothedAnimation { velocity: 5 } }
exit: Transition { SmoothedAnimation { velocity: 5 } }
background: Rectangle {
color: control.palette.window
readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge
Rectangle {
width: parent.horizontal ? 1 : parent.width
height: parent.horizontal ? parent.height : 1
color: control.palette.mid
x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0
y: control.edge === Qt.TopEdge ? parent.height - 1 : 0
}
Rectangle {
width: parent.horizontal ? 1 : parent.width
height: parent.horizontal ? parent.height : 1
color: control.palette.shadow
opacity: 0.2
x: control.edge === Qt.LeftEdge ? parent.width : 0
y: control.edge === Qt.TopEdge ? parent.height : 0
}
}
T.Overlay.modal: Rectangle {
color: Fusion.topShadow
}
T.Overlay.modeless: Rectangle {
color: Fusion.topShadow
}
}
@@ -0,0 +1,25 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.Frame {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 9
background: Rectangle {
color: "transparent"
border.color: Qt.lighter(Fusion.outline(control.palette), 1.08)
}
}
@@ -0,0 +1,44 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.GroupBox {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding,
implicitLabelWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
spacing: 6
padding: 9
topPadding: padding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
label: Text {
x: control.leftPadding
width: control.availableWidth
text: control.title
font: control.font
color: control.palette.windowText
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
}
background: Rectangle {
y: control.topPadding - control.bottomPadding
width: parent.width
height: parent.height - control.topPadding + control.bottomPadding
radius: 2
color: Color.transparent("black", 3 / 255)
border.color: Qt.lighter(Fusion.outline(control.palette), 1.08)
}
}
@@ -0,0 +1,21 @@
// 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
// Qt-Security score:significant reason:default
pragma ComponentBehavior: Bound
import QtQuick.Templates as T
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: HorizontalHeaderViewDelegate { }
}
@@ -0,0 +1,42 @@
// Copyright (C) 2025 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Fusion as FusionControls
T.HeaderViewDelegate {
id: control
// same as AbstractButton.qml
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 8
highlighted: selected
background: Rectangle {
id: backgroundRect
color: control.palette.button
gradient: Gradient {
GradientStop {
position: 0
color: FusionControls.Fusion.gradientStart(backgroundRect.color)
}
GradientStop {
position: 1
color: FusionControls.Fusion.gradientStop(backgroundRect.color)
}
}
}
contentItem: Label {
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: control.model[control.headerView.textRole]
}
}
@@ -0,0 +1,44 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
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)
padding: 6
spacing: 6
icon.width: 16
icon.height: 16
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: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
}
background: Rectangle {
implicitWidth: 100
implicitHeight: 20
color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
: control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
}
}
@@ -0,0 +1,16 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.Label {
id: control
color: control.palette.windowText
linkColor: control.palette.link
}
@@ -0,0 +1,62 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
import QtQuick.Window
T.Menu {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
margins: 0
padding: 1
overlap: 2
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: 20
color: control.palette.base
border.color: Fusion.outline(control.palette)
Rectangle {
z: -1
x: 1; y: 1
width: parent.width
height: parent.height
color: control.palette.shadow
opacity: 0.2
}
}
T.Overlay.modal: Rectangle {
color: Fusion.topShadow
}
T.Overlay.modeless: Rectangle {
color: Fusion.topShadow
}
}
@@ -0,0 +1,46 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.MenuBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: SafeArea.margins.top
leftPadding: SafeArea.margins.left
rightPadding: SafeArea.margins.right
bottomPadding: SafeArea.margins.bottom
delegate: MenuBarItem { }
contentItem: Row {
spacing: control.spacing
Repeater {
model: control.contentModel
}
}
background: Rectangle {
implicitHeight: 20
color: control.palette.window
Rectangle {
y: parent.height - height
width: parent.width
height: 1
color: Fusion.mergedColors(Qt.darker(control.palette.window, 1.2),
Qt.lighter(Fusion.outline(control.palette), 1.4), 60)
}
}
}
@@ -0,0 +1,46 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
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: 6
spacing: 6
icon.width: 16
icon.height: 16
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
alignment: Qt.AlignLeft
icon: control.icon
text: control.text
font: control.font
defaultIconColor: control.down || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
color: defaultIconColor
}
background: Rectangle {
implicitWidth: 20
implicitHeight: 20
color: Fusion.highlight(control.palette)
visible: control.down || control.highlighted
}
}
@@ -0,0 +1,70 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
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: 6
spacing: 6
icon.width: 16
icon.height: 16
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.down || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
}
arrow: ColorImage {
x: control.mirrored ? control.padding : control.width - width - control.padding
y: control.topPadding + (control.availableHeight - height) / 2
width: 20
visible: control.subMenu
rotation: control.mirrored ? 90 : -90
color: control.down || control.hovered || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
fillMode: Image.Pad
}
indicator: CheckIndicator {
x: control.mirrored ? control.width - width - control.rightPadding : control.leftPadding
y: control.topPadding + (control.availableHeight - height) / 2
control: control
visible: control.checkable
}
background: Rectangle {
implicitWidth: 200
implicitHeight: 20
color: Fusion.highlight(control.palette)
visible: control.down || control.highlighted
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.MenuSeparator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: Fusion.highContrast ? 0 : 5
verticalPadding: 1
contentItem: Rectangle {
implicitWidth: 188
implicitHeight: 1
color: Fusion.highContrast ? Fusion.outline(control.palette) : Qt.lighter(Fusion.darkShade, 1.06)
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.Page {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding,
implicitHeaderWidth,
implicitFooterWidth)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding
+ (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
+ (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
background: Rectangle {
color: control.palette.window
}
}
@@ -0,0 +1,44 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.PageIndicator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 4
spacing: 4
delegate: Rectangle {
implicitWidth: 6
implicitHeight: 6
radius: width / 2
color: control.palette.shadow
opacity: index === currentIndex ? 0.95 : pressed ? 0.75 : 0.45
required property int index
Behavior on opacity { OpacityAnimator { duration: 100 } }
}
contentItem: Row {
spacing: control.spacing
Repeater {
model: control.count
delegate: control.delegate
}
}
}
@@ -0,0 +1,24 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.Pane {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 9
background: Rectangle {
color: control.palette.window
}
}
@@ -0,0 +1,34 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.Popup {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 6
background: Rectangle {
color: control.palette.window
border.color: Fusion.highContrast ? control.palette.windowText : control.palette.mid
radius: 2
}
T.Overlay.modal: Rectangle {
color: Fusion.topShadow
}
T.Overlay.modeless: Rectangle {
color: Fusion.topShadow
}
}
@@ -0,0 +1,84 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.ProgressBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
contentItem: Item {
implicitWidth: 120
implicitHeight: 24
scale: control.mirrored ? -1 : 1
Rectangle {
height: parent.height
width: (control.indeterminate ? 1.0 : control.position) * parent.width
radius: 2
border.color: Fusion.highContrast ? Fusion.outline(control.palette) : Qt.darker(Fusion.highlight(control.palette), 1.4)
gradient: Gradient {
GradientStop {
position: 0
color: Qt.lighter(Fusion.highlight(control.palette), 1.2)
}
GradientStop {
position: 1
color: Fusion.highlight(control.palette)
}
}
}
Item {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
visible: control.indeterminate
clip: true
ColorImage {
width: Math.ceil(parent.width / implicitWidth + 1) * implicitWidth
height: parent.height
mirror: control.mirrored
fillMode: Image.TileHorizontally
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/progressmask.png"
color: Color.transparent(Qt.lighter(Fusion.highlight(control.palette), 1.2), 160 / 255)
visible: control.indeterminate
NumberAnimation on x {
running: control.indeterminate && control.visible
from: -31 // progressmask.png width
to: 0
loops: Animation.Infinite
duration: 750
}
}
}
}
background: Rectangle {
implicitWidth: 120
implicitHeight: 24
radius: 2
color: control.palette.base
border.color: Fusion.outline(control.palette)
Rectangle {
x: 1; y: 1; height: 1
width: parent.width - 2
color: Fusion.topShadow
}
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.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: 6
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
color: control.palette.windowText
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.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)
padding: 6
spacing: 6
icon.width: 16
icon.height: 16
contentItem: IconLabel {
leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
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: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
}
indicator: RadioIndicator {
x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
y: control.topPadding + (control.availableHeight - height) / 2
control: control
}
background: Rectangle {
implicitWidth: 100
implicitHeight: 20
color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
: control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.RangeSlider {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
Math.max(first.implicitHandleWidth,
second.implicitHandleWidth) + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
Math.max(first.implicitHandleHeight,
second.implicitHandleHeight) + topPadding + bottomPadding)
first.handle: SliderHandle {
x: control.leftPadding + Math.round(control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
palette: control.palette
pressed: control.first.pressed
hovered: control.first.hovered
vertical: control.vertical
visualFocus: activeFocus
}
second.handle: SliderHandle {
x: control.leftPadding + Math.round(control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
palette: control.palette
pressed: control.second.pressed
hovered: control.second.hovered
vertical: control.vertical
visualFocus: activeFocus
}
background: SliderGroove {
control: control
offset: control.first.position
progress: control.second.position
visualProgress: control.second.visualPosition
}
}
@@ -0,0 +1,71 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.RoundButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 6
spacing: 6
icon.width: 16
icon.height: 16
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
defaultIconColor: control.checked || control.highlighted ? control.palette.brightText
: control.flat && !control.down ? (control.visualFocus ? control.palette.highlight
: control.palette.windowText) : control.palette.buttonText
text: control.text
font: control.font
color: control.palette.buttonText
}
background: Rectangle {
implicitWidth: 32
implicitHeight: 32
visible: !control.flat || control.down || control.checked
gradient: Gradient {
GradientStop {
position: 0
color: control.down || control.checked
? Fusion.buttonColor(control.palette, control.highlighted, control.down || control.checked, control.enabled && control.hovered)
: Fusion.gradientStart(Fusion.buttonColor(control.palette, control.highlighted, control.down, control.enabled && control.hovered))
}
GradientStop {
position: 1
color: control.down || control.checked
? Fusion.buttonColor(control.palette, control.highlighted, control.down || control.checked, control.enabled && control.hovered)
: Fusion.gradientStop(Fusion.buttonColor(control.palette, control.highlighted, control.down, control.enabled && control.hovered))
}
}
radius: control.radius
border.color: Fusion.buttonOutline(control.palette, control.highlighted || control.visualFocus, control.enabled)
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
border.color: Fusion.innerContrastLine
color: "transparent"
radius: control.radius
}
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.ScrollBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 2
visible: control.policy !== T.ScrollBar.AlwaysOff
minimumSize: orientation === Qt.Horizontal ? height / width : width / height
contentItem: Rectangle {
implicitWidth: control.interactive ? 6 : 2
implicitHeight: control.interactive ? 6 : 2
radius: width / 2
opacity: 0.0
color: {
if (Fusion.highContrast)
return control.pressed ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette)
else
return control.pressed ? control.palette.dark : control.palette.mid
}
states: State {
name: "active"
when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
PropertyChanges { control.contentItem.opacity: 0.75 }
}
transitions: Transition {
from: "active"
SequentialAnimation {
PauseAnimation { duration: 450 }
NumberAnimation { target: control.contentItem; duration: 200; 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.ScrollIndicator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 2
contentItem: Rectangle {
implicitWidth: 2
implicitHeight: 2
color: control.palette.mid
visible: control.size < 1.0
opacity: 0.0
states: State {
name: "active"
when: control.active
PropertyChanges { control.contentItem.opacity: 0.75 }
}
transitions: [
Transition {
from: "active"
SequentialAnimation {
PauseAnimation { duration: 450 }
NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
}
}
]
}
}
@@ -0,0 +1,32 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Controls.impl
import QtQuick.Templates as T
T.ScrollView {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + 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,224 @@
// Copyright (C) 2025 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
// Qt-Security score:significant reason:default
pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.SearchField {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
searchIndicator.implicitIndicatorHeight + topPadding + bottomPadding)
leftPadding: padding + (control.mirrored
? (!clearIndicator.indicator || !clearIndicator.indicator.visible ? 0 : clearIndicator.indicator.width + spacing)
: (!searchIndicator.indicator || !searchIndicator.indicator.visible ? 0 : searchIndicator.indicator.width + spacing))
rightPadding: padding + (control.mirrored
? (!searchIndicator.indicator || !searchIndicator.indicator.visible ? 0 : searchIndicator.indicator.width + spacing)
: (!clearIndicator.indicator || !clearIndicator.indicator.visible ? 0 : clearIndicator.indicator.width + spacing))
delegate: MenuItem {
width: ListView.view.width
text: model[control.textRole]
font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
highlighted: control.highlightedIndex === index
hoverEnabled: control.hoverEnabled
required property var model
required property int index
}
searchIndicator.indicator: PaddedRectangle {
implicitWidth: 22
implicitHeight: 20
height: control.height - 2
x: !control.mirrored ? 1 : control.width - width - 1
y: 1
radius: 1.7
clip: true
topPadding: -2
leftPadding: -2
color: control.searchIndicator.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent"
ColorImage {
x: (parent.width - width) / 2
y: (parent.height - height) / 2
width: 18
height: 18
color: control.palette.buttonText
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/search-magnifier.png"
opacity: enabled ? 1 : 0.3
}
}
clearIndicator.indicator: PaddedRectangle {
implicitWidth: 22
implicitHeight: 20
height: control.height - 2
x: control.mirrored ? 1 : control.width - width - 1
y: 1
visible: control.text.length > 0
radius: 1.7
clip: true
topPadding: -2
leftPadding: -2
color: control.clearIndicator.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent"
ColorImage {
x: (parent.width - width) / 2
y: (parent.height - height) / 2
width: 18
height: 18
color: control.palette.buttonText
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/close_circle.png"
opacity: enabled ? 1 : 0.3
}
}
contentItem: T.TextField {
implicitHeight: contentHeight + topPadding + bottomPadding
leftPadding: !control.mirrored ? 6 : 0
rightPadding: !control.mirrored ? 6 : 0
text: control.text
color: control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
verticalAlignment: TextInput.AlignVCenter
ContextMenu.menu: TextEditingContextMenu {
editor: parent
}
}
background: Rectangle {
implicitWidth: 120
implicitHeight: 24
radius: 2
color: control.palette.base
border.color: control.activeFocus ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette)
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
color: "transparent"
border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255)
visible: control.activeFocus
radius: 1.7
}
Rectangle {
x: 2
y: 1
width: parent.width - 4
height: 1
color: Fusion.topShadow
}
Rectangle {
x: !control.mirrored ? 1 : parent.width - width - 1
y: 1
width: control.searchIndicator.indicator && control.searchIndicator.indicator.visible
? control.searchIndicator.indicator.width + 1 : 0
height: parent.height - 2
radius: 2
gradient: Gradient {
GradientStop {
position: 0
color: Fusion.gradientStart(Fusion.buttonColor(control.palette, control.visualFocus, false, control.searchIndicator.hovered))
}
GradientStop {
position: 1
color: Fusion.gradientStop(Fusion.buttonColor(control.palette, control.visualFocus, false, control.searchIndicator.hovered))
}
}
Rectangle {
x: !control.mirrored ? parent.width - 1 : 0
width: 1
height: parent.height
color: Fusion.outline(control.palette)
}
}
Rectangle {
x: control.mirrored ? 1 : parent.width - width - 1
y: 1
width: control.clearIndicator.indicator && control.clearIndicator.indicator.visible
? control.clearIndicator.indicator.width + 1 : 0
height: parent.height - 2
radius: 2
gradient: Gradient {
GradientStop {
position: 0
color: Fusion.gradientStart(Fusion.buttonColor(control.palette, control.visualFocus, false, control.clearIndicator.hovered))
}
GradientStop {
position: 1
color: Fusion.gradientStop(Fusion.buttonColor(control.palette, control.visualFocus, false, control.clearIndicator.hovered))
}
}
Rectangle {
x: control.mirrored ? parent.width - 1 : 0
width: 1
height: parent.height
color: Fusion.outline(control.palette)
}
}
}
popup: T.Popup {
y: control.height
width: control.width
height: Math.min(contentItem.implicitHeight, control.Window.height - control.y - control.height - control.padding)
topMargin: 6
bottomMargin: 6
palette: control.palette
contentItem: ListView {
clip: true
implicitHeight: contentHeight
model: control.delegateModel
currentIndex: control.highlightedIndex
highlightMoveDuration: 0
T.ScrollIndicator.vertical: ScrollIndicator { }
}
background: Rectangle {
color: control.popup.palette.window
border.color: Fusion.outline(control.palette)
Rectangle {
z: -1
x: 1; y: 1
width: parent.width
height: parent.height
color: control.palette.shadow
opacity: 0.2
}
}
}
}
@@ -0,0 +1,31 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.SelectionRectangle {
id: control
topLeftHandle: Item {
width: 20
height: 20
visible: SelectionRectangle.control.active
// This item is deliberately empty. Selection handles don't feel at home
// for this style. But we provide an invisible handle that the user can
// drag on.
}
bottomRightHandle: Item {
width: 20
height: 20
visible: SelectionRectangle.control.active
// This item is deliberately empty. Selection handles don't feel at home
// for this style. But we provide an invisible handle that the user can
// drag on.
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.Slider {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitHandleWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitHandleHeight + topPadding + bottomPadding)
handle: SliderHandle {
x: control.leftPadding + Math.round(control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
palette: control.palette
pressed: control.pressed
hovered: control.hovered
vertical: control.vertical
visualFocus: control.visualFocus
}
background: SliderGroove {
control: control
progress: control.position
visualProgress: control.visualPosition
}
}
@@ -0,0 +1,152 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
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)
padding: 4
leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : 0)
rightPadding: padding + (!control.mirrored ? (up.indicator ? up.indicator.width : 0) : 0)
validator: IntValidator {
locale: control.locale.name
bottom: Math.min(control.from, control.to)
top: Math.max(control.from, control.to)
}
contentItem: TextInput {
z: 2
text: control.displayText
font: control.font
color: control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
horizontalAlignment: Qt.AlignHCenter
verticalAlignment: Qt.AlignVCenter
readOnly: !control.editable
validator: control.validator
inputMethodHints: control.inputMethodHints
clip: width < implicitWidth
ContextMenu.menu: TextEditingContextMenu {
editor: parent
}
}
up.indicator: PaddedRectangle {
x: control.mirrored ? 1 : control.width - width - 1
y: 1
height: control.height / 2 - 1
implicitWidth: 16
implicitHeight: 10
radius: 1.7
clip: true
topPadding: -2
leftPadding: -2
color: control.up.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent"
ColorImage {
scale: -1
width: parent.width
height: parent.height
opacity: enabled ? 1.0 : 0.5
color: control.palette.buttonText
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
fillMode: Image.Pad
}
}
down.indicator: PaddedRectangle {
x: control.mirrored ? 1 : control.width - width - 1
y: control.height - height - 1
height: control.height / 2 - 1
implicitWidth: 16
implicitHeight: 10
radius: 1.7
clip: true
topPadding: -2
leftPadding: -2
color: control.down.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent"
ColorImage {
width: parent.width
height: parent.height
opacity: enabled ? 1.0 : 0.5
color: control.palette.buttonText
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
fillMode: Image.Pad
}
}
background: Rectangle {
implicitWidth: 120
implicitHeight: 24
radius: 2
color: control.palette.base
border.color: control.activeFocus ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette)
Rectangle {
x: 2
y: 1
width: parent.width - 4
height: 1
color: Fusion.topShadow
}
Rectangle {
x: control.mirrored ? 1 : parent.width - width - 1
y: 1
width: Math.max(control.up.indicator ? control.up.indicator.width : 0,
control.down.indicator ? control.down.indicator.width : 0) + 1
height: parent.height - 2
radius: 2
gradient: Gradient {
GradientStop {
position: 0
color: Fusion.gradientStart(Fusion.buttonColor(control.palette, control.visualFocus, false, control.up.hovered || control.down.hovered))
}
GradientStop {
position: 1
color: Fusion.gradientStop(Fusion.buttonColor(control.palette, control.visualFocus, false, control.up.hovered || control.down.hovered))
}
}
Rectangle {
x: control.mirrored ? parent.width - 1 : 0
height: parent.height
width: 1
color: Fusion.outline(control.palette)
}
}
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
color: "transparent"
border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255)
visible: control.activeFocus
radius: 1.7
}
}
}
@@ -0,0 +1,29 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
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 ? 2 : control.width
implicitHeight: control.orientation === Qt.Horizontal ? control.height : 2
color: {
if (Fusion.highContrast)
return T.SplitHandle.pressed ? Fusion.highlightedOutline(control.palette)
: (enabled && T.SplitHandle.hovered ? control.palette.button : Fusion.outline(control.palette));
else
return T.SplitHandle.pressed ? control.palette.dark
: (enabled && T.SplitHandle.hovered ? control.palette.midlight : control.palette.mid)
}
}
}
@@ -0,0 +1,46 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
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)
padding: 6
spacing: 6
icon.width: 16
icon.height: 16
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: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
}
background: Rectangle {
implicitWidth: 100
implicitHeight: 20
color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
: control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.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: 6
spacing: 6
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
color: control.palette.text
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.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)
padding: 6
spacing: 6
icon.width: 16
icon.height: 16
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 ? control.indicator.width + control.spacing : 0
rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
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: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
}
background: Rectangle {
implicitWidth: 100
implicitHeight: 20
color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
: control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.TabBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
spacing: -1
contentItem: ListView {
model: control.contentModel
currentIndex: control.currentIndex
spacing: control.spacing
orientation: ListView.Horizontal
boundsBehavior: Flickable.StopAtBounds
flickableDirection: Flickable.AutoFlickIfNeeded
snapMode: ListView.SnapToItem
highlightMoveDuration: 0
highlightRangeMode: ListView.ApplyRange
preferredHighlightBegin: 40
preferredHighlightEnd: width - 40
}
background: Item {
implicitHeight: 21
Rectangle {
width: parent.width
height: 1
y: control.position === T.TabBar.Header ? parent.height - 1 : 0
color: Fusion.outline(control.palette)
}
}
}
@@ -0,0 +1,65 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.TabButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 2
horizontalPadding: 4
spacing: 6
icon.width: 16
icon.height: 16
z: checked
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
text: control.text
font: control.font
color: control.palette.buttonText
}
background: Rectangle {
y: control.checked || control.TabBar.position !== T.TabBar.Header ? 0 : 2
implicitHeight: 21
height: control.height - (control.checked ? 0 : 2)
border.color: Qt.lighter(Fusion.outline(control.palette), 1.1)
gradient: Gradient {
GradientStop {
position: 0
color: control.checked ? Qt.lighter(Fusion.tabFrameColor(control.palette), 1.04)
: Qt.darker(Fusion.tabFrameColor(control.palette), 1.08)
}
GradientStop {
position: control.checked ? 0 : 0.85
color: control.checked ? Qt.lighter(Fusion.tabFrameColor(control.palette), 1.04)
: Qt.darker(Fusion.tabFrameColor(control.palette), 1.08)
}
GradientStop {
position: 1
color: control.checked ? Fusion.tabFrameColor(control.palette)
: Qt.darker(Fusion.tabFrameColor(control.palette), 1.16)
}
}
}
}
@@ -0,0 +1,51 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion.impl
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)
padding: 6
leftPadding: padding + 4
color: control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
placeholderTextColor: control.palette.placeholderText
ContextMenu.menu: TextEditingContextMenu {
editor: control
}
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
verticalAlignment: control.verticalAlignment
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
elide: Text.ElideRight
renderType: control.renderType
}
background: TextFieldBackground {
control: control
}
}
@@ -0,0 +1,51 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
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)
padding: 4
color: control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
placeholderTextColor: control.palette.placeholderText
verticalAlignment: TextInput.AlignVCenter
ContextMenu.menu: TextEditingContextMenu {
editor: control
}
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
verticalAlignment: control.verticalAlignment
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
elide: Text.ElideRight
renderType: control.renderType
}
background: TextFieldBackground {
control: control
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.ToolBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
leftPadding: SafeArea.margins.left + 6
rightPadding: SafeArea.margins.right + 6
topPadding: SafeArea.margins.top
+ (control.position === T.ToolBar.Footer ? 1 : 0)
bottomPadding: SafeArea.margins.bottom
+ (control.position === T.ToolBar.Header ? 1 : 0)
background: Rectangle {
implicitHeight: 26
gradient: Gradient {
GradientStop {
position: 0
color: Qt.lighter(control.palette.window, 1.04)
}
GradientStop {
position: 1
color: control.palette.window
}
}
Rectangle {
width: parent.width
height: 1
color: control.position === T.ToolBar.Header ? Fusion.lightShade : Fusion.darkShade
}
Rectangle {
y: parent.height - height
width: parent.width
height: 1
color: control.position === T.ToolBar.Header ? Fusion.darkShade : Fusion.lightShade
}
}
}
@@ -0,0 +1,44 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
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: 6
icon.width: 16
icon.height: 16
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
text: control.text
font: control.font
color: control.palette.buttonText
}
background: ButtonPanel {
implicitWidth: 20
implicitHeight: 20
control: control
visible: control.down || control.checked || control.highlighted || control.visualFocus
|| (enabled && control.hovered)
}
}
@@ -0,0 +1,34 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.ToolSeparator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: vertical ? 6 : 2
verticalPadding: vertical ? 2 : 6
contentItem: Rectangle {
implicitWidth: control.vertical ? 2 : 8
implicitHeight: control.vertical ? 8 : 2
color: Qt.darker(control.palette.window, 1.1)
Rectangle {
x: 1
width: 1
height: parent.height
color: Qt.lighter(control.palette.window, 1.1)
}
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
T.ToolTip {
id: control
x: parent ? (parent.width - implicitWidth) / 2 : 0
y: -implicitHeight - 3
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
margins: 6
padding: 6
closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
contentItem: Text {
text: control.text
font: control.font
wrapMode: Text.Wrap
color: control.palette.toolTipText
}
background: Rectangle {
color: control.palette.toolTipBase
border.color: control.palette.toolTipText
Rectangle {
z: -1
x: 1; y: 1
width: parent.width
height: parent.height
color: control.palette.shadow
opacity: 0.5
}
}
}
@@ -0,0 +1,100 @@
// Copyright (C) 2022 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
T.TreeViewDelegate {
id: control
implicitWidth: leftMargin + __contentIndent + implicitContentWidth + rightPadding + rightMargin
implicitHeight: Math.max(implicitBackgroundHeight, implicitContentHeight, implicitIndicatorHeight)
indentation: indicator ? indicator.width : 12
leftMargin: 5
rightMargin: 5
spacing: 5
topPadding: contentItem ? (height - contentItem.implicitHeight) / 2 : 0
leftPadding: !mirrored ? leftMargin + __contentIndent : width - leftMargin - __contentIndent - implicitContentWidth
highlighted: control.selected || control.current
|| ((control.treeView.selectionBehavior === TableView.SelectRows
|| control.treeView.selectionBehavior === TableView.SelectionDisabled)
&& control.row === control.treeView.currentRow)
required property int row
required property var model
readonly property real __contentIndent: !isTreeNode ? 0 : (depth * indentation) + (indicator ? indicator.width + spacing : 0)
indicator: Item {
readonly property real __indicatorIndent: control.leftMargin + (control.depth * control.indentation)
x: !control.mirrored ? __indicatorIndent : control.width - __indicatorIndent - width
y: (control.height - height) / 2
implicitWidth: Math.max(arrow.implicitWidth, 20)
implicitHeight: 24 // same as Button.qml
property ColorImage arrow : ColorImage {
parent: control.indicator
x: (parent.width - width) / 2
y: (parent.height - height) / 2
rotation: control.expanded ? 0 : (control.mirrored ? 90 : -90)
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
color: control.palette.windowText
defaultColor: "#353637"
}
}
background: Rectangle {
implicitHeight: 24 // same as Button.qml
color: control.highlighted
? control.palette.highlight
: (control.treeView.alternatingRows && control.row % 2 !== 0
? control.palette.alternateBase : control.palette.base)
}
contentItem: Label {
text: control.model.display
elide: Text.ElideRight
visible: !control.editing
}
// The edit delegate is a separate component, and doesn't need
// to follow the same strict rules that are applied to a control.
// qmllint disable attached-property-reuse
// qmllint disable controls-attached-property-reuse
// qmllint disable QuickControlsSanity.controls-sanity
TableView.editDelegate: FocusScope {
width: parent.width
height: parent.height
readonly property int __role: {
let model = control.treeView.model
let index = control.treeView.index(row, column)
let editText = model.data(index, Qt.EditRole)
return editText !== undefined ? Qt.EditRole : Qt.DisplayRole
}
TextField {
id: textField
x: control.contentItem.x
y: (parent.height - height) / 2
width: control.contentItem.width
text: control.treeView.model.data(control.treeView.index(row, column), __role)
focus: true
}
TableView.onCommit: {
let index = TableView.view.index(row, column)
TableView.view.model.setData(index, textField.text, __role)
}
Component.onCompleted: textField.selectAll()
}
// qmllint enable attached-property-reuse
// qmllint enable controls-attached-property-reuse
// qmllint enable QuickControlsSanity.controls-sanity
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.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
color: control.palette.windowText
font: control.font
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
}
}
}
background: Rectangle {
visible: Fusion.highContrast
border.color: control.visualFocus ? Fusion.highlight(control.palette) : Fusion.outline(control.palette)
color: "transparent"
radius: 2
}
}
@@ -0,0 +1,21 @@
// 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
// Qt-Security score:significant reason:default
pragma ComponentBehavior: Bound
import QtQuick.Templates as T
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: VerticalHeaderViewDelegate { }
}
@@ -0,0 +1,42 @@
// Copyright (C) 2025 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Fusion as FusionControls
T.HeaderViewDelegate {
id: control
// same as AbstractButton.qml
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
padding: 8
highlighted: selected
background: Rectangle {
id: backgroundRect
color: control.palette.button
gradient: Gradient {
GradientStop {
position: 0
color: FusionControls.Fusion.gradientStart(backgroundRect.color)
}
GradientStop {
position: 1
color: FusionControls.Fusion.gradientStop(backgroundRect.color)
}
}
}
contentItem: Label {
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: control.model[control.headerView.textRole]
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
Rectangle {
id: panel
property Item control
property bool highlighted: control.highlighted
visible: !control.flat || control.down || control.checked
color: Fusion.buttonColor(control.palette, panel.highlighted, control.down || control.checked,
enabled && control.hovered)
gradient: control.down || control.checked ? null : buttonGradient
Gradient {
id: buttonGradient
GradientStop {
position: 0
color: Fusion.gradientStart(Fusion.buttonColor(panel.control.palette, panel.highlighted,
panel.control.down, panel.enabled && panel.control.hovered))
}
GradientStop {
position: 1
color: Fusion.gradientStop(Fusion.buttonColor(panel.control.palette, panel.highlighted,
panel.control.down, panel.enabled && panel.control.hovered))
}
}
radius: 2
border.color: Fusion.buttonOutline(control.palette, panel.highlighted || control.visualFocus, control.enabled)
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
border.color: Fusion.innerContrastLine
color: "transparent"
radius: 2
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
Rectangle {
id: indicator
property Item control
property real baseLightness: 1.6
readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85)
readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2)
implicitWidth: 14
implicitHeight: 14
color: control.down ? indicator.pressedColor : Qt.lighter(control.palette.base, baseLightness)
border.color: control.visualFocus ? Fusion.highlightedOutline(control.palette)
: Qt.lighter(Fusion.outline(control.palette), 1.1)
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: 1
color: Fusion.topShadow
visible: indicator.control.enabled && !indicator.control.down
}
ColorImage {
x: (parent.width - width) / 2
y: (parent.height - height) / 2
color: Color.transparent(indicator.checkMarkColor, 210 / 255)
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/checkmark.png"
visible: indicator.control.checkState === Qt.Checked || (indicator.control.checked && indicator.control.checkState === undefined)
}
Rectangle {
x: 3; y: 3
width: parent.width - 6
height: parent.width - 6
visible: indicator.control.checkState === Qt.PartiallyChecked
gradient: Gradient {
GradientStop {
position: 0
color: Color.transparent(indicator.checkMarkColor, 80 / 255)
}
GradientStop {
position: 1
color: Color.transparent(indicator.checkMarkColor, 140 / 255)
}
}
border.color: Color.transparent(indicator.checkMarkColor, 180 / 255)
}
}
@@ -0,0 +1,10 @@
// Copyright (C) 2025 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
// Qt-Security score:significant reason:default
import QtQuick.Controls.impl
CopyAction {
icon.width: 16
icon.height: 16
}
@@ -0,0 +1,10 @@
// Copyright (C) 2025 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
// Qt-Security score:significant reason:default
import QtQuick.Controls.impl
CutAction {
icon.width: 16
icon.height: 16
}
@@ -0,0 +1,10 @@
// Copyright (C) 2025 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
// Qt-Security score:significant reason:default
import QtQuick.Controls.impl
DeleteAction {
icon.width: 16
icon.height: 16
}
@@ -0,0 +1,10 @@
// Copyright (C) 2025 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
// Qt-Security score:significant reason:default
import QtQuick.Controls.impl
PasteAction {
icon.width: 16
icon.height: 16
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
Rectangle {
id: indicator
property Item control
readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85)
readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2)
implicitWidth: 14
implicitHeight: 14
radius: width / 2
color: control.down ? indicator.pressedColor : Qt.lighter(control.palette.base, 1.75)
border.color: control.visualFocus ? Fusion.highlightedOutline(control.palette)
: Fusion.highContrast
? Fusion.outline(control.palette)
: Qt.darker(control.palette.window, 1.5)
Rectangle {
y: 1
width: parent.width
height: parent.height - 1
radius: width / 2
color: "transparent"
border.color: Fusion.topShadow
visible: indicator.control.enabled && !indicator.control.down
}
Rectangle {
x: (parent.width - width) / 2
y: (parent.height - height) / 2
width: parent.width / 2.32
height: parent.height / 2.32
radius: width / 2
color: Color.transparent(indicator.checkMarkColor, 180 / 255)
border.color: Color.transparent(indicator.checkMarkColor, 200 / 255)
visible: indicator.control.checked
}
}
@@ -0,0 +1,9 @@
// Copyright (C) 2025 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.Controls.impl
RedoAction {
icon.width: 16
icon.height: 16
}
@@ -0,0 +1,10 @@
// Copyright (C) 2025 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
// Qt-Security score:significant reason:default
import QtQuick.Controls.impl
SelectAllAction {
icon.width: 16
icon.height: 16
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
Rectangle {
id: groove
property Item control
property real offset
property real progress
property real visualProgress
x: control.horizontal ? 0 : (control.availableWidth - width) / 2
y: control.horizontal ? (control.availableHeight - height) / 2 : 0
implicitWidth: control.horizontal ? 160 : 5
implicitHeight: control.horizontal ? 5 : 160
width: control.horizontal ? control.availableWidth : implicitWidth
height: control.horizontal ? implicitHeight : control.availableHeight
radius: 2
border.color: Fusion.outline(control.palette)
scale: control.horizontal && control.mirrored ? -1 : 1
gradient: Gradient {
GradientStop {
position: 0
color: Qt.darker(Fusion.grooveColor(groove.control.palette), 1.1)
}
GradientStop {
position: 1
color: Qt.lighter(Fusion.grooveColor(groove.control.palette), 1.1)
}
}
Rectangle {
x: groove.control.horizontal ? groove.offset * parent.width : 0
y: groove.control.horizontal ? 0 : groove.visualProgress * parent.height
width: groove.control.horizontal ? groove.progress * parent.width - groove.offset * parent.width : 5
height: groove.control.horizontal ? 5 : groove.progress * parent.height - groove.offset * parent.height
radius: 2
border.color: Qt.darker(Fusion.highlightedOutline(groove.control.palette), 1.1)
gradient: Gradient {
GradientStop {
position: 0
color: Fusion.highlight(groove.control.palette)
}
GradientStop {
position: 1
color: Qt.lighter(Fusion.highlight(groove.control.palette), 1.2)
}
}
}
}
@@ -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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
Rectangle {
id: handle
property bool pressed
property bool hovered
property bool vertical
property bool visualFocus
implicitWidth: 13
implicitHeight: 13
gradient: Gradient {
GradientStop {
position: 0
color: Fusion.gradientStart(Fusion.buttonColor(handle.palette, handle.visualFocus,
handle.pressed, handle.enabled && handle.hovered))
}
GradientStop {
position: 1
color: Fusion.gradientStop(Fusion.buttonColor(handle.palette, handle.visualFocus,
handle.pressed, handle.enabled && handle.hovered))
}
}
rotation: handle.vertical ? -90 : 0
border.width: 1
border.color: "transparent"
radius: 2
Rectangle {
width: parent.width
height: parent.height
border.color: handle.visualFocus ? Fusion.highlightedOutline(handle.palette) : Fusion.outline(handle.palette)
color: "transparent"
radius: 2
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
border.color: Fusion.innerContrastLine
color: "transparent"
radius: 2
}
}
}
@@ -0,0 +1,109 @@
// 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl
Rectangle {
id: indicator
property T.AbstractButton control
readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85)
readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2)
implicitWidth: 40
implicitHeight: 16
radius: 2
border.color: Fusion.outline(control.palette)
gradient: Gradient {
GradientStop {
position: 0
color: Qt.darker(Fusion.grooveColor(indicator.control.palette), 1.1)
}
GradientStop {
position: 1
color: Qt.lighter(Fusion.grooveColor(indicator.control.palette), 1.1)
}
}
Rectangle {
x: indicator.control.mirrored ? handle.x : 0
width: indicator.control.mirrored ? parent.width - handle.x : handle.x + handle.width
height: parent.height
opacity: indicator.control.checked ? 1 : 0
Behavior on opacity {
enabled: !indicator.control.down
NumberAnimation { duration: 80 }
}
radius: 2
border.color: Qt.darker(Fusion.highlightedOutline(indicator.control.palette), 1.1)
border.width: indicator.control.enabled ? 1 : 0
gradient: Gradient {
GradientStop {
position: 0
color: Qt.alpha(indicator.control.palette.active.highlight,
indicator.Window ? indicator.Window.active ? 1 : 0.5 : 1)
}
GradientStop {
position: 1
color: Qt.alpha(Qt.lighter(indicator.control.palette.active.highlight, 1.2),
indicator.Window ? indicator.Window.active ? 1 : 0.5 : 1)
}
}
}
Rectangle {
id: handle
x: Math.max(0, Math.min(parent.width - width, indicator.control.visualPosition * parent.width - (width / 2)))
y: (parent.height - height) / 2
width: 20
height: 16
radius: 2
gradient: Gradient {
GradientStop {
position: 0
color: Fusion.gradientStart(Fusion.buttonColor(indicator.control.palette,
indicator.control.visualFocus, indicator.control.pressed, indicator.enabled && indicator.control.hovered))
}
GradientStop {
position: 1
color: Fusion.gradientStop(Fusion.buttonColor(indicator.control.palette,
indicator.control.visualFocus, indicator.control.pressed, indicator.enabled && indicator.control.hovered))
}
}
border.width: 1
border.color: "transparent"
Rectangle {
width: parent.width
height: parent.height
border.color: indicator.control.visualFocus ? Fusion.highlightedOutline(indicator.control.palette) : Fusion.outline(indicator.control.palette)
color: "transparent"
radius: 2
Rectangle {
x: 1; y: 1
width: parent.width - 2
height: parent.height - 2
border.color: Fusion.innerContrastLine
color: "transparent"
radius: 2
}
}
Behavior on x {
enabled: !indicator.control.down
SmoothedAnimation { velocity: 200 }
}
}
}
@@ -0,0 +1,42 @@
// Copyright (C) 2025 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
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Controls.Fusion
import QtQuick.Controls.Fusion.impl as FusionImpl
Menu {
id: menu
popupType: Qt.platform.pluginName !== "wayland" ? Popup.Window : Popup.Item
required property Item editor
FusionImpl.UndoAction {
editor: menu.editor
}
FusionImpl.RedoAction {
editor: menu.editor
}
MenuSeparator {}
FusionImpl.CutAction {
editor: menu.editor
}
FusionImpl.CopyAction {
editor: menu.editor
}
FusionImpl.PasteAction {
editor: menu.editor
}
FusionImpl.DeleteAction {
editor: menu.editor
}
MenuSeparator {}
FusionImpl.SelectAllAction {
editor: menu.editor
}
}
@@ -0,0 +1,35 @@
// Copyright (C) 2025 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.Controls.Fusion
Rectangle {
implicitWidth: 120
implicitHeight: 24
radius: 2
color: control.palette.base
border.color: control.activeFocus ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette)
required property Item control
Rectangle {
x: 1
y: 1
width: parent.width - 2
height: parent.height - 2
color: "transparent"
border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255)
visible: control.activeFocus
radius: 1.7
}
Rectangle {
x: 2
y: 1
width: parent.width - 4
height: 1
color: Fusion.topShadow
}
}
@@ -0,0 +1,9 @@
// Copyright (C) 2025 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.Controls.impl
UndoAction {
icon.width: 16
icon.height: 16
}
@@ -0,0 +1,86 @@
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/qquickfusionbusyindicator_p.h"
lineNumber: 25
name: "QQuickFusionBusyIndicator"
accessSemantics: "reference"
prototype: "QQuickPaintedItem"
exports: [
"QtQuick.Controls.Fusion.impl/BusyIndicatorImpl 2.3",
"QtQuick.Controls.Fusion.impl/BusyIndicatorImpl 2.4",
"QtQuick.Controls.Fusion.impl/BusyIndicatorImpl 2.7",
"QtQuick.Controls.Fusion.impl/BusyIndicatorImpl 2.11",
"QtQuick.Controls.Fusion.impl/BusyIndicatorImpl 6.0",
"QtQuick.Controls.Fusion.impl/BusyIndicatorImpl 6.3",
"QtQuick.Controls.Fusion.impl/BusyIndicatorImpl 6.7"
]
exportMetaObjectRevisions: [515, 516, 519, 523, 1536, 1539, 1543]
Property {
name: "color"
type: "QColor"
read: "color"
write: "setColor"
index: 0
lineNumber: 28
isFinal: true
}
Property {
name: "running"
type: "bool"
read: "isRunning"
write: "setRunning"
index: 1
lineNumber: 29
}
}
Component {
file: "private/qquickfusiondial_p.h"
lineNumber: 24
name: "QQuickFusionDial"
accessSemantics: "reference"
prototype: "QQuickPaintedItem"
exports: [
"QtQuick.Controls.Fusion.impl/DialImpl 2.3",
"QtQuick.Controls.Fusion.impl/DialImpl 2.4",
"QtQuick.Controls.Fusion.impl/DialImpl 2.7",
"QtQuick.Controls.Fusion.impl/DialImpl 2.11",
"QtQuick.Controls.Fusion.impl/DialImpl 6.0",
"QtQuick.Controls.Fusion.impl/DialImpl 6.3",
"QtQuick.Controls.Fusion.impl/DialImpl 6.7"
]
exportMetaObjectRevisions: [515, 516, 519, 523, 1536, 1539, 1543]
Property {
name: "highlight"
type: "bool"
read: "highlight"
write: "setHighlight"
index: 0
lineNumber: 27
isFinal: true
}
}
Component {
file: "private/qquickfusionknob_p.h"
lineNumber: 24
name: "QQuickFusionKnob"
accessSemantics: "reference"
prototype: "QQuickPaintedItem"
exports: [
"QtQuick.Controls.Fusion.impl/KnobImpl 2.3",
"QtQuick.Controls.Fusion.impl/KnobImpl 2.4",
"QtQuick.Controls.Fusion.impl/KnobImpl 2.7",
"QtQuick.Controls.Fusion.impl/KnobImpl 2.11",
"QtQuick.Controls.Fusion.impl/KnobImpl 6.0",
"QtQuick.Controls.Fusion.impl/KnobImpl 6.3",
"QtQuick.Controls.Fusion.impl/KnobImpl 6.7"
]
exportMetaObjectRevisions: [515, 516, 519, 523, 1536, 1539, 1543]
}
}
@@ -0,0 +1,29 @@
module QtQuick.Controls.Fusion.impl
linktarget Qt6::qtquickcontrols2fusionstyleimplplugin
optional plugin qtquickcontrols2fusionstyleimplplugin
classname QtQuickControls2FusionStyleImplPlugin
typeinfo plugins.qmltypes
depends QtQuick auto
prefer :/qt-project.org/imports/QtQuick/Controls/Fusion/impl/
ButtonPanel 6.0 ButtonPanel.qml
ButtonPanel 2.0 ButtonPanel.qml
CheckIndicator 6.0 CheckIndicator.qml
CheckIndicator 2.0 CheckIndicator.qml
CopyAction 6.11 CopyAction.qml
CutAction 6.11 CutAction.qml
DeleteAction 6.11 DeleteAction.qml
PasteAction 6.11 PasteAction.qml
RadioIndicator 6.0 RadioIndicator.qml
RadioIndicator 2.0 RadioIndicator.qml
RedoAction 6.11 RedoAction.qml
SelectAllAction 6.11 SelectAllAction.qml
SliderGroove 6.0 SliderGroove.qml
SliderGroove 2.0 SliderGroove.qml
SliderHandle 6.0 SliderHandle.qml
SliderHandle 2.0 SliderHandle.qml
SwitchIndicator 6.0 SwitchIndicator.qml
SwitchIndicator 2.0 SwitchIndicator.qml
TextEditingContextMenu 6.11 TextEditingContextMenu.qml
TextFieldBackground 6.9 TextFieldBackground.qml
UndoAction 6.11 UndoAction.qml
@@ -0,0 +1,196 @@
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/qquickfusionstyle_p.h"
lineNumber: 28
name: "QQuickFusionStyle"
accessSemantics: "reference"
prototype: "QObject"
exports: [
"QtQuick.Controls.Fusion/Fusion 2.3",
"QtQuick.Controls.Fusion/Fusion 6.0",
"QtQuick.Controls.Fusion/Fusion 6.10"
]
isCreatable: false
isSingleton: true
exportMetaObjectRevisions: [515, 1536, 1546]
Property {
name: "lightShade"
type: "QColor"
read: "lightShade"
index: 0
lineNumber: 31
isReadonly: true
isFinal: true
isPropertyConstant: true
}
Property {
name: "darkShade"
type: "QColor"
read: "darkShade"
index: 1
lineNumber: 32
isReadonly: true
isFinal: true
isPropertyConstant: true
}
Property {
name: "topShadow"
type: "QColor"
read: "topShadow"
index: 2
lineNumber: 33
isReadonly: true
isFinal: true
isPropertyConstant: true
}
Property {
name: "innerContrastLine"
type: "QColor"
read: "innerContrastLine"
index: 3
lineNumber: 34
isReadonly: true
isFinal: true
isPropertyConstant: true
}
Property {
name: "highContrast"
revision: 1546
type: "bool"
read: "isHighContrast"
notify: "highContrastChanged"
index: 4
lineNumber: 35
isReadonly: true
isFinal: true
}
Signal { name: "highContrastChanged"; revision: 1546; lineNumber: 62 }
Method {
name: "highlight"
type: "QColor"
lineNumber: 49
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
}
Method {
name: "highlightedText"
type: "QColor"
lineNumber: 50
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
}
Method {
name: "outline"
type: "QColor"
lineNumber: 51
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
}
Method {
name: "highlightedOutline"
type: "QColor"
lineNumber: 52
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
}
Method {
name: "tabFrameColor"
type: "QColor"
lineNumber: 53
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
}
Method {
name: "buttonColor"
type: "QColor"
lineNumber: 54
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
Parameter { name: "highlighted"; type: "bool" }
Parameter { name: "down"; type: "bool" }
Parameter { name: "hovered"; type: "bool" }
}
Method {
name: "buttonColor"
type: "QColor"
isCloned: true
lineNumber: 54
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
Parameter { name: "highlighted"; type: "bool" }
Parameter { name: "down"; type: "bool" }
}
Method {
name: "buttonColor"
type: "QColor"
isCloned: true
lineNumber: 54
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
Parameter { name: "highlighted"; type: "bool" }
}
Method {
name: "buttonColor"
type: "QColor"
isCloned: true
lineNumber: 54
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
}
Method {
name: "buttonOutline"
type: "QColor"
lineNumber: 55
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
Parameter { name: "highlighted"; type: "bool" }
Parameter { name: "enabled"; type: "bool" }
}
Method {
name: "buttonOutline"
type: "QColor"
isCloned: true
lineNumber: 55
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
Parameter { name: "highlighted"; type: "bool" }
}
Method {
name: "buttonOutline"
type: "QColor"
isCloned: true
lineNumber: 55
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
}
Method {
name: "gradientStart"
type: "QColor"
lineNumber: 56
Parameter { name: "baseColor"; type: "QColor" }
}
Method {
name: "gradientStop"
type: "QColor"
lineNumber: 57
Parameter { name: "baseColor"; type: "QColor" }
}
Method {
name: "mergedColors"
type: "QColor"
lineNumber: 58
Parameter { name: "colorA"; type: "QColor" }
Parameter { name: "colorB"; type: "QColor" }
Parameter { name: "factor"; type: "int" }
}
Method {
name: "mergedColors"
type: "QColor"
isCloned: true
lineNumber: 58
Parameter { name: "colorA"; type: "QColor" }
Parameter { name: "colorB"; type: "QColor" }
}
Method {
name: "grooveColor"
type: "QColor"
lineNumber: 59
Parameter { name: "palette"; type: "QQuickPalette"; isPointer: true }
}
}
}
@@ -0,0 +1,115 @@
module QtQuick.Controls.Fusion
linktarget Qt6::qtquickcontrols2fusionstyleplugin
plugin qtquickcontrols2fusionstyleplugin
classname QtQuickControls2FusionStylePlugin
typeinfo plugins.qmltypes
import QtQuick.Controls.Basic auto
depends QtQuick auto
prefer :/qt-project.org/imports/QtQuick/Controls/Fusion/
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
DoubleSpinBox 6.11 DoubleSpinBox.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
HorizontalHeaderViewDelegate 6.10 HorizontalHeaderViewDelegate.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
ScrollBar 6.0 ScrollBar.qml
ScrollBar 2.0 ScrollBar.qml
ScrollView 6.0 ScrollView.qml
ScrollView 2.0 ScrollView.qml
ScrollIndicator 6.0 ScrollIndicator.qml
ScrollIndicator 2.0 ScrollIndicator.qml
SearchField 6.10 SearchField.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
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
TreeViewDelegate 6.0 TreeViewDelegate.qml
TreeViewDelegate 2.0 TreeViewDelegate.qml
Tumbler 6.0 Tumbler.qml
Tumbler 2.0 Tumbler.qml
VerticalHeaderView 2.15 VerticalHeaderView.qml
VerticalHeaderView 6.0 VerticalHeaderView.qml
VerticalHeaderViewDelegate 6.10 VerticalHeaderViewDelegate.qml