Unity 8
BrightnessControl.qml
1 /*
2  * Copyright (C) 2016 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.4
18 import Ubuntu.Components 1.3
19 import QMenuModel 0.1
20 import GlobalShortcut 1.0
21 
22 QtObject {
23  objectName: "brightnessControl"
24 
25  property GlobalShortcut brightnessUp: GlobalShortcut {
26  shortcut: Qt.Key_MonBrightnessUp
27  onTriggered: stepUp();
28  }
29 
30  property GlobalShortcut brightnessDown: GlobalShortcut {
31  shortcut: Qt.Key_MonBrightnessDown
32  onTriggered: stepDown();
33  }
34 
35  function stepUp() {
36  actionGroup.brightness.updateState(MathUtils.clamp(actionGroup.brightness.state + 0.1, 0.01, 1.0));
37  }
38 
39  function stepDown() {
40  actionGroup.brightness.updateState(MathUtils.clamp(actionGroup.brightness.state - 0.1, 0.01, 1.0));
41  }
42 
43  property QDBusActionGroup actionGroup: QDBusActionGroup {
44  busType: DBus.SessionBus
45  busName: "com.canonical.indicator.power"
46  objectPath: "/com/canonical/indicator/power"
47 
48  property variant brightness: action("brightness")
49 
50  Component.onCompleted: {
51  actionGroup.start();
52  }
53  }
54 }