blob: 9fe6da21f8855dd37373e9a0a861602120ebf053 (
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
|
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick 2.15
import QtQuick.Templates 2.15 as T
T.CheckBox {
id: control
implicitWidth: Math.max((background ? background.implicitWidth : 0) + leftInset + rightInset,
(contentItem ? contentItem.implicitWidth : 0) + leftPadding + rightPadding)
// TODO: https://bugreports.qt.io/browse/UL-783
// implicitHeight: Math.max((background ? background.implicitHeight : 0) + topInset + bottomInset,
// (contentItem ? contentItem.implicitHeight : 0) + topPadding + bottomPadding,
// (indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding)
implicitHeight: Math.max((background ? background.implicitHeight : 0) + topInset + bottomInset,
Math.max((contentItem ? contentItem.implicitHeight : 0) + topPadding + bottomPadding,
(indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding))
leftPadding: DefaultStyle.padding
rightPadding: DefaultStyle.padding
topPadding: DefaultStyle.padding
bottomPadding: DefaultStyle.padding
leftInset: DefaultStyle.inset
topInset: DefaultStyle.inset
rightInset: DefaultStyle.inset
bottomInset: DefaultStyle.inset
spacing: 10
indicator: Image {
x: control.leftPadding
y: control.topPadding + (control.availableHeight - height) / 2
source: !control.enabled
? "images/checkbox-disabled.png"
: (control.checkState == Qt.PartiallyChecked
? (control.down ? "images/checkbox-partially-checked-pressed.png" : "images/checkbox-partially-checked.png")
: (control.checkState == Qt.Checked
? (control.down ? "images/checkbox-checked-pressed.png" : "images/checkbox-checked.png")
: "images/checkbox.png"))
}
// Need a background for insets to work.
background: Item {
implicitWidth: 100
implicitHeight: 42
}
contentItem: Text {
text: control.text
font: control.font
color: control.enabled ? DefaultStyle.textColor : DefaultStyle.disabledTextColor
verticalAlignment: Text.AlignVCenter
leftPadding: control.indicator ? (control.indicator.width + control.spacing) : 0
}
}
|