on xenial help sign in
hook up support for controlling backlight brightness
commitfa3e8580976cd16c6ad7ffe72aa83eff5869c9fc authorLukáš Tinkl <lukas.tinkl@canonical.com> dateMon 12 Sep 2016, 00:30 (10 years ago) parentef07a2f
3 files changed+57−5
plugins/Unity/Indicators/indicatorsmanager.cpp+1−4 qml/Components/BrightnessControl.qml+54 qml/Shell.qml+2−1
plugins/Unity/Indicators/indicatorsmanager.cpp+1−4
@@ -282,13 +282,10 @@ Indicator::Ptr IndicatorsManager::indicator(const QString& indicator_name)
282282 // convergence:
283283 // 1) enable session indicator
284284 // 2) enable keyboard indicator
285− // 3) on a PC, switch the battery/power indicator to desktop mode,
286− // can't control brightness for now and phone-on-desktop broken (FIXME)
287285 //
288286 // The rest of the indicators respect their default profile (which is "phone", even on desktop PCs)
289287 if ((new_indicator->identifier() == QStringLiteral("indicator-session"))
290− || new_indicator->identifier() == QStringLiteral("indicator-keyboard")
291− || (new_indicator->identifier() == QStringLiteral("indicator-power") && m_platform.isPC())) {
288+ || new_indicator->identifier() == QStringLiteral("indicator-keyboard")) {
292289 new_indicator->setProfile(QString(m_profile).replace(QStringLiteral("phone"), QStringLiteral("desktop")));
293290 } else {
294291 new_indicator->setProfile(m_profile);
qml/Components/BrightnessControl.qmlnew file+54
@@ -0,0 +1,54 @@
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+}
qml/Shell.qml+2−1
@@ -796,8 +796,9 @@ StyledItem {
796796 }
797797 }
798798
799− // non-visual object
799+ // non-visual objects
800800 KeymapSwitcher {}
801+ BrightnessControl {}
801802
802803 Rectangle {
803804 id: shutdownFadeOutRectangle