File: ProgressBar.qml

package info (click to toggle)
qflipper 1.3.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 12,320 kB
  • sloc: cpp: 18,500; sh: 247; ansic: 191; xml: 38; python: 14; makefile: 5
file content (89 lines) | stat: -rw-r--r-- 2,449 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import QtQuick 2.15
import QtQuick.Templates 2.15 as T
import QtQuick.Controls 2.15

import Theme 1.0
import Misc 1.0

T.ProgressBar {
    id: control

    implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
                            implicitContentWidth + leftPadding + rightPadding)
    implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
                             implicitContentHeight + topPadding + bottomPadding)

    contentItem: Item {
        id: content
        anchors.fill: parent
        anchors.margins: bg.border.width

        Text {
            id: brightText
            antialiasing: Mitigations.fontRenderingFix
            visible: !control.indeterminate
            color: Theme.color.lightorange2
            text:  Math.round(control.value) + "%"
            anchors.centerIn: parent

            font.pixelSize: 48
            font.family: "HaxrCorp 4089"
        }

        Text {
            id: animationText
            visible: control.indeterminate
            color: Theme.color.lightorange2
            anchors.centerIn: parent
            font.pixelSize: 48

            Timer {
                repeat: true
                running: control.indeterminate
                triggeredOnStart: true
                interval: 500

                onTriggered: {
                    if(animationText.text.length === 4) {
                        animationText.text = "."
                    } else {
                        animationText.text += "."
                    }
                }
            }
        }

        Rectangle {
            id: barFill
            clip: true
            visible: !control.indeterminate
            color: Theme.color.lightorange2
            width: visualPosition * parent.width
            height: parent.height

            Text {
                id: darkText

                x: brightText.x
                y: brightText.y

                width: brightText.width
                height: brightText.height

                color: Theme.color.darkorange1
                text: brightText.text
                font: brightText.font
                antialiasing: Mitigations.fontRenderingFix
            }
        }
    }

    background: Rectangle {
        id: bg
        anchors.fill: parent
        color: Theme.color.transparent
        border.color: Theme.color.lightorange2
        border.width: 3
        radius: 9
    }
}