Initial commit

This commit is contained in:
2026-04-29 07:19:21 +03:00
commit 9a8cdfa08a
5964 changed files with 1194660 additions and 0 deletions
@@ -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.Window
import QtQuick.Templates as T
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.impl
T.ApplicationWindow {
id: window
background: NinePatchImage {
width: window.width
height: window.height
source: Imagine.url + "applicationwindow-background"
NinePatchImageSelector on source {
states: [
{"active": window.active}
]
}
}
}
@@ -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.Imagine
import QtQuick.Controls.Imagine.impl
T.BusyIndicator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
contentItem: AnimatedImage {
opacity: control.running ? 1 : 0
playing: control.running || opacity > 0
visible: control.running || opacity > 0
Behavior on opacity { OpacityAnimator { duration: 250 } }
source: Imagine.url + "busyindicator-animation"
AnimatedImageSelector on source {
states: [
{"disabled": !control.enabled},
{"running": control.running},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
background: NinePatchImage {
source: Imagine.url + "busyindicator-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"running": control.running},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,64 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.Button {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
spacing: 6 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
icon.width: 24
icon.height: 24
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
defaultIconColor: control.enabled && control.flat && control.highlighted ? control.palette.highlight
: control.enabled && (control.down || control.checked || control.highlighted) && !control.flat
? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText
text: control.text
font: control.font
color: defaultIconColor
}
background: NinePatchImage {
source: Imagine.url + "button-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"checkable": control.checkable},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"flat": control.flat},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,74 @@
// 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.Imagine
import QtQuick.Controls.Imagine.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)
spacing: 6 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
indicator: Image {
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
source: Imagine.url + "checkbox-indicator"
ImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checkState === Qt.Checked},
{"partially-checked": control.checkState === Qt.PartiallyChecked},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
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
}
background: NinePatchImage {
source: Imagine.url + "checkbox-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checkState === Qt.Checked},
{"partially-checked": control.checkState === Qt.PartiallyChecked},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,85 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.CheckDelegate {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
spacing: 12 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
icon.width: 24
icon.height: 24
indicator: Image {
x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
y: control.topPadding + (control.availableHeight - height) / 2
source: Imagine.url + "checkdelegate-indicator"
ImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checkState === Qt.Checked},
{"partially-checked": control.checkState === Qt.PartiallyChecked},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
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
defaultIconColor: control.palette.text
text: control.text
font: control.font
color: defaultIconColor
}
background: NinePatchImage {
source: Imagine.url + "checkdelegate-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checkState === Qt.Checked},
{"partially-checked": control.checkState === Qt.PartiallyChecked},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,149 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.ComboBox {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + (background ? background.leftPadding + background.rightPadding : 0))
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
Math.max(implicitContentHeight,
implicitIndicatorHeight) + (background ? background.topPadding + background.bottomPadding : 0))
leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
delegate: ItemDelegate {
required property var model
required property int index
width: ListView.view.width
text: model[control.textRole]
font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
highlighted: control.highlightedIndex === index
hoverEnabled: control.hoverEnabled
}
indicator: Image {
x: control.mirrored ? control.padding : control.width - width - control.padding
y: control.topPadding + (control.availableHeight - height) / 2
source: Imagine.url + "combobox-indicator"
ImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.pressed},
{"editable": control.editable},
{"open": control.down},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered},
{"flat": control.flat}
]
}
}
contentItem: T.TextField {
topPadding: control.background ? control.background.topPadding : 0
leftPadding: control.background ? control.background.leftPadding : 0
rightPadding: control.background ? control.background.rightPadding : 0
bottomPadding: control.background ? control.background.bottomPadding : 0
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.flat ? control.palette.windowText : 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: NinePatchImage {
source: Imagine.url + "combobox-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.pressed},
{"editable": control.editable},
{"open": control.down},
{"focused": control.visualFocus || (control.editable && control.activeFocus)},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered},
{"flat": control.flat}
]
}
}
popup: T.Popup {
width: control.width
height: Math.min(contentItem.implicitHeight + topPadding + bottomPadding, control.Window.height - topMargin - bottomMargin)
topMargin: background.topInset
bottomMargin: background.bottomInset
topPadding: background.topPadding
leftPadding: background.leftPadding
rightPadding: background.rightPadding
bottomPadding: background.bottomPadding
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
palette.text: control.palette.text
palette.highlight: control.palette.highlight
palette.highlightedText: control.palette.highlightedText
palette.windowText: control.palette.windowText
palette.buttonText: control.palette.buttonText
contentItem: ListView {
clip: true
implicitHeight: contentHeight
model: control.delegateModel
currentIndex: control.highlightedIndex
highlightMoveDuration: 0
T.ScrollIndicator.vertical: ScrollIndicator { }
}
background: NinePatchImage {
source: Imagine.url + "combobox-popup"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.pressed},
{"editable": control.editable},
{"focused": control.visualFocus || (control.editable && control.activeFocus)},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered},
{"flat": control.flat}
]
}
}
}
}
@@ -0,0 +1,105 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.DelayButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
transition: Transition {
NumberAnimation {
duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
}
}
contentItem: Text {
text: control.text
font: control.font
color: control.palette.buttonText
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
}
background: NinePatchImage {
source: control.Imagine.url + "delaybutton-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
readonly override property NinePatchImage progress: NinePatchImage {
parent: control.background
width: control.progress * parent.width
height: parent.height
visible: false
source: control.Imagine.url + "delaybutton-progress"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
readonly property NinePatchImage mask: NinePatchImage {
width: control.background.width
height: control.background.height
visible: false
source: control.Imagine.url + "delaybutton-mask"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
readonly property OpacityMask effect: OpacityMask {
parent: control.background
width: source.width
height: source.height
source: control.background.progress
maskSource: ShaderEffectSource {
sourceItem: control.background.mask
sourceRect: Qt.rect(0, 0, control.background.effect.width, control.background.effect.height)
}
}
}
}
@@ -0,0 +1,69 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.Dial {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
(handle ? handle.implicitWidth : 0) + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
(handle ? handle.implicitHeight : 0) + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
handle: Image {
x: control.background.x + control.background.width / 2 - width / 2
y: control.background.y + control.background.height / 2 - height / 2
source: Imagine.url + "dial-handle"
ImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.pressed},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
transform: [
Translate {
y: -Math.min(control.background.width, control.background.height) * 0.4
+ (control.handle ? control.handle.height / 2 : 0)
},
Rotation {
angle: control.angle
origin.x: control.handle ? control.handle.width / 2 : 0
origin.y: control.handle ? control.handle.height / 2 : 0
}
]
}
background: NinePatchImage {
fillMode: Image.PreserveAspectFit
source: Imagine.url + "dial-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.pressed},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -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.Imagine
import QtQuick.Controls.Imagine.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))
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
background: NinePatchImage {
source: Imagine.url + "dialog-background"
NinePatchImageSelector on source {
states: [
{"modal": control.modal},
{"dim": control.dim}
]
}
}
header: Label {
text: control.title
visible: parent?.parent === Overlay.overlay && control.title
elide: Label.ElideRight
font.bold: true
padding: 12
background: NinePatchImage {
width: parent.width
height: parent.height
source: Imagine.url + "dialog-title"
NinePatchImageSelector on source {
states: [
{"modal": control.modal},
{"dim": control.dim}
]
}
}
}
footer: DialogButtonBox {
visible: count > 0
}
T.Overlay.modal: NinePatchImage {
source: Imagine.url + "dialog-overlay"
NinePatchImageSelector on source {
states: [
{"modal": true}
]
}
}
T.Overlay.modeless: NinePatchImage {
source: Imagine.url + "dialog-overlay"
NinePatchImageSelector on source {
states: [
{"modal": false}
]
}
}
}
@@ -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.Imagine
import QtQuick.Controls.Imagine.impl
T.DialogButtonBox {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
(control.count === 1 ? implicitContentWidth * 2 : implicitContentWidth) + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
spacing: 6
delegate: Button {
width: control.count === 1 ? control.availableWidth / 2 : undefined
flat: true
}
contentItem: ListView {
implicitWidth: contentWidth
model: control.contentModel
spacing: control.spacing
orientation: ListView.Horizontal
boundsBehavior: Flickable.StopAtBounds
snapMode: ListView.SnapToItem
}
background: NinePatchImage {
source: Imagine.url + "dialogbuttonbox-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
}
@@ -0,0 +1,124 @@
// 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.Imagine
import QtQuick.Controls.Imagine.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)
topPadding: background ? background.topPadding : 0
leftPadding: (background ? background.leftPadding : 0) + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
rightPadding: (background ? background.rightPadding : 0) + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 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
opacity: control.enabled ? 1 : 0.3
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
}
NinePatchImage {
z: -1
width: control.width
height: control.height
visible: control.editable
source: Imagine.url + "spinbox-editor"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"focused": control.activeFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
up.indicator: NinePatchImage {
x: control.mirrored ? 0 : control.width - width
height: control.height
source: Imagine.url + "spinbox-indicator"
NinePatchImageSelector on source {
states: [
{"up": true},
{"disabled": !control.up.indicator.enabled},
{"editable": control.editable},
{"pressed": control.up.pressed},
{"focused": control.activeFocus},
{"mirrored": control.mirrored},
{"hovered": control.up.hovered}
]
}
}
down.indicator: NinePatchImage {
x: control.mirrored ? control.width - width : 0
height: control.height
source: Imagine.url + "spinbox-indicator"
NinePatchImageSelector on source {
states: [
{"down": true},
{"disabled": !control.down.indicator.enabled},
{"editable": control.editable},
{"pressed": control.down.pressed},
{"focused": control.activeFocus},
{"mirrored": control.mirrored},
{"hovered": control.down.hovered}
]
}
}
background: NinePatchImage {
source: Imagine.url + "spinbox-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"editable": control.editable},
{"focused": control.activeFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,64 @@
// 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.Imagine
import QtQuick.Controls.Imagine.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 + (background ? background.topPadding : 0)
leftPadding: SafeArea.margins.left + (background ? background.leftPadding : 0)
rightPadding: SafeArea.margins.right + (background ? background.rightPadding : 0)
bottomPadding: SafeArea.margins.bottom + (background ? background.bottomPadding : 0)
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
enter: Transition { SmoothedAnimation { velocity: 5 } }
exit: Transition { SmoothedAnimation { velocity: 5 } }
background: NinePatchImage {
source: Imagine.url + "drawer-background"
NinePatchImageSelector on source {
states: [
{"modal": control.modal},
{"dim": control.dim},
{"top": control.edge === Qt.TopEdge},
{"left": control.edge === Qt.LeftEdge},
{"right": control.edge === Qt.RightEdge},
{"bottom": control.edge === Qt.BottomEdge}
]
}
}
T.Overlay.modal: NinePatchImage {
source: Imagine.url + "drawer-overlay"
NinePatchImageSelector on source {
states: [
{"modal": true}
]
}
}
T.Overlay.modeless: NinePatchImage {
source: Imagine.url + "drawer-overlay"
NinePatchImageSelector on source {
states: [
{"modal": false}
]
}
}
}
@@ -0,0 +1,37 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.impl
T.Frame {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
background: NinePatchImage {
source: Imagine.url + "frame-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
}
@@ -0,0 +1,66 @@
// 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.Imagine
import QtQuick.Controls.Imagine.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)
topPadding: ((background as NinePatchImage)?.topPadding ?? 0) + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
leftPadding: ((background as NinePatchImage)?.leftPadding ?? 0)
rightPadding: ((background as NinePatchImage)?.rightPadding ?? 0)
bottomPadding: ((background as NinePatchImage)?.bottomPadding ?? 0)
label: Label {
width: control.width
topPadding: background.topPadding
leftPadding: background.leftPadding
rightPadding: background.rightPadding
bottomPadding: background.bottomPadding
text: control.title
elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter
color: control.palette.windowText
background: NinePatchImage {
width: parent.width
height: parent.height
source: Imagine.url + "groupbox-title"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
}
background: NinePatchImage {
x: -leftInset
y: control.topPadding - control.bottomPadding - topInset
width: control.width + leftInset + rightInset
height: control.height + topInset + bottomInset - control.topPadding + control.bottomPadding
source: Imagine.url + "groupbox-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
}
@@ -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,32 @@
// 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
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 {
border.color: "#e4e4e4"
color: "#f6f6f6"
}
contentItem: Label {
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
color: "#ff26282a"
text: control.model[control.headerView.textRole]
}
}
@@ -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.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.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)
spacing: 12 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
icon.width: 24
icon.height: 24
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
defaultIconColor: control.palette.text
text: control.text
font: control.font
color: defaultIconColor
}
background: NinePatchImage {
source: Imagine.url + "itemdelegate-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,31 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.impl
T.Label {
id: control
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
color: control.palette.windowText
linkColor: control.palette.link
background: NinePatchImage {
source: Imagine.url + "label-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,75 @@
// 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.Imagine
import QtQuick.Controls.Imagine.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)
topMargin: background ? background.topInset : 0
leftMargin: background ? background.leftInset : 0
rightMargin: background ? background.rightInset : 0
bottomMargin: background ? background.bottomInset : 0
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
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
T.ScrollIndicator.vertical: ScrollIndicator { }
}
background: NinePatchImage {
source: Imagine.url + "menu-background"
NinePatchImageSelector on source {
states: [
{"modal": control.modal},
{"dim": control.dim}
]
}
}
T.Overlay.modal: NinePatchImage {
source: Imagine.url + "menu-overlay"
NinePatchImageSelector on source {
states: [
{"modal": true}
]
}
}
T.Overlay.modeless: NinePatchImage {
source: Imagine.url + "menu-overlay"
NinePatchImageSelector on source {
states: [
{"modal": false}
]
}
}
}
@@ -0,0 +1,105 @@
// 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.Imagine
import QtQuick.Controls.Imagine.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)
spacing: 6 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
icon.width: 24
icon.height: 24
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
defaultIconColor: control.palette.windowText
text: control.text
font: control.font
color: defaultIconColor
}
arrow: Image {
x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
y: control.topPadding + (control.availableHeight - height) / 2
visible: control.subMenu
source: Imagine.url + "menuitem-arrow"
ImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
indicator: Image {
x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
y: control.topPadding + (control.availableHeight - height) / 2
visible: control.checkable
source: Imagine.url + "menuitem-indicator"
ImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
background: NinePatchImage {
source: Imagine.url + "menuitem-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -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.Imagine
import QtQuick.Controls.Imagine.impl
T.MenuSeparator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
contentItem: NinePatchImage {
source: Imagine.url + "menuseparator-separator"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
background: NinePatchImage {
source: Imagine.url + "menuseparator-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
}
@@ -0,0 +1,41 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.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))
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
background: NinePatchImage {
source: Imagine.url + "page-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
}
@@ -0,0 +1,60 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.impl
T.PageIndicator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
delegate: Image {
source: Imagine.url + "pageindicator-delegate"
ImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": pressed},
{"current": index === control.currentIndex},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered} // ### TODO: context property
]
}
}
contentItem: Row {
spacing: control.spacing
Repeater {
model: control.count
delegate: control.delegate
}
}
background: NinePatchImage {
source: Imagine.url + "pageindicator-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,37 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.impl
T.Pane {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
background: NinePatchImage {
source: Imagine.url + "pane-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
}
@@ -0,0 +1,55 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.Popup {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : undefined
leftPadding: background ? background.leftPadding : undefined
rightPadding: background ? background.rightPadding : undefined
bottomPadding: background ? background.bottomPadding : undefined
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
background: NinePatchImage {
source: Imagine.url + "popup-background"
NinePatchImageSelector on source {
states: [
{"modal": control.modal},
{"dim": control.dim}
]
}
}
T.Overlay.modal: NinePatchImage {
source: Imagine.url + "popup-overlay"
NinePatchImageSelector on source {
states: [
{"modal": true}
]
}
}
T.Overlay.modeless: NinePatchImage {
source: Imagine.url + "popup-overlay"
NinePatchImageSelector on source {
states: [
{"modal": false}
]
}
}
}
@@ -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.Imagine
import QtQuick.Controls.Imagine.impl
T.ProgressBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
contentItem: Item {
implicitWidth: control.indeterminate ? animation.implicitWidth || progress.implicitWidth : progress.implicitWidth
implicitHeight: control.indeterminate ? animation.implicitHeight || progress.implicitHeight : progress.implicitHeight
scale: control.mirrored ? -1 : 1
readonly property bool hasMask: mask.status !== Image.Null
readonly property NinePatchImage progress: NinePatchImage {
parent: control.contentItem
width: control.position * parent.width
height: parent.height
visible: !control.indeterminate && !control.contentItem.hasMask
source: Imagine.url + "progressbar-progress"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"indeterminate": control.indeterminate},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
readonly property AnimatedImage animation: AnimatedImage {
parent: control.contentItem
width: parent.width
height: parent.height
playing: control.indeterminate
visible: control.indeterminate && !control.contentItem.hasMask
source: Imagine.url + "progressbar-animation"
AnimatedImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
readonly property NinePatchImage mask: NinePatchImage {
width: control.availableWidth
height: control.availableHeight
visible: false
source: Imagine.url + "progressbar-mask"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"indeterminate": control.indeterminate},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
readonly property OpacityMask effect: OpacityMask {
parent: control.contentItem
width: source.width
height: source.height
source: control.indeterminate ? control.contentItem.animation : control.contentItem.progress
maskSource: ShaderEffectSource {
sourceItem: control.contentItem.mask
sourceRect: Qt.rect(0, 0, control.contentItem.effect.width, control.contentItem.effect.height)
}
}
}
background: NinePatchImage {
source: Imagine.url + "progressbar-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"indeterminate": control.indeterminate},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,72 @@
// 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.Imagine
import QtQuick.Controls.Imagine.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)
spacing: 6 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
indicator: Image {
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
source: Imagine.url + "radiobutton-indicator"
ImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
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
}
background: NinePatchImage {
source: Imagine.url + "radiobutton-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -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.Imagine
import QtQuick.Controls.Imagine.impl
T.RadioDelegate {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
spacing: 12 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
icon.width: 24
icon.height: 24
indicator: Image {
x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
y: control.topPadding + (control.availableHeight - height) / 2
source: Imagine.url + "radiodelegate-indicator"
ImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
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
defaultIconColor: control.palette.text
text: control.text
font: control.font
color: defaultIconColor
}
background: NinePatchImage {
source: Imagine.url + "radiodelegate-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,105 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.RangeSlider {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
first.implicitHandleWidth + leftPadding + rightPadding,
second.implicitHandleWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
first.implicitHandleHeight + topPadding + bottomPadding,
second.implicitHandleHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
first.handle: Image {
x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
source: control.Imagine.url + "rangeslider-handle"
ImageSelector on source {
states: [
{"first": true},
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"pressed": control.first.pressed},
{"focused": control.first.handle?.activeFocus ?? false},
{"mirrored": control.mirrored},
{"hovered": control.first.hovered}
]
}
}
second.handle: Image {
x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
source: control.Imagine.url + "rangeslider-handle"
ImageSelector on source {
states: [
{"second": true},
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"pressed": control.second.pressed},
{"focused": control.second.handle?.activeFocus ?? false},
{"mirrored": control.mirrored},
{"hovered": control.second.hovered}
]
}
}
background: NinePatchImage {
scale: control.horizontal && control.mirrored ? -1 : 1
source: control.Imagine.url + "rangeslider-background"
NinePatchImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
NinePatchImage {
readonly property real handleWidth: control.first.handle ? control.first.handle.width : 0
readonly property real handleHeight: control.first.handle ? control.first.handle.height : 0
x: control.horizontal ? handleWidth / 2 + control.first.position * (parent.width - handleWidth) : (parent.width - width) / 2
y: control.horizontal ? (parent.height - height) / 2 : handleHeight / 2 + control.second.visualPosition * (parent.height - handleHeight)
width: control.horizontal ? control.second.position * (parent.width - handleWidth) - control.first.position * (parent.width - handleWidth) : parent.width
height: control.vertical ? control.second.position * (parent.height - handleHeight) - control.first.position * (parent.height - handleHeight): parent.height
source: control.Imagine.url + "rangeslider-progress"
NinePatchImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
}
@@ -0,0 +1,63 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.impl
T.RoundButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
icon.width: 24
icon.height: 24
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
defaultIconColor: control.enabled && control.flat && control.highlighted ? control.palette.highlight
: control.enabled && (control.down || control.checked || control.highlighted) && !control.flat
? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText
text: control.text
font: control.font
color: defaultIconColor
}
background: NinePatchImage {
// ### TODO: radius?
source: Imagine.url + "roundbutton-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"checkable": control.checkable},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"flat": control.flat},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,87 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.ScrollBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
visible: control.policy !== T.ScrollBar.AlwaysOff
minimumSize: orientation === Qt.Horizontal ? height / width : width / height
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
contentItem: NinePatchImage {
width: control.availableWidth
height: control.availableHeight
source: Imagine.url + "scrollbar-handle"
NinePatchImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"interactive": control.interactive},
{"pressed": control.pressed},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
opacity: 0.0
}
background: NinePatchImage {
source: Imagine.url + "scrollbar-background"
NinePatchImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"interactive": control.interactive},
{"pressed": control.pressed},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
opacity: 0.0
}
states: [
State {
name: "active"
when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
}
]
transitions: [
Transition {
to: "active"
NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 1.0 }
},
Transition {
from: "active"
SequentialAnimation {
PropertyAction{ targets: [control.contentItem, control.background]; property: "opacity"; value: 1.0 }
PauseAnimation { duration: 3000 }
NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 0.0 }
}
}
]
}
@@ -0,0 +1,79 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.ScrollIndicator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
contentItem: NinePatchImage {
width: control.availableWidth
height: control.availableHeight
source: Imagine.url + "scrollindicator-handle"
NinePatchImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
opacity: 0.0
}
background: NinePatchImage {
source: Imagine.url + "scrollindicator-background"
NinePatchImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
opacity: 0.0
}
states: [
State {
name: "active"
when: (control.active && control.size < 1.0)
}
]
transitions: [
Transition {
to: "active"
NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 1.0 }
},
Transition {
from: "active"
SequentialAnimation {
PauseAnimation { duration: 5000 }
NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 0.0 }
}
}
]
}
@@ -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.Imagine
import QtQuick.Controls.Imagine.impl
T.ScrollView {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
T.ScrollBar.vertical: ScrollBar {
parent: control
x: control.mirrored ? 0 : control.width - width
y: control.topPadding
height: control.availableHeight
active: control.T.ScrollBar.horizontal.active
}
T.ScrollBar.horizontal: ScrollBar {
parent: control
x: control.leftPadding
y: control.height - height
width: control.availableWidth
active: control.T.ScrollBar.vertical.active
}
background: NinePatchImage {
source: Imagine.path + "scrollview-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
}
@@ -0,0 +1,163 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.SearchField {
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,
searchIndicator.implicitIndicatorHeight, clearIndicator.implicitIndicatorHeight)
topPadding: background ? background.topPadding : 0
leftPadding: (background ? background.leftPadding : 0) + (control.mirrored ? __clearIndicatorWidth : __searchIndicatorWidth)
rightPadding: (background ? background.rightPadding : 0) + (control.mirrored ? __searchIndicatorWidth : __clearIndicatorWidth)
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
readonly property real __clearIndicatorWidth: !clearIndicator.indicator || !clearIndicator.indicator.visible
? 0 : clearIndicator.indicator.width
readonly property real __searchIndicatorWidth: !searchIndicator.indicator || !searchIndicator.indicator.visible
? 0 : searchIndicator.indicator.width
delegate: ItemDelegate {
width: ListView.view.width
text: model[control.textRole]
palette.text: control.palette.text
palette.highlightedText: control.palette.highlightedText
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: NinePatchImage {
x: control.mirrored ? control.width - width : 0
y: Math.round((control.height - height) / 2)
height: control.height
source: Imagine.url + "searchfield-indicator"
NinePatchImageSelector on source {
states: [
{"search": true},
{"disabled": !control.searchIndicator.indicator.enabled},
{"editable": !control.editable},
{"pressed": control.searchIndicator.pressed},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.searchIndicator.hovered}
]
}
}
clearIndicator.indicator: NinePatchImage {
x: control.mirrored ? 0 : control.width - width
y: Math.round((control.height - height) / 2)
height: control.height
visible: control.text.length > 0
source: Imagine.url + "searchfield-indicator"
NinePatchImageSelector on source {
states: [
{"clear": true},
{"disabled": !control.clearIndicator.indicator.enabled},
{"editable": !control.editable},
{"pressed": control.clearIndicator.pressed},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.clearIndicator.hovered}
]
}
}
contentItem: T.TextField {
z: 2
text: control.text
color: control.flat ? control.palette.windowText : control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
verticalAlignment: Text.AlignVCenter
ContextMenu.menu: TextEditingContextMenu {
editor: parent
}
}
background: NinePatchImage {
source: Imagine.url + "searchfield-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"editable": !control.editable},
{"focused": control.activeFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
popup: T.Popup {
y: control.height
width: control.width
height: Math.min(contentItem.implicitHeight, control.Window.height - control.y - control.height - control.padding)
topMargin: background.topInset
bottomMargin: background.bottomInset
topPadding: background.topPadding
leftPadding: background.leftPadding
rightPadding: background.rightPadding
bottomPadding: background.bottomPadding
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
palette.text: control.palette.text
palette.highlight: control.palette.highlight
palette.highlightedText: control.palette.highlightedText
palette.windowText: control.palette.windowText
palette.buttonText: control.palette.buttonText
contentItem: ListView {
clip: true
implicitHeight: contentHeight
model: control.delegateModel
currentIndex: control.highlightedIndex
highlightMoveDuration: 0
T.ScrollIndicator.vertical: ScrollIndicator { }
}
background: NinePatchImage {
source: Imagine.url + "searchfield-popup"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.pressed},
{"editable": control.editable},
{"focused": control.visualFocus || (control.editable && control.activeFocus)},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered},
{"flat": control.flat}
]
}
}
}
}
@@ -0,0 +1,44 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.SelectionRectangle {
id: control
topLeftHandle: handle
bottomRightHandle: handle
Component {
id: handle
Image {
id: image
source: Imagine.url + "slider-handle"
visible: SelectionRectangle.control.active
ImageSelector on source {
states: [
{"vertical": false},
{"horizontal": true},
{"disabled": false},
{"pressed": tapHandler.pressed || image.SelectionRectangle.dragging},
{"focused": true},
{"mirrored": false},
{"hovered": hoverHandler.hovered}
]
}
HoverHandler {
id: hoverHandler
}
TapHandler {
id: tapHandler
}
}
}
}
@@ -0,0 +1,91 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.Slider {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitHandleWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitHandleHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
handle: Image {
x: Math.round(control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2))
y: Math.round(control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)))
source: control.Imagine.url + "slider-handle"
ImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"pressed": control.pressed},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
background: NinePatchImage {
scale: control.horizontal && control.mirrored ? -1 : 1
source: control.Imagine.url + "slider-background"
NinePatchImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"pressed": control.down},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
NinePatchImage {
readonly property real handleWidth: control.handle ? control.handle.width : 0
readonly property real handleHeight: control.handle ? control.handle.height : 0
x: control.horizontal ? 0 : (parent.width - width) / 2
y: control.horizontal
? (parent.height - height) / 2
: handleHeight / 2 + control.visualPosition * (parent.height - handleHeight)
width: control.horizontal
? handleWidth / 2 + control.position * (parent.width - handleWidth)
: parent.width
height: control.vertical
? handleHeight / 2 + control.position * (parent.height - handleHeight)
: parent.height
source: control.Imagine.url + "slider-progress"
NinePatchImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"pressed": control.down},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
}
@@ -0,0 +1,123 @@
// 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.Imagine
import QtQuick.Controls.Imagine.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)
topPadding: background ? background.topPadding : 0
leftPadding: (background ? background.leftPadding : 0) + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
rightPadding: (background ? background.rightPadding : 0) + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 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
opacity: control.enabled ? 1 : 0.3
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
}
NinePatchImage {
z: -1
width: control.width
height: control.height
visible: control.editable
source: Imagine.url + "spinbox-editor"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"focused": control.activeFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
up.indicator: NinePatchImage {
x: control.mirrored ? 0 : control.width - width
height: control.height
source: Imagine.url + "spinbox-indicator"
NinePatchImageSelector on source {
states: [
{"up": true},
{"disabled": !control.up.indicator.enabled},
{"editable": control.editable},
{"pressed": control.up.pressed},
{"focused": control.activeFocus},
{"mirrored": control.mirrored},
{"hovered": control.up.hovered}
]
}
}
down.indicator: NinePatchImage {
x: control.mirrored ? control.width - width : 0
height: control.height
source: Imagine.url + "spinbox-indicator"
NinePatchImageSelector on source {
states: [
{"down": true},
{"disabled": !control.down.indicator.enabled},
{"editable": control.editable},
{"pressed": control.down.pressed},
{"focused": control.activeFocus},
{"mirrored": control.mirrored},
{"hovered": control.down.hovered}
]
}
}
background: NinePatchImage {
source: Imagine.url + "spinbox-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"editable": control.editable},
{"focused": control.activeFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,31 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.impl
T.SplitView {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
handle: NinePatchImage {
source: Imagine.url + "splitview-handle"
NinePatchImageSelector on source {
states: [
{"vertical": control.orientation === Qt.Vertical},
{"horizontal":control.orientation === Qt.Horizontal},
{"disabled": !control.enabled},
{"pressed": T.SplitHandle.pressed},
{"mirrored": control.mirrored},
{"hovered": T.SplitHandle.hovered}
]
}
}
}
@@ -0,0 +1,59 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.impl
T.StackView {
id: control
implicitWidth: implicitBackgroundWidth
implicitHeight: implicitBackgroundHeight
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
popEnter: Transition {
XAnimator { from: (control.mirrored ? -1 : 1) * -control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
}
popExit: Transition {
XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * control.width; duration: 400; easing.type: Easing.OutCubic }
}
pushEnter: Transition {
XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
}
pushExit: Transition {
XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic }
}
replaceEnter: Transition {
XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
}
replaceExit: Transition {
XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic }
}
background: NinePatchImage {
source: Imagine.url + "stackview-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
}
@@ -0,0 +1,63 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.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)
spacing: 12 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
icon.width: 24
icon.height: 24
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
defaultIconColor: control.palette.text
text: control.text
font: control.font
color: defaultIconColor
}
background: NinePatchImage {
source: Imagine.url + "swipedelegate-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,58 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.SwipeView {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
contentItem: ListView {
model: control.contentModel
interactive: control.interactive
currentIndex: control.currentIndex
focus: control.focus
spacing: control.spacing
orientation: control.orientation
snapMode: ListView.SnapOneItem
boundsBehavior: Flickable.StopAtBounds
highlightRangeMode: ListView.StrictlyEnforceRange
preferredHighlightBegin: 0
preferredHighlightEnd: 0
highlightMoveDuration: 250
}
background: NinePatchImage {
source: Imagine.url + "swipeview-background"
NinePatchImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"interactive": control.interactive},
{"focused": control.contentItem.activeFocus},
{"mirrored": control.mirrored}
]
}
}
}
@@ -0,0 +1,102 @@
// 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.Imagine
import QtQuick.Controls.Imagine.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)
spacing: 6 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
indicator: NinePatchImage {
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
width: Math.max(implicitWidth, handle.leftPadding && handle.rightPadding ? handle.implicitWidth : 2 * handle.implicitWidth)
height: Math.max(implicitHeight, handle.implicitHeight)
source: control.Imagine.url + "switch-indicator"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
property NinePatchImage handle: NinePatchImage {
readonly property real minPos: parent.leftPadding - leftPadding
readonly property real maxPos: parent.width - width + rightPadding - parent.rightPadding
readonly property real dragPos: control.visualPosition * parent.width - (width / 2)
parent: control.indicator
x: Math.max(minPos, Math.min(maxPos, control.visualPosition * parent.width - (width / 2)))
y: (parent.height - height) / 2
source: control.Imagine.url + "switch-handle"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
Behavior on x {
enabled: !control.down
SmoothedAnimation { velocity: 200 }
}
}
}
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
}
background: NinePatchImage {
source: control.Imagine.url + "switch-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,114 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.impl
T.SwitchDelegate {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
spacing: 12 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
icon.width: 24
icon.height: 24
indicator: NinePatchImage {
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
width: Math.max(implicitWidth, handle.leftPadding && handle.rightPadding ? handle.implicitWidth : 2 * handle.implicitWidth)
height: Math.max(implicitHeight, handle.implicitHeight)
source: control.Imagine.url + "switchdelegate-indicator"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
property NinePatchImage handle: NinePatchImage {
readonly property real minPos: parent.leftPadding - leftPadding
readonly property real maxPos: parent.width - width + rightPadding - parent.rightPadding
readonly property real dragPos: control.visualPosition * parent.width - (width / 2)
parent: control.indicator
x: Math.max(minPos, Math.min(maxPos, control.visualPosition * parent.width - (width / 2)))
y: (parent.height - height) / 2
source: control.Imagine.url + "switchdelegate-handle"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
Behavior on x {
enabled: !control.down
SmoothedAnimation { velocity: 200 }
}
}
}
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
defaultIconColor: control.palette.text
text: control.text
font: control.font
color: defaultIconColor
}
background: NinePatchImage {
source: control.Imagine.url + "switchdelegate-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,55 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.TabBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
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: 48
preferredHighlightEnd: width - 48
}
background: NinePatchImage {
source: Imagine.url + "tabbar-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"header": control.position === T.TabBar.Header },
{"footer": control.position === T.TabBar.Footer },
{"mirrored": control.mirrored}
]
}
}
}
@@ -0,0 +1,59 @@
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default
import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.impl
import QtQuick.Controls.Imagine
import QtQuick.Controls.Imagine.impl
T.TabButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
spacing: 6 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
icon.width: 24
icon.height: 24
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
defaultIconColor: control.palette.buttonText
text: control.text
font: control.font
color: defaultIconColor
}
background: NinePatchImage {
source: Imagine.url + "tabbutton-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,68 @@
// 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.Imagine
import QtQuick.Controls.Imagine.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)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
color: control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
verticalAlignment: Qt.AlignVCenter
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: NinePatchImage {
source: Imagine.url + "textarea-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"focused": control.activeFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -0,0 +1,67 @@
// 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.Imagine
import QtQuick.Controls.Imagine.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)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
color: control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
placeholderTextColor: control.palette.placeholderText
verticalAlignment: Qt.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: NinePatchImage {
source: Imagine.url + "textfield-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"focused": control.activeFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -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.Imagine
import QtQuick.Controls.Imagine.impl
T.ToolBar {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: SafeArea.margins.top + (background ? background.topPadding : 0)
leftPadding: SafeArea.margins.left + (background ? background.leftPadding : 0)
rightPadding: SafeArea.margins.right + (background ? background.rightPadding : 0)
bottomPadding: SafeArea.margins.bottom + (background ? background.bottomPadding : 0)
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
background: NinePatchImage {
source: Imagine.url + "toolbar-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"header": control.position === T.ToolBar.Header },
{"footer": control.position === T.ToolBar.Footer },
{"mirrored": control.mirrored}
]
}
}
}
@@ -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.Imagine
import QtQuick.Controls.Imagine.impl
T.ToolButton {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
spacing: 6 // ###
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
icon.width: 24
icon.height: 24
contentItem: IconLabel {
spacing: control.spacing
mirrored: control.mirrored
display: control.display
icon: control.icon
defaultIconColor: control.palette.buttonText
text: control.text
font: control.font
color: defaultIconColor
}
background: NinePatchImage {
source: Imagine.url + "toolbutton-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"pressed": control.down},
{"checked": control.checked},
{"checkable": control.checkable},
{"focused": control.visualFocus},
{"highlighted": control.highlighted},
{"flat": control.flat},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -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.Imagine
import QtQuick.Controls.Imagine.impl
T.ToolSeparator {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
contentItem: NinePatchImage {
source: Imagine.url + "toolseparator-separator"
NinePatchImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
background: NinePatchImage {
source: Imagine.url + "toolseparator-background"
NinePatchImageSelector on source {
states: [
{"vertical": control.vertical},
{"horizontal": control.horizontal},
{"disabled": !control.enabled},
{"mirrored": control.mirrored}
]
}
}
}
@@ -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.Imagine
import QtQuick.Controls.Imagine.impl
T.ToolTip {
id: control
x: parent ? (parent.width - implicitWidth) / 2 : 0 - (background ? background.leftInset : 0)
y: -implicitHeight - (background ? background.topInset : 0)
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topMargin: background ? background.topInset : 0
leftMargin: background ? background.leftInset : 0
rightMargin: background ? background.rightInset : 0
bottomMargin: background ? background.bottomInset : 0
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
bottomPadding: background ? background.bottomPadding : 0
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
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: NinePatchImage {
source: Imagine.url + "tooltip-background"
NinePatchImageSelector on source {
states: [
// ###
]
}
}
}
@@ -0,0 +1,66 @@
// 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.Imagine
import QtQuick.Controls.Imagine.impl
T.Tumbler {
id: control
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding)
topInset: background ? -background.topInset || 0 : 0
leftInset: background ? -background.leftInset || 0 : 0
rightInset: background ? -background.rightInset || 0 : 0
bottomInset: background ? -background.bottomInset || 0 : 0
readonly property real __delegateHeight: availableHeight / visibleItemCount
delegate: Text {
text: modelData
font: control.font
color: control.palette.text
opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
required property var modelData
required property int index
}
contentItem: TumblerView {
implicitWidth: 60
implicitHeight: 200
model: control.model
delegate: control.delegate
path: Path {
startX: control.contentItem.width / 2
startY: -control.__delegateHeight / 2
PathLine {
x: control.contentItem.width / 2
y: (control.visibleItemCount + 1) * control.__delegateHeight - control.__delegateHeight / 2
}
}
property real delegateHeight: control.availableHeight / control.visibleItemCount
}
background: NinePatchImage {
source: Imagine.url + "tumbler-background"
NinePatchImageSelector on source {
states: [
{"disabled": !control.enabled},
{"focused": control.visualFocus},
{"mirrored": control.mirrored},
{"hovered": control.enabled && control.hovered}
]
}
}
}
@@ -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,32 @@
// 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
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 {
border.color: "#e4e4e4"
color: "#f6f6f6"
}
contentItem: Label {
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
color: "#ff26282a"
text: control.model[control.headerView.textRole]
}
}
@@ -0,0 +1,36 @@
// 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
/*
A cross-graphics API implementation of QtGraphicalEffects' OpacityMask.
*/
Item {
id: rootItem
property variant source
property variant maskSource
property bool cached: false
ShaderEffectSource {
id: cacheItem
anchors.fill: parent
visible: rootItem.cached
smooth: true
sourceItem: shaderItem
live: true
hideSource: visible
}
ShaderEffect {
id: shaderItem
property variant source: rootItem.source
property variant maskSource: rootItem.maskSource
anchors.fill: parent
fragmentShader: "qrc:/qt-project.org/imports/QtQuick/Controls/Imagine/impl/shaders/OpacityMask.frag.qsb"
}
}
@@ -0,0 +1,8 @@
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 {}
@@ -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.impl
import QtQuick.Controls.Imagine
Menu {
id: menu
popupType: Qt.platform.pluginName !== "wayland" ? Popup.Window : Popup.Item
required property Item editor
UndoAction {
editor: menu.editor
}
RedoAction {
editor: menu.editor
}
MenuSeparator {}
CutAction {
editor: menu.editor
}
CopyAction {
editor: menu.editor
}
PasteAction {
editor: menu.editor
}
DeleteAction {
editor: menu.editor
}
MenuSeparator {}
SelectAllAction {
editor: menu.editor
}
}
@@ -0,0 +1,11 @@
module QtQuick.Controls.Imagine.impl
linktarget Qt6::qtquickcontrols2imaginestyleimplplugin
optional plugin qtquickcontrols2imaginestyleimplplugin
classname QtQuickControls2ImagineStyleImplPlugin
typeinfo QuickControls2ImagineStyleImpl.qmltypes
import QtQuick.Controls.impl auto
prefer :/qt-project.org/imports/QtQuick/Controls/Imagine/impl/
OpacityMask 6.0 OpacityMask.qml
TextEditingContextMenu 6.11 TextEditingContextMenu.qml
depends QtQuick
@@ -0,0 +1,52 @@
import QtQuick.tooling 1.2
// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by qmltyperegistrar.
Module {
Component {
file: "qquickattachedpropertypropagator.h"
lineNumber: 15
name: "QQuickAttachedPropertyPropagator"
accessSemantics: "reference"
prototype: "QObject"
}
Component {
file: "private/qquickimaginestyle_p.h"
lineNumber: 26
name: "QQuickImagineStyle"
accessSemantics: "reference"
prototype: "QQuickAttachedPropertyPropagator"
exports: [
"QtQuick.Controls.Imagine/Imagine 2.3",
"QtQuick.Controls.Imagine/Imagine 6.0"
]
isCreatable: false
exportMetaObjectRevisions: [515, 1536]
attachedType: "QQuickImagineStyle"
Property {
name: "path"
type: "QString"
read: "path"
write: "setPath"
reset: "resetPath"
notify: "pathChanged"
index: 0
lineNumber: 29
isFinal: true
}
Property {
name: "url"
type: "QUrl"
read: "url"
notify: "pathChanged"
index: 1
lineNumber: 30
isReadonly: true
isFinal: true
}
Signal { name: "pathChanged"; lineNumber: 50 }
}
}
@@ -0,0 +1,113 @@
module QtQuick.Controls.Imagine
linktarget Qt6::qtquickcontrols2imaginestyleplugin
plugin qtquickcontrols2imaginestyleplugin
classname QtQuickControls2ImagineStylePlugin
typeinfo plugins.qmltypes
import QtQuick.Controls.Basic auto
prefer :/qt-project.org/imports/QtQuick/Controls/Imagine/
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
MenuItem 6.0 MenuItem.qml
MenuItem 2.0 MenuItem.qml
MenuSeparator 2.1 MenuSeparator.qml
MenuSeparator 6.0 MenuSeparator.qml
PageIndicator 6.0 PageIndicator.qml
PageIndicator 2.0 PageIndicator.qml
Page 6.0 Page.qml
Page 2.0 Page.qml
Pane 6.0 Pane.qml
Pane 2.0 Pane.qml
Popup 6.0 Popup.qml
Popup 2.0 Popup.qml
ProgressBar 6.0 ProgressBar.qml
ProgressBar 2.0 ProgressBar.qml
RadioButton 6.0 RadioButton.qml
RadioButton 2.0 RadioButton.qml
RadioDelegate 6.0 RadioDelegate.qml
RadioDelegate 2.0 RadioDelegate.qml
RangeSlider 6.0 RangeSlider.qml
RangeSlider 2.0 RangeSlider.qml
RoundButton 2.1 RoundButton.qml
RoundButton 6.0 RoundButton.qml
ScrollView 6.0 ScrollView.qml
ScrollView 2.0 ScrollView.qml
ScrollBar 6.0 ScrollBar.qml
ScrollBar 2.0 ScrollBar.qml
ScrollIndicator 6.0 ScrollIndicator.qml
ScrollIndicator 2.0 ScrollIndicator.qml
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
StackView 6.0 StackView.qml
StackView 2.0 StackView.qml
SwipeDelegate 6.0 SwipeDelegate.qml
SwipeDelegate 2.0 SwipeDelegate.qml
SwipeView 6.0 SwipeView.qml
SwipeView 2.0 SwipeView.qml
Switch 6.0 Switch.qml
Switch 2.0 Switch.qml
SwitchDelegate 6.0 SwitchDelegate.qml
SwitchDelegate 2.0 SwitchDelegate.qml
TextField 6.0 TextField.qml
TextField 2.0 TextField.qml
TextArea 6.0 TextArea.qml
TextArea 2.0 TextArea.qml
TabBar 6.0 TabBar.qml
TabBar 2.0 TabBar.qml
TabButton 6.0 TabButton.qml
TabButton 2.0 TabButton.qml
ToolBar 6.0 ToolBar.qml
ToolBar 2.0 ToolBar.qml
ToolButton 6.0 ToolButton.qml
ToolButton 2.0 ToolButton.qml
ToolSeparator 2.1 ToolSeparator.qml
ToolSeparator 6.0 ToolSeparator.qml
ToolTip 6.0 ToolTip.qml
ToolTip 2.0 ToolTip.qml
Tumbler 6.0 Tumbler.qml
Tumbler 2.0 Tumbler.qml
VerticalHeaderView 2.15 VerticalHeaderView.qml
VerticalHeaderView 6.0 VerticalHeaderView.qml
VerticalHeaderViewDelegate 6.10 VerticalHeaderViewDelegate.qml
depends QtQuick