blob: 36a83d87289fa8682b47d4f868171c73e3d5bcc8 (
plain)
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
|
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick
import QtQuick.Controls
Rectangle {
id: root
property int progress: 0
property url iconUrl: ""
property url pageUrl: ""
signal accepted(url addressUrl)
clip: true
onActiveFocusChanged: {
if (activeFocus)
addressField.forceActiveFocus();
}
Rectangle {
width: addressField.width / 100 * root.progress
height: root.height
visible: root.progress < 100
color: "#b6dca6"
radius: root.radius
}
TextField {
id: addressField
anchors.fill: parent
leftPadding: 30
background: Rectangle {
color: "transparent"
border.color: "black"
border.width: 1
radius: root.radius
}
Image {
anchors.verticalCenter: addressField.verticalCenter
x: 5; z: parent.z + 1
width: 16; height: 16
sourceSize: Qt.size(width, height)
source: root.iconUrl
visible: root.progress == 100
}
Text {
text: root.progress < 0 ? "" : root.progress + "%"
x: 5; z: parent.z + 1
font.bold: true
anchors.verticalCenter: parent.verticalCenter
visible: root.progress < 100
}
onActiveFocusChanged: {
if (activeFocus)
selectAll();
else
deselect();
}
text: root.pageUrl
onAccepted: root.accepted(utils.fromUserInput(text))
}
}
|