85 lines
2.7 KiB
QML
85 lines
2.7 KiB
QML
// Copyright (C) 2017 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
|
// Qt-Security score:significant reason:default
|
|
|
|
import QtQuick
|
|
import QtQuick.Templates as T
|
|
import QtQuick.Controls.impl
|
|
import QtQuick.Controls.Fusion
|
|
import QtQuick.Controls.Fusion.impl
|
|
|
|
T.ProgressBar {
|
|
id: control
|
|
|
|
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
|
|
implicitContentWidth + leftPadding + rightPadding)
|
|
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
|
|
implicitContentHeight + topPadding + bottomPadding)
|
|
|
|
contentItem: Item {
|
|
implicitWidth: 120
|
|
implicitHeight: 24
|
|
scale: control.mirrored ? -1 : 1
|
|
|
|
Rectangle {
|
|
height: parent.height
|
|
width: (control.indeterminate ? 1.0 : control.position) * parent.width
|
|
|
|
radius: 2
|
|
border.color: Fusion.highContrast ? Fusion.outline(control.palette) : Qt.darker(Fusion.highlight(control.palette), 1.4)
|
|
gradient: Gradient {
|
|
GradientStop {
|
|
position: 0
|
|
color: Qt.lighter(Fusion.highlight(control.palette), 1.2)
|
|
}
|
|
GradientStop {
|
|
position: 1
|
|
color: Fusion.highlight(control.palette)
|
|
}
|
|
}
|
|
}
|
|
|
|
Item {
|
|
x: 1; y: 1
|
|
width: parent.width - 2
|
|
height: parent.height - 2
|
|
visible: control.indeterminate
|
|
clip: true
|
|
|
|
ColorImage {
|
|
width: Math.ceil(parent.width / implicitWidth + 1) * implicitWidth
|
|
height: parent.height
|
|
|
|
mirror: control.mirrored
|
|
fillMode: Image.TileHorizontally
|
|
source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/progressmask.png"
|
|
color: Color.transparent(Qt.lighter(Fusion.highlight(control.palette), 1.2), 160 / 255)
|
|
|
|
visible: control.indeterminate
|
|
NumberAnimation on x {
|
|
running: control.indeterminate && control.visible
|
|
from: -31 // progressmask.png width
|
|
to: 0
|
|
loops: Animation.Infinite
|
|
duration: 750
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
background: Rectangle {
|
|
implicitWidth: 120
|
|
implicitHeight: 24
|
|
|
|
radius: 2
|
|
color: control.palette.base
|
|
border.color: Fusion.outline(control.palette)
|
|
|
|
Rectangle {
|
|
x: 1; y: 1; height: 1
|
|
width: parent.width - 2
|
|
color: Fusion.topShadow
|
|
}
|
|
}
|
|
}
|