diff --git a/applets/CMakeLists.txt b/applets/CMakeLists.txt index ca6d9d10..124121ab 100644 --- a/applets/CMakeLists.txt +++ b/applets/CMakeLists.txt @@ -1,4 +1,5 @@ +plasma_install_package(brightnessSettings org.kde.phone.brightnesssettings) plasma_install_package(clock org.kde.phone.clock) plasma_install_package(notifications org.kde.phone.notifications) diff --git a/applets/brightnessSettings/Messages.sh b/applets/brightnessSettings/Messages.sh new file mode 100755 index 00000000..190b9492 --- /dev/null +++ b/applets/brightnessSettings/Messages.sh @@ -0,0 +1,4 @@ +#! /usr/bin/env bash +$EXTRACTRC `find . -name \*.rc -o -name \*.ui -o -name \*.kcfg` >> rc.cpp +$XGETTEXT `find . -name \*.js -o -name \*.qml -o -name \*.cpp` -o $podir/plasma_applet_org.kde.phone.brightnesssettings.pot +rm -f rc.cpp diff --git a/applets/brightnessSettings/contents/ui/main.qml b/applets/brightnessSettings/contents/ui/main.qml new file mode 100644 index 00000000..b114a942 --- /dev/null +++ b/applets/brightnessSettings/contents/ui/main.qml @@ -0,0 +1,56 @@ +/* + * Copyright 2015 Marco Martin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.1 +import QtQuick.Layouts 1.1 +import org.kde.plasma.core 2.0 as PlasmaCore +import org.kde.plasma.components 2.0 as PlasmaComponents +import org.kde.plasma.plasmoid 2.0 + +RowLayout { + id: root + spacing: units.smallSpacing + property int screenBrightness + readonly property int maximumScreenBrightness: pmSource.data["PowerDevil"] ? pmSource.data["PowerDevil"]["Maximum Screen Brightness"] || 0 : 0 + Plasmoid.preferredRepresentation: Plasmoid.fullRepresentation + + PlasmaCore.DataSource { + id: pmSource + engine: "powermanagement" + connectedSources: ["PowerDevil"] + + onDataChanged: { + root.screenBrightness = source.data["PowerDevil"]["Screen Brightness"]; + } + } + + PlasmaCore.IconItem { + colorGroup: PlasmaCore.ColorScope.colorGroup + Layout.minimumHeight: units.iconSizes.medium + Layout.minimumWidth: Layout.minimumHeight + source: plasmoid.icon + } + PlasmaComponents.Slider { + id: slider + Layout.fillWidth: true + value: screenBrightness + minimumValue: maximumValue > 100 ? 1 : 0 + maximumValue: root.maximumScreenBrightness + } +} diff --git a/applets/brightnessSettings/metadata.desktop b/applets/brightnessSettings/metadata.desktop new file mode 100644 index 00000000..58eb38b3 --- /dev/null +++ b/applets/brightnessSettings/metadata.desktop @@ -0,0 +1,21 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Brightness Settings + +Comment=Set Display brightness + +Icon=video-display-brightness +Type=Service +X-KDE-ParentApp= +X-KDE-PluginInfo-Author=Marco Martin +X-KDE-PluginInfo-Email=mart@kde.org +X-KDE-PluginInfo-License=GPL +X-KDE-PluginInfo-Name=org.kde.phone.brightnesssettings +X-KDE-PluginInfo-Version=1.0 +X-KDE-PluginInfo-Website=plasma.kde.org +X-KDE-ServiceTypes=Plasma/Applet +X-Plasma-API=declarativeappletscript +X-KDE-PluginInfo-Category=System + +X-Plasma-MainScript=ui/main.qml +X-Plasma-RemoteLocation= diff --git a/containments/panel/contents/ui/main.qml b/containments/panel/contents/ui/main.qml index a6e3a838..3829b7fb 100644 --- a/containments/panel/contents/ui/main.qml +++ b/containments/panel/contents/ui/main.qml @@ -145,7 +145,7 @@ PlasmaCore.ColorScope { root.expandedApplet = null; return; } - if (root.expandedApplet) { + if (root.expandedApplet && root.expandedApplet != applet) { root.expandedApplet.expanded = false; } root.expandedApplet = applet;