~osomon/ubuntu-system-settings/autopkgtest

« back to all changes in this revision

Viewing changes to wizard/qml/Components/CheckableSetting.qml

  • Committer: CI bot
  • Author(s): Michael Terry
  • Date: 2014-12-02 19:39:44 UTC
  • mfrom: (1202.1.2 drop-wizard)
  • Revision ID: ps-jenkins@lists.canonical.com-20141202193944-iv7x24asrsor6tyi
Drop wizard code from ubuntu-system-settings, moving it to unity8. 
Approved by: Ken VanDine

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (C) 2014 Canonical, Ltd.
3
 
 *
4
 
 * This program is free software; you can redistribute it and/or modify
5
 
 * it under the terms of the GNU General Public License as published by
6
 
 * the Free Software Foundation; version 3.
7
 
 *
8
 
 * This program is distributed in the hope that it will be useful,
9
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
 
 * GNU General Public License for more details.
12
 
 *
13
 
 * You should have received a copy of the GNU General Public License
14
 
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
 
 */
16
 
 
17
 
import QtQuick 2.3
18
 
import QMenuModel 0.1
19
 
import Ubuntu.Components 1.1
20
 
import Ubuntu.Components.ListItems 1.0 as ListItem
21
 
 
22
 
ListItem.Empty {
23
 
    id: listItem
24
 
 
25
 
    property alias text: label.text
26
 
    property bool checked: false
27
 
    property real leftMargin
28
 
    property real rightMargin
29
 
 
30
 
    readonly property real labelOffset: label.x
31
 
 
32
 
    signal linkActivated(string link)
33
 
 
34
 
    implicitHeight: Math.max(label.height, checkBox.height)
35
 
 
36
 
    Item {
37
 
        anchors.fill: parent
38
 
 
39
 
        CheckBox {
40
 
            id: checkBox
41
 
 
42
 
            anchors {
43
 
                left: parent.left
44
 
                top: parent.top
45
 
                leftMargin: listItem.leftMargin
46
 
            }
47
 
 
48
 
            Component.onCompleted: {
49
 
                checked = listItem.checked;
50
 
            }
51
 
 
52
 
            onClicked: {
53
 
                listItem.checked = checked
54
 
                listItem.triggered(listItem.checked)
55
 
            }
56
 
 
57
 
            Connections {
58
 
                target: listItem
59
 
                onCheckedChanged: checkBox.checked = listItem.checked
60
 
            }
61
 
 
62
 
            Connections {
63
 
                target: listItem.__mouseArea
64
 
                onClicked: {
65
 
                    listItem.checked = !listItem.checked
66
 
                    listItem.triggered(listItem.checked)
67
 
                }
68
 
            }
69
 
        }
70
 
 
71
 
        Label {
72
 
            id: label
73
 
            anchors {
74
 
                left: checkBox.right
75
 
                right: parent.right
76
 
                verticalCenter: parent.verticalCenter
77
 
                leftMargin: units.gu(2)
78
 
                rightMargin: listItem.rightMargin
79
 
            }
80
 
            wrapMode: Text.Wrap
81
 
            linkColor: Theme.palette.normal.foregroundText
82
 
            onLinkActivated: listItem.linkActivated(link)
83
 
        }
84
 
    }
85
 
}