From 44a2ab9c9f554b2456d4217cccfc14acbd41b62b Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sat, 16 Sep 2023 11:54:51 +0300 Subject: [PATCH] kdeplasma-addons: drop audioplayercontrol runner and nowplaying applet if the interfaces are not even introspectable (e.g. chromium) and borked then the follwing happens - I will simply say no, show them the middle finger and move on Signed-off-by: Ivailo Monev --- kdeplasma-addons/applets/CMakeLists.txt | 15 +- .../applets/nowplaying/CMakeLists.txt | 9 - .../applets/nowplaying/Messages.sh | 3 - .../package/contents/code/service.js | 23 -- .../package/contents/config/main.xml | 20 -- .../package/contents/ui/AlbumArt.qml | 70 ----- .../package/contents/ui/CompactLayout.qml | 100 ------ .../package/contents/ui/Controls.qml | 89 ------ .../package/contents/ui/FullLayout.qml | 96 ------ .../nowplaying/package/contents/ui/Label.qml | 29 -- .../package/contents/ui/MetadataLine.qml | 114 ------- .../package/contents/ui/MetadataPanel.qml | 87 ------ .../nowplaying/package/contents/ui/Mpris2.qml | 77 ----- .../package/contents/ui/PlayPauseButton.qml | 54 ---- .../package/contents/ui/PositionSlider.qml | 112 ------- .../package/contents/ui/VLayout.qml | 63 ---- .../nowplaying/package/contents/ui/config.ui | 51 ---- .../package/contents/ui/images/nocover.png | Bin 149560 -> 0 bytes .../package/contents/ui/nowplaying.qml | 47 --- .../nowplaying/package/metadata.desktop | 135 -------- kdeplasma-addons/runners/CMakeLists.txt | 1 - .../runners/audioplayercontrol/CMakeLists.txt | 24 -- .../runners/audioplayercontrol/Messages.sh | 3 - .../audioplayercontrolconfigkeys.h | 32 -- .../audioplayercontrolrunner.cpp | 277 ----------------- .../audioplayercontrolrunner.h | 114 ------- .../audioplayercontrolrunner_config.cpp | 133 -------- .../audioplayercontrolrunner_config.h | 52 ---- .../audioplayercontrolrunner_config.ui | 289 ------------------ .../plasma-runner-audioplayercontrol.desktop | 103 ------- ...a-runner-audioplayercontrol_config.desktop | 56 ---- 31 files changed, 7 insertions(+), 2271 deletions(-) delete mode 100644 kdeplasma-addons/applets/nowplaying/CMakeLists.txt delete mode 100755 kdeplasma-addons/applets/nowplaying/Messages.sh delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/code/service.js delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/config/main.xml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/AlbumArt.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/CompactLayout.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/Controls.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/FullLayout.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/Label.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/MetadataLine.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/MetadataPanel.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/Mpris2.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/PlayPauseButton.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/PositionSlider.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/VLayout.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/config.ui delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/images/nocover.png delete mode 100644 kdeplasma-addons/applets/nowplaying/package/contents/ui/nowplaying.qml delete mode 100644 kdeplasma-addons/applets/nowplaying/package/metadata.desktop delete mode 100644 kdeplasma-addons/runners/audioplayercontrol/CMakeLists.txt delete mode 100644 kdeplasma-addons/runners/audioplayercontrol/Messages.sh delete mode 100644 kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolconfigkeys.h delete mode 100644 kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner.cpp delete mode 100644 kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner.h delete mode 100644 kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.cpp delete mode 100644 kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.h delete mode 100644 kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.ui delete mode 100644 kdeplasma-addons/runners/audioplayercontrol/plasma-runner-audioplayercontrol.desktop delete mode 100644 kdeplasma-addons/runners/audioplayercontrol/plasma-runner-audioplayercontrol_config.desktop diff --git a/kdeplasma-addons/applets/CMakeLists.txt b/kdeplasma-addons/applets/CMakeLists.txt index 617ffa65..574236a9 100644 --- a/kdeplasma-addons/applets/CMakeLists.txt +++ b/kdeplasma-addons/applets/CMakeLists.txt @@ -16,7 +16,6 @@ add_subdirectory(life) add_subdirectory(luna) add_subdirectory(magnifique) add_subdirectory(notes) -add_subdirectory(nowplaying) add_subdirectory(spellcheck) add_subdirectory(timer) add_subdirectory(eyes) @@ -29,12 +28,12 @@ add_subdirectory(paste) add_subdirectory(systemloadviewer) if(KDE4WORKSPACE_FOUND) - add_subdirectory(binary-clock) - add_subdirectory(fuzzy-clock) - add_subdirectory(weather) - add_subdirectory(icontasks) -endif(KDE4WORKSPACE_FOUND) + add_subdirectory(binary-clock) + add_subdirectory(fuzzy-clock) + add_subdirectory(weather) + add_subdirectory(icontasks) +endif() -if ( QALCULATE_FOUND ) +if (QALCULATE_FOUND) add_subdirectory(qalculate) -endif( QALCULATE_FOUND ) +endif() diff --git a/kdeplasma-addons/applets/nowplaying/CMakeLists.txt b/kdeplasma-addons/applets/nowplaying/CMakeLists.txt deleted file mode 100644 index 60e062b7..00000000 --- a/kdeplasma-addons/applets/nowplaying/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -project(nowplaying) - -install(DIRECTORY package/ - DESTINATION ${KDE4_DATA_INSTALL_DIR}/plasma/plasmoids/nowplaying) - -install(FILES package/metadata.desktop - DESTINATION ${KDE4_SERVICES_INSTALL_DIR} - RENAME plasma-applet-nowplaying.desktop) - diff --git a/kdeplasma-addons/applets/nowplaying/Messages.sh b/kdeplasma-addons/applets/nowplaying/Messages.sh deleted file mode 100755 index 00923570..00000000 --- a/kdeplasma-addons/applets/nowplaying/Messages.sh +++ /dev/null @@ -1,3 +0,0 @@ -#! /usr/bin/env bash -$EXTRACTRC `find . -name \*.ui` >> rc.cpp || exit 11 -$XGETTEXT *.cpp -o `find . -name \*.qml` -o $podir/plasma_applet_nowplaying.pot diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/code/service.js b/kdeplasma-addons/applets/nowplaying/package/contents/code/service.js deleted file mode 100644 index 8ffd12ec..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/code/service.js +++ /dev/null @@ -1,23 +0,0 @@ -.pragma library - -var control = service("mpris2", "@multiplex"); - -function associateItem(item, name) -{ - control.associateItem(item, name); -} - -function callCommand(name) -{ - control.startOperationCall(name, control.operationParameters(name)); -} - -function seek(timeMs) -{ - var desc = control.operationParameters('SetPosition'); - desc["microseconds"] = Math.floor(timeMs * 1000); - print("Seeking to " + timeMs + "ms"); - control.startOperationCall('SetPosition', desc); -} - -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/config/main.xml b/kdeplasma-addons/applets/nowplaying/package/contents/config/main.xml deleted file mode 100644 index 210f22df..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/config/main.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - true - - - true - - - true - - - - diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/AlbumArt.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/AlbumArt.qml deleted file mode 100644 index 975be5d6..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/AlbumArt.qml +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * 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 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 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.components 0.1 as PlasmaComponents - -Item { - id: root - property Mpris2 source; - - implicitWidth: { - if (realArt.visible) { - realArt.implicitWidth; - } else if (logoArtItem.visible) { - logoArtItem.implicitWidth - } else { - noArtItem.implicitWidth - } - } - implicitHeight: { - if (realArt.visible) { - realArt.implicitHeight; - } else if (logoArtItem.visible) { - logoArtItem.implicitHeight - } else { - noArtItem.implicitHeight - } - } - - - Image { - id: noArtItem - anchors.fill: parent - fillMode: Image.PreserveAspectFit - visible: !realArt.visible && !logoArtItem.visible - source: "images/nocover.png" - } - PlasmaCore.IconItem { - id: logoArtItem - anchors.fill: parent - visible: !realArt.visible && root.source.logo != '' - source: root.source.logo - } - Image { - id: realArt - anchors.fill: parent - fillMode: Image.PreserveAspectFit - visible: (status == Image.Ready) - source: root.source.artUrl - } -} - -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/CompactLayout.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/CompactLayout.qml deleted file mode 100644 index 4e3e05c1..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/CompactLayout.qml +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * 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 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 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.components 0.1 as PlasmaComponents - -Item { - id: root - - property int minimumWidth: minimumHeight + 120 - property int minimumHeight: metadataLine.implicitHeight + progressBar.height + metadataLine.anchors.bottomMargin - - Component.onCompleted: { - plasmoid.addEventListener('ConfigChanged', function(){ - albumArt.visible = plasmoid.readConfig("displayCover"); - }); - } - - Mpris2 { - id: source - } - - MouseArea { - id: mouseArea - hoverEnabled: true - anchors.fill: parent - - AlbumArt { - id: albumArt - source: source - anchors { - top: parent.top - left: parent.left - bottom: parent.bottom - } - width: (visible ? height : 0) - } - - MetadataLine { - id: metadataLine - anchors { - top: parent.top - left: albumArt.right - leftMargin: 2 - right: parent.right - bottom: progressBar.top - bottomMargin: 3 - } - interval: 5000 - source: source - } - - PositionSlider { - id: progressBar - anchors { - bottom: parent.bottom - left: albumArt.right - leftMargin: 2 - right: parent.right - } - height: 5 - source: source - } - - PlayPauseButton { - id: ppButton - visible: albumArt.visible && source.canControl && mouseArea.containsMouse - width: height - anchors { - // using anchors.fill causes spurious - // "Possible anchor loop detected on fill" - // warnings - top: albumArt.top - bottom: albumArt.bottom - left: albumArt.left - right: albumArt.right - } - source: source - } - } -} - -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/Controls.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/Controls.qml deleted file mode 100644 index 6c2bc82e..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/Controls.qml +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * 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 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 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.components 0.1 as PlasmaComponents -import "../code/service.js" as Control - -Row { - id: root - - property int controlSize: theme.largeIconSize; - - property Mpris2 source; - - PlasmaCore.Theme { - id: theme - } - PlasmaComponents.ToolButton { - width: controlSize - height: controlSize - id: prevButton - iconSource: "media-skip-backward" - onClicked: { - Control.callCommand('Previous'); - } - Component.onCompleted: { - Control.associateItem(prevButton, 'Previous'); - } - } - PlasmaComponents.ToolButton { - width: controlSize - height: controlSize - id: playPauseButton - property string operation: (source.playbackStatus == 'Playing' ? 'Pause' : 'Play') - iconSource: (source.playbackStatus == 'Playing' ? "media-playback-pause" : "media-playback-start") - onClicked: { - Control.callCommand(operation); - } - Component.onCompleted: { - Control.associateItem(playPauseButton, operation); - } - onOperationChanged: { - Control.associateItem(playPauseButton, operation); - } - } - PlasmaComponents.ToolButton { - width: controlSize - height: controlSize - id: stopButton - iconSource: "media-playback-stop" - onClicked: { - Control.callCommand('Stop'); - } - Component.onCompleted: { - Control.associateItem(stopButton, 'Stop'); - } - } - PlasmaComponents.ToolButton { - width: controlSize - height: controlSize - id: nextButton - iconSource: "media-skip-forward" - onClicked: { - Control.callCommand('Next'); - } - Component.onCompleted: { - Control.associateItem(nextButton, 'Next'); - } - } -} - -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/FullLayout.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/FullLayout.qml deleted file mode 100644 index c559b164..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/FullLayout.qml +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * 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 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 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.components 0.1 as PlasmaComponents - -Item { - id: root - - property int minimumWidth: albumArt.width + controls.anchors.leftMargin + controls.implicitWidth + 25 - property int minimumHeight: metadataPane.implicitHeight + progressBar.height + metadataPane.anchors.bottomMargin + 75 - - Component.onCompleted: { - plasmoid.addEventListener('ConfigChanged', function(){ - albumArt.visible = plasmoid.readConfig("displayCover"); - }); - } - - Mpris2 { - id: source - } - - MouseArea { - id: mouseArea - hoverEnabled: true - anchors.fill: parent - - AlbumArt { - id: albumArt - source: source - anchors { - top: parent.top - left: parent.left - bottom: progressBar.top - margins: 10 - } - width: (visible ? height : 0) - } - - MetadataPanel { - id: metadataPane - anchors { - top: parent.top - left: albumArt.right - leftMargin: 10 - right: parent.right - bottom: progressBar.top - bottomMargin: 5 - } - source: source - } - - PositionSlider { - id: progressBar - anchors { - bottom: parent.bottom - left: parent.left - right: parent.right - margins: 10 - } - height: 15 - source: source - } - - Controls { - id: controls - visible: source.canControl && mouseArea.containsMouse - anchors { - bottom: metadataPane.bottom - left: metadataPane.left - leftMargin: metadataPane.contentLeftOffset - right: parent.right - } - source: source - } - } -} - -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/Label.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/Label.qml deleted file mode 100644 index c85a9cd8..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/Label.qml +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * 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 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 1.1 -import org.kde.plasma.components 0.1 as PlasmaComponents - -PlasmaComponents.Label { - id: root - - // TODO: make excess text scroll back and forth - elide: Text.ElideMiddle -} -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/MetadataLine.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/MetadataLine.qml deleted file mode 100644 index 31d303d9..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/MetadataLine.qml +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * 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 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 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.components 0.1 as PlasmaComponents - -Item { - id: root - - property alias interval: timer.interval - property Mpris2 source - property bool showArtist: true - property bool showAlbum: true - - implicitWidth: metadataLine.implicitWidth - implicitHeight: metadataLine.implicitHeight - - Component.onCompleted: { - plasmoid.addEventListener('ConfigChanged', function(){ - showArtist = plasmoid.readConfig("displayArtist"); - showAlbum = plasmoid.readConfig("displayAlbum"); - }); - } - - onSourceChanged: { - if (source) { - source.titleChanged.connect(function() { - if (metadataLine.step == 0) - metadataLine.updateText(); - }); - source.artistChanged.connect(function() { - if (metadataLine.step == 1) - metadataLine.updateText(); - }); - source.albumChanged.connect(function() { - if (metadataLine.step == 2) - metadataLine.updateText(); - }); - } - } - - Label { - id: metadataLine - anchors { - // using this instead of parent.fill prevents spurious - // "possible anchor loop detected on fill" warnings - left: parent.left - right: parent.right - top: parent.top - bottom: parent.bottom - } - property int step: 0; - text: source.title - //fade-out and -in on text change - Behavior on text { - SequentialAnimation { - NumberAnimation { target: metadataLine; property: "opacity"; to: 0 } - //needs to be here, otherwise the text changes first and fades to itself - PropertyAction {} - NumberAnimation { target: metadataLine; property: "opacity"; to: 1 } - } - } - function updateText() { - var newText = source.title; - if (metadataLine.step == 1) { - if (showArtist && source.artist != '') { - newText = i18nc("What artist is this track by", "by %1", source.artist); - } else { - metadataLine.step = 2; - } - } - if (metadataLine.step == 2) { - if (showAlbum && source.album != '') { - newText = i18nc("What album is this track on", "on %1", source.album); - } else { - metadataLine.step = 0; - } - } - // prevent fading the text if it hasn't changed - if (text != newText) { - text = newText; - } - } - Timer { - id: timer - running: true - interval: 5000 - repeat: true - onTriggered: { - metadataLine.step = (metadataLine.step + 1) % 3; - metadataLine.updateText(); - } - } - } -} - -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/MetadataPanel.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/MetadataPanel.qml deleted file mode 100644 index 510abcee..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/MetadataPanel.qml +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * 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 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 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.components 0.1 as PlasmaComponents - -Item { - id: root - - property Mpris2 source - property int contentLeftOffset: 3 - property bool showArtist: true - property bool showAlbum: true - - implicitHeight: childrenRect.height - implicitWidth: contentLeftOffset + Math.max(Math.max(titleLabel.implicitWidth, artistLabel.implicitWidth), albumLabel.implicitWidth) - height: childrenRect.height - - Component.onCompleted: { - plasmoid.addEventListener('ConfigChanged', function(){ - showArtist = plasmoid.readConfig("displayArtist"); - showAlbum = plasmoid.readConfig("displayAlbum"); - }); - } - - function getLabelSize(weight) - { - return (parent.height + (parent.width /6)) / weight; - } - Label { - id: titleLabel - anchors { - top: parent.top - left: parent.left - leftMargin: contentLeftOffset - topMargin: 10 - right: parent.right - } - font.weight: Font.Bold - font.pointSize: getLabelSize(16) - text: source.title - } - Label { - id: artistLabel - font.pointSize: getLabelSize(18) - anchors { - top: titleLabel.bottom - left: parent.left - leftMargin: contentLeftOffset - right: parent.right - } - visible: showArtist && text != '' - text: source.artist - } - Label { - id: albumLabel - - font.pointSize: getLabelSize(18) - anchors { - top: artistLabel.visible ? artistLabel.bottom : titleLabel.bottom - left: parent.left - leftMargin: contentLeftOffset - right: parent.right - } - visible: showAlbum && text != '' - text: source.album - } -} - -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/Mpris2.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/Mpris2.qml deleted file mode 100644 index d9ce4345..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/Mpris2.qml +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * 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 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 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore - -PlasmaCore.DataSource { - id: source - engine: "mpris2" - connectedSources: Array("@multiplex") - interval: 0 - property bool hasMetadata: getHasMetadata() - property string title: getMetadata("xesam:title", '') - property string artist: getMetadata("xesam:artist", []).join(", ") - property string album: getMetadata("xesam:album", '') - property url artUrl: getMetadata("mpris:artUrl", '') - property string playbackStatus: getHasData() ? data["@multiplex"]["PlaybackStatus"] : 'unknown' - property bool canControl: getHasData() && data["@multiplex"]["CanControl"] - property int trackLength: getMetadata("mpris:length", 0) / 1000 - property string logo: getHasIcon() ? data["@multiplex"]["Desktop Icon Name"] : '' - - function getHasIcon() { - return data["@multiplex"] != undefined - && data["@multiplex"]["Desktop Icon Name"] != undefined; - } - - function getHasData() { - return data["@multiplex"] != undefined - && data["@multiplex"]["PlaybackStatus"] != undefined; - } - - function getHasMetadata() { - return data["@multiplex"] != undefined - && data["@multiplex"]["Metadata"] != undefined - && data["@multiplex"]["Metadata"]["mpris:trackid"] != undefined; - } - - function getMetadata(entry, def) { - if (hasMetadata && data["@multiplex"]["Metadata"][entry] != undefined) - return data["@multiplex"]["Metadata"][entry]; - else - return def; - } - - function currentPos() { - if (!getHasData()) - return 0; - var pos = data["@multiplex"]["Position"] / 1000; - var pbStatus = data["@multiplex"]["PlaybackStatus"]; - if (pbStatus == "Playing") { - var lastUpd = data["@multiplex"]["Position last updated (UTC)"]; - var diffMs = Date.now() - lastUpd.getTime(); - var rate = data["@multiplex"]["Rate"]; - return pos + (diffMs * rate); - } else { - return pos; - } - } -} - -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/PlayPauseButton.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/PlayPauseButton.qml deleted file mode 100644 index eb2fbbdc..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/PlayPauseButton.qml +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * 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 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 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.components 0.1 as PlasmaComponents -import "../code/service.js" as Control - -Item { - id: root - - property Mpris2 source; - implicitWidth: playPauseButton.implicitWidth; - implicitHeight: playPauseButton.implicitHeight; - - PlasmaComponents.ToolButton { - id: playPauseButton - anchors { - top: parent.top - bottom: parent.bottom - left: parent.left - right: parent.right - } - property string operation: (source.playbackStatus == 'Playing' ? 'Pause' : 'Play') - iconSource: (source.playbackStatus == 'Playing' ? "media-playback-pause" : "media-playback-start") - onClicked: { - Control.callCommand(operation); - } - Component.onCompleted: { - Control.associateItem(playPauseButton, operation); - } - onOperationChanged: { - Control.associateItem(playPauseButton, operation); - } - } -} - -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/PositionSlider.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/PositionSlider.qml deleted file mode 100644 index e7f57672..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/PositionSlider.qml +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * Code taken from PlasmaComponents.ProgressBar: - * Copyright 2011 Daker Fernandes Pinheiro - * - * 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 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 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.components 0.1 as PlasmaComponents -import org.kde.qtextracomponents 0.1 -import "../code/service.js" as Control - -Item { - id: root - property Mpris2 source - property int orientation: Qt.Horizontal - - implicitHeight: 10 - implicitWidth: 100 - - onSourceChanged: { - if (source) { - source.dataChanged.connect(function() { - range.update(); - }); - } - } - - PlasmaCore.Theme { - id: theme - } - - Timer { - id: updateTimer - - interval: 500 - running: source.playbackStatus == 'Playing' - repeat: true - onTriggered: { - range.update(); - } - } - PlasmaComponents.RangeModel { - id: range - - // default values - minimumValue: 0.0 - maximumValue: source.trackLength - value: 0 - function update() { - value = source.currentPos(); - } - - positionAtMinimum: 0 - positionAtMaximum: contents.width - } - - Rectangle { - id: contents - - property bool _isVertical: orientation == Qt.Vertical - - width: _isVertical ? root.height : root.width - height: _isVertical ? root.width : root.height - rotation: _isVertical ? 90 : 0 - anchors.centerIn: parent - - Rectangle { - id: barBg - anchors.fill: parent - color: theme.highlightColor - opacity: 0.4 - } - Rectangle { - id: bar - anchors { - left: parent.left - top: parent.top - bottom: parent.bottom - } - color: theme.highlightColor - visible: range.position > 0 - width: range.position - } - MouseArea { - id: seekArea - anchors.fill: parent - onClicked: { - var x = mouse.x; - Control.seek(range.valueForPosition(x)); - } - } - } -} - -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/VLayout.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/VLayout.qml deleted file mode 100644 index 1e37b7f1..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/VLayout.qml +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * 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 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 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.components 0.1 as PlasmaComponents - -Item { - id: root - - property int minimumWidth: 16 - property int minimumHeight: 16 - - Mpris2 { - id: source - } - - Component.onCompleted: { - plasmoid.addEventListener('ConfigChanged', function(){ - albumArt.visible = plasmoid.readConfig("displayCover"); - }); - } - - MouseArea { - id: mouseArea - hoverEnabled: true - anchors.fill: parent - - AlbumArt { - id: albumArt - source: source - anchors.fill: parent - } - - PlayPauseButton { - id: ppButton - visible: (!albumArt.visible) || (source.canControl && mouseArea.containsMouse) - anchors { - verticalCenter: parent.verticalCenter - horizontalCenter: parent.horizontalCenter - } - source: source - } - } -} - -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/config.ui b/kdeplasma-addons/applets/nowplaying/package/contents/ui/config.ui deleted file mode 100644 index 15747d09..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/config.ui +++ /dev/null @@ -1,51 +0,0 @@ - - - nowplayingConfig - - - - 0 - 0 - 193 - 86 - - - - - - - Display cover - - - - - - - Display artist - - - - - - - Display album - - - - - - - Qt::Vertical - - - - 20 - 3 - - - - - - - - diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/images/nocover.png b/kdeplasma-addons/applets/nowplaying/package/contents/ui/images/nocover.png deleted file mode 100644 index 0b8e7ec16eb3a6da6be1bea07db62a720e94eb47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149560 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

(*{yLCOwZEr+DxRc#_2O3E6Q>G@ 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%0AHO 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 Lbk(a=ZNmN!6xvLl diff --git a/kdeplasma-addons/applets/nowplaying/package/contents/ui/nowplaying.qml b/kdeplasma-addons/applets/nowplaying/package/contents/ui/nowplaying.qml deleted file mode 100644 index 6f995d7e..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/contents/ui/nowplaying.qml +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2012 Alex Merry - * - * 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 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 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.components 0.1 as PlasmaComponents - -Item { - id: root - - property int minimumWidth: l.item.minimumWidth - property int minimumHeight: l.item.minimumHeight - - Loader { - id: l - source: { - if (plasmoid.formFactor == Planar || plasmoid.formFactor == MediaCenter) - "FullLayout.qml" - else if (plasmoid.formFactor == Horizontal) - "CompactLayout.qml" - else - "VLayout.qml" - } - anchors.fill: parent - } - - Component.onCompleted: { - plasmoid.aspectRatioMode = plasmoid.IgnoreAspectRatio; - } -} -// vi:sts=4:sw=4:et diff --git a/kdeplasma-addons/applets/nowplaying/package/metadata.desktop b/kdeplasma-addons/applets/nowplaying/package/metadata.desktop deleted file mode 100644 index d1fc8840..00000000 --- a/kdeplasma-addons/applets/nowplaying/package/metadata.desktop +++ /dev/null @@ -1,135 +0,0 @@ -[Desktop Entry] -Name=Now Playing -Name[ar]=المشغل الآن -Name[ast]=Sonando agora... -Name[bs]=Trenutno izvođenje -Name[ca]=Ara s'està escoltant -Name[ca@valencia]=Ara s'està escoltant -Name[cs]=Nyní se hraje -Name[da]=Nu spilles -Name[de]=Musiktitel-Anzeige -Name[el]=Τρέχουσα αναπαραγωγή -Name[en_GB]=Now Playing -Name[eo]=Nun legas -Name[es]=Ahora suena -Name[et]=Praegu esitamisel -Name[eu]=Orain jotzen -Name[fi]=Nyt soi -Name[fr]=En lecture -Name[ga]=Á Sheinm Anois -Name[gl]=Estase a reproducir -Name[he]=מנגן עכשיו -Name[hr]=Trenutno svira -Name[hu]=Most játszott -Name[is]=Nú í spilun -Name[it]=In riproduzione -Name[ja]=今聴いているもの -Name[kk]=Ойнап жатқаны -Name[km]=កំពុង​ចាក់ -Name[ko]=지금 재생 중 -Name[ku]=Niha Lêdide -Name[lt]=Dabar grojama -Name[lv]=Šobrīd atskaņo -Name[mr]=आता प्ले करत आहे -Name[nb]=Spiller nå -Name[nds]=Lopen Stück -Name[nl]=Speelt nu -Name[nn]=Spelar no -Name[oc]=Novèla tièra de lecturas -Name[pa]=ਹੁਣ ਚੱਲ ਰਿਹਾ ਹੈ -Name[pl]=Teraz odtwarzane -Name[pt]=Agora a Tocar -Name[pt_BR]=Reproduzindo agora -Name[ro]=În redare -Name[ru]=Сейчас играет -Name[sk]=Teraz hrá -Name[sl]=Trenutno se predvaja -Name[sr]=тренутна свирка -Name[sr@ijekavian]=тренутна свирка -Name[sr@ijekavianlatin]=trenutna svirka -Name[sr@latin]=trenutna svirka -Name[sv]=Spelar nu -Name[th]=สื่อที่กำลังเล่นอยู่ -Name[tr]=Şimdi Çalınıyor -Name[ug]=قويۇۋاتىدۇ -Name[uk]=Зараз відтворюється -Name[wa]=Djouwé asteure -Name[x-test]=xxNow Playingxx -Name[zh_CN]=现在收听 -Name[zh_TW]=現正播放 - -Comment=Displays currently playing audio -Comment[ar]=أظهر الملفات الصوتية التي تعمل حاليا -Comment[ast]=Amuesa l'audio que se ta reproduciendo nesti intre -Comment[bs]=Prikazuje trenutno emitovani zvuk. -Comment[ca]=Mostra la reproducció d'àudio actual -Comment[ca@valencia]=Mostra la reproducció d'àudio actual -Comment[cs]=Zobrazení informací o právě přehrávaných skladbách -Comment[da]=Viser musikken som aktuelt afspilles. -Comment[de]=Den derzeit laufenden Musiktitel anzeigen -Comment[el]=Εμφάνιση κομματιού που αναπαράγεται αυτή τη στιγμή -Comment[en_GB]=Displays currently playing audio -Comment[es]=Muestra el audio que se está reproduciendo actualmente -Comment[et]=Näitab parajasti mängitavat muusikat -Comment[eu]=Bistaratu unean jotzen ari den audioa -Comment[fi]=Näyttää tällä hetkellä soivan kappaleen -Comment[fr]=Montre les éléments en cours de lecture -Comment[ga]=Taispeáin an ceol á sheinm anois -Comment[gl]=Mostra o son que se está a reproducir -Comment[he]=מציג את השיר המושמע עכשיו -Comment[hr]=Prikazuje zvučni zapis koji trenutno traje -Comment[hu]=A jelenleg hallgatott szám megjelenítése -Comment[is]=Sýnir hljóð í spilun -Comment[it]=Mostra l'audio in riproduzione -Comment[ja]=今聴いている音楽を表示します -Comment[kk]=Қазір орындалып жатқан аудио туралы мәлімет -Comment[km]=បង្ហាញ​អូឌីយ៉ូ​ដែល​កំពុង​ចាក់​បច្ចុប្បន្ន -Comment[ko]=지금 재생 중인 곡 표시 -Comment[ku]=Strana lêdide nîşan bide -Comment[lt]=Rodo šiuo metu grojamą garsą -Comment[lv]=Parāda šobrīd atskaņoto skaņdarbu -Comment[mr]=सध्या प्ले करत असलेला ऑडिओ दर्शवितो -Comment[nb]=Vis lyd som spilles nå -Comment[nds]=Wiest opstunns afspeelt Stücken -Comment[nl]=Toont de momenteel spelende audio -Comment[nn]=Vis musikken som vert spelt -Comment[pa]=ਹੁਣ ਚੱਲ ਰਿਹਾ ਆਡੀਓ ਵੇਖੋ -Comment[pl]=Wyświetla aktualnie odtwarzany utwór -Comment[pt]=Mostra o áudio actualmente em reprodução -Comment[pt_BR]=Mostra a música que está sendo reproduzida -Comment[ro]=Afișează cîntecul redat la moment -Comment[ru]=Показывает воспроизводимую в данный момент музыку -Comment[sk]=Zobrazuje aktuálne prehrávanú skladbu -Comment[sl]=Prikaz skladbe, ki se trenutno predvaja -Comment[sr]=Која се то музика управо пушта? -Comment[sr@ijekavian]=Која се то музика управо пушта? -Comment[sr@ijekavianlatin]=Koja se to muzika upravo pušta? -Comment[sr@latin]=Koja se to muzika upravo pušta? -Comment[sv]=Visar musik som för närvarande spelas -Comment[th]=แสดงสื่อเสียงที่กำลังเล่นอยู่ในปัจจุบัน -Comment[tr]=O anda çalınan sesi gösterir -Comment[uk]=Показує інформацію про аудіо, що відтворюється -Comment[wa]=Håynêye l' odio djouwé pol moumint -Comment[x-test]=xxDisplays currently playing audioxx -Comment[zh_CN]=显示正在收听的音乐 -Comment[zh_TW]=顯示目前播放的音樂 - -Icon=applications-multimedia -Type=Service -X-KDE-ServiceTypes=Plasma/Applet - -X-Plasma-API=declarativeappletscript -X-Plasma-MainScript=ui/nowplaying.qml -X-Plasma-DefaultSize=256,128 - -X-KDE-PluginInfo-Author=Alex Merry -X-KDE-PluginInfo-Email=alex.merry@kdemail.net -X-KDE-PluginInfo-Name=nowplaying -X-KDE-PluginInfo-Version=2.0 -X-KDE-PluginInfo-Website= -X-KDE-PluginInfo-Category=Multimedia -X-KDE-PluginInfo-Depends= -X-KDE-PluginInfo-License=GPL -X-KDE-PluginInfo-EnabledByDefault=true -X-Plasma-Requires-FileDialog=Unused -X-Plasma-Requires-LaunchApp=Unused diff --git a/kdeplasma-addons/runners/CMakeLists.txt b/kdeplasma-addons/runners/CMakeLists.txt index 8eb2f9b4..c34fbe32 100644 --- a/kdeplasma-addons/runners/CMakeLists.txt +++ b/kdeplasma-addons/runners/CMakeLists.txt @@ -1,4 +1,3 @@ -add_subdirectory(audioplayercontrol) add_subdirectory(converter) add_subdirectory(datetime) add_subdirectory(katesessions) diff --git a/kdeplasma-addons/runners/audioplayercontrol/CMakeLists.txt b/kdeplasma-addons/runners/audioplayercontrol/CMakeLists.txt deleted file mode 100644 index 03b3a4a8..00000000 --- a/kdeplasma-addons/runners/audioplayercontrol/CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ -set(krunner_audioplayercontrol_SRCS - audioplayercontrolrunner.cpp -) - -set(kcm_krunner_audioplayercontrol_SRCS - audioplayercontrolrunner_config.cpp - audioplayercontrolrunner_config.ui -) - -kde4_add_plugin(kcm_krunner_audioplayercontrol ${kcm_krunner_audioplayercontrol_SRCS}) -target_link_libraries(kcm_krunner_audioplayercontrol - KDE4::kdecore - KDE4::kdeui - KDE4::kcmutils - ${QT_QTCORE_LIBRARY} - ${QT_QTGUI_LIBRARY} -) - -kde4_add_plugin(krunner_audioplayercontrol ${krunner_audioplayercontrol_SRCS}) -target_link_libraries(krunner_audioplayercontrol KDE4::kio KDE4::kdeui KDE4::plasma) - - -install(TARGETS krunner_audioplayercontrol kcm_krunner_audioplayercontrol DESTINATION ${KDE4_PLUGIN_INSTALL_DIR}) -install(FILES plasma-runner-audioplayercontrol.desktop plasma-runner-audioplayercontrol_config.desktop DESTINATION ${KDE4_SERVICES_INSTALL_DIR}) diff --git a/kdeplasma-addons/runners/audioplayercontrol/Messages.sh b/kdeplasma-addons/runners/audioplayercontrol/Messages.sh deleted file mode 100644 index 0bbcc15f..00000000 --- a/kdeplasma-addons/runners/audioplayercontrol/Messages.sh +++ /dev/null @@ -1,3 +0,0 @@ -#! /usr/bin/env bash -$EXTRACTRC *.ui >> rc.cpp -$XGETTEXT *.cpp -o $podir/plasma_runner_audioplayercontrol.pot diff --git a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolconfigkeys.h b/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolconfigkeys.h deleted file mode 100644 index 4e34249e..00000000 --- a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolconfigkeys.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2009 Jan G. Marker - * Copyright (C) 2021 Ivailo Monev - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License version 2 as - * published by the Free Software Foundation - * - * 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 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. - */ - -#ifndef AUDIOPLAYERCONTROLRUNNERCONFIGKEYS_H -#define AUDIOPLAYERCONTROLRUNNERCONFIGKEYS_H - -static const char * CONFIG_PLAY = "com_play"; -static const char * CONFIG_PAUSE = "com_pause"; -static const char * CONFIG_NEXT = "com_next"; -static const char * CONFIG_PREV = "com_prev"; -static const char * CONFIG_STOP = "com_stop"; -static const char * CONFIG_VOLUME = "com_volume"; -static const char * CONFIG_QUIT = "com_quit"; -static const char * CONFIG_PLAYER = "player"; - -#endif diff --git a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner.cpp b/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner.cpp deleted file mode 100644 index 26afec4e..00000000 --- a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner.cpp +++ /dev/null @@ -1,277 +0,0 @@ -/* - * Copyright (C) 2008 Bruno Virlet - * Copyright (C) 2009 Ryan P. Bitanga - * Copyright (C) 2009 Jan G. Marker - * Copyright (C) 2021 Ivailo Monev - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License version 2 as - * published by the Free Software Foundation - * - * 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 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. - */ - -#include "audioplayercontrolrunner.h" -#include "audioplayercontrolconfigkeys.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -// for reference: -// https://specifications.freedesktop.org/mpris-spec/latest/ - -AudioPlayerControlRunner::AudioPlayerControlRunner(QObject *parent, const QVariantList& args) - : Plasma::AbstractRunner(parent, args) -{ - Q_UNUSED(args); - - setObjectName(QLatin1String("Audio Player Control Runner")); - setSpeed(AbstractRunner::SlowSpeed); - - connect(this, SIGNAL(prepare()), this, SLOT(prep())); - - reloadConfiguration(); -} - -AudioPlayerControlRunner::~AudioPlayerControlRunner() -{ -} - -void AudioPlayerControlRunner::prep() -{ - m_running = false; - m_canPlay = false; - m_canGoNext = false; - m_canGoPrevious = false; - m_playbackStatus = QString(); - m_identity = m_player; - - QDBusInterface player(QString::fromLatin1("org.mpris.MediaPlayer2.%1").arg(m_player), - QLatin1String("/org/mpris/MediaPlayer2"), QLatin1String("org.mpris.MediaPlayer2.Player")); - m_running = player.isValid(); - - if (m_running) { - QDBusInterface mediaplayer2(QString::fromLatin1("org.mpris.MediaPlayer2.%1").arg(m_player), - QLatin1String("/org/mpris/MediaPlayer2"), QLatin1String("org.mpris.MediaPlayer2")); - m_identity = mediaplayer2.property("Identity").toString(); - m_playbackStatus = player.property("PlaybackStatus").toString(); - // NOTE: Bogus values set by Audacious for the properties bellow - m_canPlay = player.property("CanPlay").toBool(); - m_canGoNext = player.property("CanGoNext").toBool(); - m_canGoPrevious = player.property("CanGoPrevious").toBool(); - } - - // qDebug() << Q_FUNC_INFO << m_running << m_canPlay << m_canGoNext << m_canGoPrevious << m_playbackStatus << m_identity; -} - -void AudioPlayerControlRunner::match(Plasma::RunnerContext &context) -{ - if (context.query().length() < 3) { - return; - } - - const QString term = context.query(); - - QList matches; - - if (context.isValid() ) { - QVariantList playcontrol; - playcontrol << QLatin1String("/org/mpris/MediaPlayer2") << QLatin1String("org.mpris.MediaPlayer2.Player"); - - // Play - if (m_comPlay.startsWith(term, Qt::CaseInsensitive) && - (!m_running || (m_canPlay && m_playbackStatus != QLatin1String("Playing")))) { - QVariantList data = playcontrol; - data << QLatin1String("Play") << QLatin1String("start"); - matches << createMatch(this, i18n("Start playing"), i18n("Audio player control"), - QLatin1String("play"), KIcon(QLatin1String("media-playback-start")), data, 1.0); - } - - if (!m_running) { - // The interface of the player is not availalbe, so the rest of the commands are not needed - context.addMatches(term, matches); - return; - } - - // Next song - if (m_comNext.startsWith(term, Qt::CaseInsensitive) && m_canGoNext) { - QVariantList data = playcontrol; - data << QLatin1String("Next") << QLatin1String("nostart"); - matches << createMatch(this, i18n("Play next song"), i18n("Audio player control"), - QLatin1String("next"), KIcon(QLatin1String("media-skip-forward")), data, 1.0); - } - - // Previous song - if (m_comPrev.startsWith(term, Qt::CaseInsensitive) && m_canGoPrevious) { - QVariantList data = playcontrol; - data << QLatin1String("Previous") << QLatin1String("nostart"); - matches << createMatch(this, i18n("Play previous song"), i18n("Audio player control") , - QLatin1String("previous"), KIcon(QLatin1String("media-skip-backward")), data, 1.0); - } - - // Pause - if (m_comPause.startsWith(term, Qt::CaseInsensitive) && m_playbackStatus == QLatin1String("Playing")) { - QVariantList data = playcontrol; - data << QLatin1String("Pause") << QLatin1String("nostart"); - matches << createMatch(this, i18n("Pause playing"), i18n("Audio player control"), - QLatin1String("pause"), KIcon(QLatin1String("media-playback-pause")), data, 1.0); - } - - // Stop - if (m_comStop.startsWith(term, Qt::CaseInsensitive) && m_playbackStatus == QLatin1String("Playing")) { - QVariantList data = playcontrol; - data << QLatin1String("Stop") << QLatin1String("nostart"); - matches << createMatch(this, i18n("Stop playing"), i18n("Audio player control"), - QLatin1String("stop"), KIcon(QLatin1String("media-playback-stop")), data, 1.0); - } - - // Set volume to - QRegExp volumeRegxp(m_comVolume + QLatin1String(" \\d{1,2}0{0,1}")); - volumeRegxp.setCaseSensitivity(Qt::CaseInsensitive); - if (volumeRegxp.exactMatch(term)) { - QVariantList data = playcontrol; - int newVolume = getNumber(term , ' '); - data << QLatin1String("Volume") << QLatin1String("nostart") << (newVolume / 100.0); - matches << createMatch(this, i18n("Set volume to %1%" , newVolume), - QLatin1String("volume"), i18n("Audio player control"), KIcon(QLatin1String("audio-volume-medium")), data, 1.0); - } - - // Quit player - if (m_comQuit.startsWith(term, Qt::CaseInsensitive)) { - QVariantList data; - data << QLatin1String("/org/mpris/MediaPlayer2") << QLatin1String("org.mpris.MediaPlayer2") - << QLatin1String("Quit") << QLatin1String("nostart"); - matches << createMatch(this, i18n("Quit %1", m_identity), QLatin1String(""), - QLatin1String("quit"), KIcon(QLatin1String("application-exit")), data, 1.0); - } - } - - context.addMatches(term, matches); -} - -void AudioPlayerControlRunner::run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &match) -{ - Q_UNUSED(context) - - QVariantList data = match.data().value(); - - if (data[3].toString().compare(QLatin1String("start")) == 0) { - // The players's interface isn't available but it should be started - if (!startPlayer()) { - return; - } - } - - // Special case for properties - if (data[2].toString().compare(QLatin1String("Volume")) == 0) { - QDBusInterface player(QString::fromLatin1("org.mpris.MediaPlayer2.%1").arg(m_player), - data[0].toString(), data[1].toString()); - player.setProperty(data[2].toByteArray(), data[4]); - return; - } - - QDBusMessage msg = QDBusMessage::createMethodCall(QString::fromLatin1("org.mpris.MediaPlayer2.%1").arg(m_player), - data[0].toString(), data[1].toString(), data[2].toString()); - kDebug() << msg; - QVariantList args; - for (int i = 4; data.length() > i;++i) { - args << data[i]; - } - msg.setArguments(args); - QDBusConnection::sessionBus().call(msg, QDBus::NoBlock); -} - -void AudioPlayerControlRunner::reloadConfiguration() -{ -#warning TODO: untranslated keywords match - KConfigGroup grp = config(); - m_player = grp.readEntry(CONFIG_PLAYER, "vlc"); - m_comPlay = grp.readEntry(CONFIG_PLAY, i18n("play")); - m_comPause = grp.readEntry(CONFIG_PAUSE, i18n("pause")); - m_comNext = grp.readEntry(CONFIG_NEXT, i18n("next")); - m_comPrev = grp.readEntry(CONFIG_PREV, i18n("prev")); - m_comStop = grp.readEntry(CONFIG_STOP, i18n("stop")); - m_comVolume = grp.readEntry(CONFIG_VOLUME, i18n("volume")); - m_comQuit = grp.readEntry(CONFIG_QUIT, i18n("quit")); - - // Adding the syntaxes for helping the user - QList syntaxes; - - syntaxes << Plasma::RunnerSyntax(m_comPlay, i18n("Plays a song from playlist")); - syntaxes << Plasma::RunnerSyntax(m_comPause,i18n("Pauses the playing")); - syntaxes << Plasma::RunnerSyntax(m_comNext, i18n("Plays the next song in the playlist if one is available")); - syntaxes << Plasma::RunnerSyntax(m_comPrev, i18n("Plays the previous song if one is available")); - syntaxes << Plasma::RunnerSyntax(m_comStop, i18n("Stops the playing")); - syntaxes << Plasma::RunnerSyntax(m_comVolume + QLatin1String(" :q:"), i18n("Sets the volume to :q:")); - syntaxes << Plasma::RunnerSyntax(m_comQuit, i18n("Quits the player")); - - setSyntaxes(syntaxes); -} - -Plasma::QueryMatch AudioPlayerControlRunner::createMatch(Plasma::AbstractRunner* runner, - const QString &title, const QString &subtext, const QString &id, - const KIcon &icon, const QVariantList &data, const float &relevance) -{ - Plasma::QueryMatch match(runner); - match.setText(title); - match.setSubtext(subtext); - match.setId(id); - match.setIcon(icon); - match.setData(data); - match.setRelevance(relevance); - return match; -} - -bool AudioPlayerControlRunner::startPlayer() -{ - if (m_running) { - return true; - } - - if (!KRun::run(m_player, KUrl::List(), nullptr)) { - // NOTE: KRun::run() shows message box in case of error - return false; - } - - QElapsedTimer waitTimeout; - waitTimeout.start(); - while (!m_running && waitTimeout.elapsed() < 30000) { - // Waiting for the player's interface to appear - QDBusInterface player(QString::fromLatin1("org.mpris.MediaPlayer2.%1").arg(m_player), - QLatin1String("/org/mpris/MediaPlayer2"), QLatin1String("org.mpris.MediaPlayer2.Player")); - m_running = player.isValid(); - QCoreApplication::processEvents(); - } - - if (m_running) { - prep(); - return true; - } - - return false; -} - -int AudioPlayerControlRunner::getNumber(const QString& term, const char character) -{ - return term.section(QLatin1Char(character), 1, 1).toInt(); -} - -#include "moc_audioplayercontrolrunner.cpp" diff --git a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner.h b/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner.h deleted file mode 100644 index a9186cff..00000000 --- a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (C) 2008 Bruno Virlet - * Copyright (C) 2009 Jan G. Marker - * Copyright (C) 2021 Ivailo Monev - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License version 2 as - * published by the Free Software Foundation - * - * 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 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. - */ - -#ifndef AUDIOPLAYERCONTROLRUNNER_H -#define AUDIOPLAYERCONTROLRUNNER_H - -#include - -#include -#include - -class AudioPlayerControlRunner : public Plasma::AbstractRunner -{ - Q_OBJECT - -public: - AudioPlayerControlRunner(QObject *parent, const QVariantList& args); - ~AudioPlayerControlRunner(); - - void match(Plasma::RunnerContext &context); - void run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &match); - - void reloadConfiguration(); - -private: - /** A own method to create a match easily - * @param context the terms context - * @param runner the instance of AudioPlayerControlRunner - * @param term the search term - * @param term the main text of the match - * @param subtext the subtext of the match - * @param icon the icon of the match - * @param data the data of the match - * @param relevance the relevance of the match - * @return the created match - */ - Plasma::QueryMatch createMatch(Plasma::AbstractRunner* runner, - const QString &title, const QString &subtext, - const QString &id, const KIcon &icon, - const QVariantList &data, const float &relevance); - - /** Starts the player detached from the current progress if it isn't started already. - * @return @c true if it was successful, @c false in any other case - */ - bool startPlayer(); - - /** Looks for the number in the command term (it isn't case sensitive) - * @param text the term - * @param character the separator - * @return the number as int - */ - static int getNumber(const QString& term, const char character); - -private slots: - void prep(); - -private: - /** The player this runner controls */ - QString m_player; - - /** Command for play a song */ - QString m_comPlay; - /** Command for pause playing */ - QString m_comPause; - /** Command for stop playing */ - QString m_comStop; - /** Command for playing the next song */ - QString m_comNext; - /** Command for playing the previous song */ - QString m_comPrev; - /** Command for changing the volume */ - QString m_comVolume; - /** Command for quit the player */ - QString m_comQuit; - - /** The running state of the player */ - bool m_running; - - /** @c true if player can play song */ - bool m_canPlay; - - /** @c true if a next song is available */ - bool m_canGoNext; - - /** @c true if a previous song is available */ - bool m_canGoPrevious; - - /** The playback state of the player */ - QString m_playbackStatus; - - /** The player identity */ - QString m_identity; -}; - -K_EXPORT_PLASMA_RUNNER(audioplayercontrol, AudioPlayerControlRunner) - -#endif diff --git a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.cpp b/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.cpp deleted file mode 100644 index bf101b46..00000000 --- a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (C) 2009 Jan G. Marker - * Copyright (C) 2021 Ivailo Monev - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License version 2 as - * published by the Free Software Foundation - * - * 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 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. - */ - -//Project-Includes -#include "audioplayercontrolrunner_config.h" - -//KDE-Includes -#include -#include - -#include "audioplayercontrolconfigkeys.h" - -K_EXPORT_RUNNER_CONFIG(audioplayercontrol, AudioPlayerControlRunnerConfig) - -AudioPlayerControlRunnerConfigForm::AudioPlayerControlRunnerConfigForm(QWidget* parent) : QWidget(parent) -{ - setupUi(this); -} - -AudioPlayerControlRunnerConfig::AudioPlayerControlRunnerConfig(QWidget* parent, const QVariantList& args) : - KCModule(AudioPlayerControlRunnerConfigFactory::componentData(), parent, args) -{ - m_ui = new AudioPlayerControlRunnerConfigForm(this); - - QGridLayout* layout = new QGridLayout(this); - layout->addWidget(m_ui, 0, 0); - - connect(m_ui->player_combo, SIGNAL(currentIndexChanged(int)), this, SLOT(changed())); - connect(m_ui->player_combo, SIGNAL(editTextChanged(QString)), this, SLOT(changed())); - connect(m_ui->play_edit, SIGNAL(textChanged(QString)), this, SLOT(changed())); - connect(m_ui->pause_edit, SIGNAL(textChanged(QString)), this, SLOT(changed())); - connect(m_ui->next_edit, SIGNAL(textChanged(QString)), this, SLOT(changed())); - connect(m_ui->prev_edit, SIGNAL(textChanged(QString)), this, SLOT(changed())); - connect(m_ui->stop_edit, SIGNAL(textChanged(QString)), this, SLOT(changed())); - connect(m_ui->volume_edit, SIGNAL(textChanged(QString)), this, SLOT(changed())); - connect(m_ui->quit_edit, SIGNAL(textChanged(QString)), this, SLOT(changed())); - - - /* Setup the combobox to select the player */ - m_ui->player_combo->setDuplicatesEnabled(false); - m_ui->player_combo->addItem(i18n("VLC"), QLatin1String("vlc")); - m_ui->player_combo->addItem(i18n("Audacious"), QLatin1String("audacious")); - /* template for adding other players: - * m_ui->player_combo->addItem(i18n("player's name"), "the end of it's MPRIS interface"); - */ - m_ui->player_combo->setEditable(true); //Let's add our own players - - load(); -} - -void AudioPlayerControlRunnerConfig::load() -{ - KCModule::load(); - - KSharedConfig::Ptr cfg = KSharedConfig::openConfig(QLatin1String("krunnerrc")); - KConfigGroup grp = cfg->group("Runners"); - grp = KConfigGroup(&grp, "Audio Player Control Runner"); - QString player = grp.readEntry(CONFIG_PLAYER, "vlc"); - int index = m_ui->player_combo->findData(player); - if (index == -1) { - m_ui->player_combo->addItem(player, player); - m_ui->player_combo->setCurrentItem(player); - } else { - m_ui->player_combo->setCurrentIndex(index); - } - m_ui->play_edit->setText(grp.readEntry(CONFIG_PLAY , i18n("play"))); - m_ui->pause_edit->setText(grp.readEntry(CONFIG_PAUSE, i18n("pause"))); - m_ui->next_edit->setText(grp.readEntry(CONFIG_NEXT, i18nc("next song", "next"))); - m_ui->prev_edit->setText(grp.readEntry(CONFIG_PREV , i18nc("previous song", "prev"))); - m_ui->stop_edit->setText(grp.readEntry(CONFIG_STOP , i18n("stop"))); - m_ui->volume_edit->setText(grp.readEntry(CONFIG_VOLUME , i18nc("set the sound volume", "volume"))); - m_ui->quit_edit->setText(grp.readEntry(CONFIG_QUIT, i18nc("quit media player", "quit"))); - - emit changed(false); -} - -void AudioPlayerControlRunnerConfig::save() -{ - KCModule::save(); - - KSharedConfig::Ptr cfg = KSharedConfig::openConfig(QLatin1String("krunnerrc")); - KConfigGroup grp = cfg->group("Runners"); - grp = KConfigGroup(&grp, "Audio Player Control Runner"); - grp.writeEntry(CONFIG_PLAY, m_ui->play_edit->text()); - grp.writeEntry(CONFIG_PAUSE, m_ui->pause_edit->text()); - grp.writeEntry(CONFIG_STOP, m_ui->stop_edit->text()); - grp.writeEntry(CONFIG_PREV, m_ui->prev_edit->text()); - grp.writeEntry(CONFIG_NEXT, m_ui->next_edit->text()); - grp.writeEntry(CONFIG_VOLUME, m_ui->volume_edit->text()); - grp.writeEntry(CONFIG_QUIT, m_ui->quit_edit->text()); - QString data = m_ui->player_combo->itemData(m_ui->player_combo->findText( - m_ui->player_combo->currentText())).toString(); - if (data.isEmpty()) { - grp.writeEntry(CONFIG_PLAYER, m_ui->player_combo->currentText()); - } else { - grp.writeEntry(CONFIG_PLAYER, data); - } - grp.sync(); - - emit changed(false); -} - -void AudioPlayerControlRunnerConfig::defaults() -{ - KCModule::defaults(); - - m_ui->player_combo->setCurrentIndex(m_ui->player_combo->findData(QLatin1String("vlc"))); - m_ui->play_edit->setText(i18n("Play")); - m_ui->pause_edit->setText(i18n("Pause")) ; - m_ui->next_edit->setText(i18n("Next")); - m_ui->prev_edit->setText(i18n("Prev")); - m_ui->stop_edit->setText(i18n("Stop")); - m_ui->volume_edit->setText(i18n("Volume")); - m_ui->quit_edit->setText(i18n("Quit")); - - emit changed(true); -} diff --git a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.h b/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.h deleted file mode 100644 index b2ffff9d..00000000 --- a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2009 Jan G. Marker - * Copyright (C) 2021 Ivailo Monev - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License version 2 as - * published by the Free Software Foundation - * - * 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 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. - */ - -#ifndef AUDIOPLAYERCONTROLRUNNERCONFIG_H -#define AUDIOPLAYERCONTROLRUNNERCONFIG_H - -//Project-Includes -#include "ui_audioplayercontrolrunner_config.h" -//Qt-Includes -//KDE-Includes -#include - -class AudioPlayerControlRunnerConfigForm : public QWidget, public Ui::AudioPlayerControlRunnerUI -{ - Q_OBJECT - -public: - explicit AudioPlayerControlRunnerConfigForm(QWidget* parent); -}; - -class AudioPlayerControlRunnerConfig : public KCModule -{ - Q_OBJECT - -public: - explicit AudioPlayerControlRunnerConfig(QWidget* parent = 0, const QVariantList& args = QVariantList()); - -public slots: - void save(); - void load(); - void defaults(); - -private: - AudioPlayerControlRunnerConfigForm* m_ui; -}; -#endif // AUDIOPLAYERCONTROLRUNNERCONFIG_H diff --git a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.ui b/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.ui deleted file mode 100644 index 1294970b..00000000 --- a/kdeplasma-addons/runners/audioplayercontrol/audioplayercontrolrunner_config.ui +++ /dev/null @@ -1,289 +0,0 @@ - - - AudioPlayerControlRunnerUI - - - - 0 - 0 - 421 - 292 - - - - - - - - - - Audio Player Control Runner Settings - - - - - - - - The player the runner controls: - - - - - - - You may add another player. That player has to support the MPRISv2 specification. - - - - - - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - - - - - - &Next song: - - - next_edit - - - - - - - - - - Previ&ous song: - - - prev_edit - - - - - - - - - - S&top: - - - stop_edit - - - - - - - - - - Quit player: - - - quit_edit - - - - - - - - - - Pla&y: - - - play_edit - - - - - - - - - - - - - false - - - true - - - - - - - - - - Set &volume: - - - volume_edit - - - - - - - - - - P&ause: - - - pause_edit - - - - - - - Can be used as "Play" for playing and "Play <song>" for playing a song that matches to <song> (in title, artist and album) - - - - - - - - - false - - - true - - - - - - - The numbers are automatically added at the end: -Player:Volume=10 - - - - - - - - - false - - - - - - true - - - - - - - - - - - - - false - - - true - - - - - - - - - - - - - false - - - true - - - - - - - - - - - - - false - - - true - - - - - - - - - - - - - false - - - true - - - - - - - - - - - - - - KIntSpinBox - QSpinBox -

knuminput.h
- - - KLineEdit - QLineEdit -
klineedit.h
-
- - KComboBox - QComboBox -
kcombobox.h
-
- - - diff --git a/kdeplasma-addons/runners/audioplayercontrol/plasma-runner-audioplayercontrol.desktop b/kdeplasma-addons/runners/audioplayercontrol/plasma-runner-audioplayercontrol.desktop deleted file mode 100644 index 12c958eb..00000000 --- a/kdeplasma-addons/runners/audioplayercontrol/plasma-runner-audioplayercontrol.desktop +++ /dev/null @@ -1,103 +0,0 @@ -[Desktop Entry] -Name=Control Audio Player -Name[ar]=التحكم بمشغل الصوتيات -Name[bs]=Upravljanje audio plejerom -Name[ca]=Control del reproductor d'àudio -Name[ca@valencia]=Control del reproductor d'àudio -Name[cs]=Ovládat zvukový přehrávač -Name[da]=Betjening af lydafspiller -Name[de]=Medienwiedergabe steuern -Name[el]=Έλεγχος του αναπαραγωγέα ήχου -Name[en_GB]=Control Audio Player -Name[es]=Controlar el reproductor de audio -Name[et]=Helifailide mängija juhtimine -Name[fi]=Hallitse äänisoitinta -Name[fr]=Contrôle du lecteur audio -Name[ga]=Rialaigh Seinnteoir Fuaime -Name[gl]=Control para reprodutores de son -Name[hr]=Kontroliraj svirač zvuka -Name[hu]=Zenelejátszó-vezérlő -Name[it]=Controllo lettore audio -Name[ja]=オーディオプレーヤーを制御 -Name[kk]=Аудоплейерді басқару -Name[km]=ត្រួតពិនិត្យ​កម្មវិធី​ចាក់​អូឌីយ៉ូ -Name[ko]=오디오 재생기 제어 -Name[lt]=Valdyti audio grotuvą -Name[lv]=Kontrolēt audio atskaņotāju -Name[mr]=ऑडिओ प्लेयर नियंत्रण -Name[nb]=Styr mediaspiller -Name[nds]=Klangafspelerkuntrull -Name[nl]=Audiospeler besturen -Name[nn]=Kontroller lydspelar -Name[pa]=ਆਡੀਓ ਪਲੇਅਰ ਕੰਟਰੋਲ ਕਰੋ -Name[pl]=Sterowanie odtwarzaczem muzyki -Name[pt]=Controlar o Leitor de Áudio -Name[pt_BR]=Controlar o reprodutor de áudio -Name[ro]=Controlează lector audio -Name[ru]=Пульт аудиопроигрывателя -Name[sk]=Ovládanie audio prehrávača -Name[sl]=Nadzorovanje predvajalnika zvoka -Name[sr]=управљање аудио плејером -Name[sr@ijekavian]=управљање аудио плејером -Name[sr@ijekavianlatin]=upravljanje audio plejerom -Name[sr@latin]=upravljanje audio plejerom -Name[sv]=Styr ljudspelare -Name[th]=ควบคุมเครื่องเล่นเสียง -Name[tr]=Müzik Çaları Yönet -Name[uk]=Керування аудіопрогравачем -Name[x-test]=xxControl Audio Playerxx -Name[zh_CN]=控制音乐播放器 -Name[zh_TW]=控制音效播放器 -Comment=Allows to control MPRIS audio player -Comment[ar]=يسمح بالتحكم بمشغل الصوتيات MPRIS -Comment[bs]=Dopušta kontroliranje MPRIS audio plejera -Comment[ca]=Permet controlar reproductors d'àudio MPRIS -Comment[ca@valencia]=Permet controlar reproductors d'àudio MPRIS -Comment[cs]=Dovoluje ovládání audio přehrávačů MPRIS -Comment[da]=Lader dig betjene MPRIS-lydafspillere -Comment[de]=Ermöglicht die Steuerung von MPRIS-Medienspielern -Comment[el]=Επιτρέπει τον έλεγχο αναπαραγωγέων ήχου MPRIS -Comment[en_GB]=Allows to control MPRIS audio players -Comment[es]=Permite controlar reproductores de audio MPRIS -Comment[et]=Võimaldab juhtida MPRIS helifailide mängijaid -Comment[fi]=Mahdollistaa MPRIS-äänisoitinten hallinnan -Comment[fr]=Permet de contrôler les lecteurs audio « MPRIS » -Comment[gl]=Permite controlar reprodutores de son de tipo MPRIS -Comment[hr]=Omogućuje kontrolu MPRIS-svirača zvuka -Comment[hu]=Lehetővé teszi az MPRIS zenelejátszók vezérlését -Comment[it]=Consente di controllare i lettori audio MPRIS -Comment[kk]=MPRIS аудиоплейерлерді басқаруға мүмкіндік береді -Comment[km]=អនុញ្ញាត​ឲ្យ​ត្រួតពិនិត្យ​កម្មវិធី​ចាក់​អូឌីយ៉ូ MPRIS -Comment[ko]=MPRIS 오디오 재생기 제어 -Comment[lt]=Leidžia valdyti MPRIS audio grotuvus -Comment[lv]=Ļauj kontrolēt MPRIS audio atskaņotājus -Comment[mr]=MPRIS ऑडिओ प्लेयर्स वर नियंत्रण ठेवतो -Comment[nb]=Kan styre MPRIS-lydspillere -Comment[nds]=Stüern för MPRIS-Klangafspelers -Comment[nl]=Staat toe om MPRIS audiospelers te besturen -Comment[nn]=Kontroller MPRIS-baserte lydspelarar -Comment[pl]=Pozwala sterować odtwarzaczami muzyki MPRIS -Comment[pt]=Permite controlar os leitores de áudio MPRIS -Comment[pt_BR]=Permite controlar os reprodutores de áudio MPRIS -Comment[ru]=Позволяет управлять аудиопроигрывателями, совместимыми с MPRIS -Comment[sk]=Ovládanie MPRIS audio prehrávačov -Comment[sl]=Omogoča nadzor predvajalnikov zvoka MPRIS -Comment[sr]=Управљајте МПРИС аудио плејерима -Comment[sr@ijekavian]=Управљајте МПРИС аудио плејерима -Comment[sr@ijekavianlatin]=Upravljajte MPRIS audio plejerima -Comment[sr@latin]=Upravljajte MPRIS audio plejerima -Comment[sv]=Gör det möjligt att styra MPRIS-ljudspelare -Comment[th]=ช่วยควบคุมโปรแกรมเล่นเสียง MPRIS -Comment[tr]=MPRIS müzik çalarları kontrol etmeyi sağlar -Comment[uk]=Надає змогу керувати аудіопрогравачами стандарту MPRIS -Comment[x-test]=xxAllows to control MPRIS audio playersxx -Comment[zh_CN]=让您控制 MPRIS 音乐播放器 -Comment[zh_TW]=允許控制 MPRIS 音效播放器 -X-KDE-ServiceTypes=Plasma/Runner -Type=Service -Icon=applications-multimedia -X-KDE-Library=krunner_audioplayercontrol -X-KDE-PluginInfo-Name=Audio Player Control Runner -X-KDE-PluginInfo-Version=0.1 -X-KDE-PluginInfo-License=LGPL -X-KDE-PluginInfo-EnabledByDefault=true diff --git a/kdeplasma-addons/runners/audioplayercontrol/plasma-runner-audioplayercontrol_config.desktop b/kdeplasma-addons/runners/audioplayercontrol/plasma-runner-audioplayercontrol_config.desktop deleted file mode 100644 index f4704919..00000000 --- a/kdeplasma-addons/runners/audioplayercontrol/plasma-runner-audioplayercontrol_config.desktop +++ /dev/null @@ -1,56 +0,0 @@ -[Desktop Entry] -Type=Service -X-KDE-ServiceTypes=KCModule - -X-KDE-Library=kcm_krunner_audioplayercontrol -X-KDE-ParentComponents=Audio Player Control Runner -X-KDE-PluginKeyword=kcm_krunner_audioplayercontrol - -Name=Control audio player -Name[ar]=التحكم بمشغل الصوتيات -Name[bs]=Kontroliranje audio plejera -Name[ca]=Controlador del reproductor d'àudio -Name[ca@valencia]=Controlador del reproductor d'àudio -Name[cs]=Ovládat zvukový přehrávač -Name[da]=Betjening af lydafspiller -Name[de]=Medienwiedergabe steuern -Name[el]=Έλεγχος του αναπαραγωγέα ήχου -Name[en_GB]=Control audio player -Name[es]=Controlar el reproductor de audio -Name[et]=Helifailide mängija juhtimine -Name[fi]=Hallitse äänisoitinta -Name[fr]=Contrôle du lecteur audio -Name[gl]=Control para reprodutores de son -Name[hr]=Kontroliraj svirač zvuka -Name[hu]=Zenelejátszó-vezérlő -Name[it]=Controllo lettore audio -Name[ja]=オーディオプレーヤーを制御 -Name[kk]=Аудоплейерді басқару -Name[km]=ត្រួតពិនិត្យ​កម្មវិធីចាក់​អូឌីយ៉ូ -Name[ko]=오디오 재생기 제어 -Name[lt]=Valdyti audio grotuvą -Name[lv]=Kontrolēt audio atskaņotāju -Name[mr]=ऑडिओ प्लेयर नियंत्रण -Name[nb]=Styr mediaspiller -Name[nds]=Klangafspelerkuntrull -Name[nl]=Audiospeler besturen -Name[nn]=Kontroller lydspelar -Name[pa]=ਆਡੀਓ ਪਲੇਅਰ ਕੰਟਰੋਲ ਕਰੋ -Name[pl]=Sterowanie odtwarzaczem muzyki -Name[pt]=Controlar o leitor de áudio -Name[pt_BR]=Controlar o reprodutor de áudio -Name[ro]=Controlează lector audio -Name[ru]=Пульт аудиопроигрывателя -Name[sk]=Ovládanie audio prehrávača -Name[sl]=Nadzorovanje predvajalnika zvoka -Name[sr]=управљање аудио плејером -Name[sr@ijekavian]=управљање аудио плејером -Name[sr@ijekavianlatin]=upravljanje audio plejerom -Name[sr@latin]=upravljanje audio plejerom -Name[sv]=Styr ljudspelare -Name[th]=ควบคุมเครื่องเล่นเสียง -Name[tr]=Müzik çaları yönet -Name[uk]=Керування аудіопрогравачем -Name[x-test]=xxControl audio playerxx -Name[zh_CN]=控制音乐播放器 -Name[zh_TW]=控制音效播放器