[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kde-workspace/mart/AppletAttached] plasma/generic: Seek ui
From: Marco Martin <notmart () gmail ! com>
Date: 2014-01-31 22:02:50
Message-ID: E1W9MAk-0004kW-1F () scm ! kde ! org
[Download RAW message or body]
Git commit 5f2fa8da92a69f3e30bfbcb3572e24ea8f24fff4 by Marco Martin.
Committed on 31/01/2014 at 22:02.
Pushed by mart into branch 'mart/AppletAttached'.
Seek ui
M +61 -38 plasma/generic/applets/mediacontroller/contents/ui/ExpandedRepresentation.qml
M +1 -2 plasma/generic/applets/mediacontroller/contents/ui/main.qml
M +2 -2 plasma/generic/dataengines/mpris2/playeractionjob.cpp
http://commits.kde.org/kde-workspace/5f2fa8da92a69f3e30bfbcb3572e24ea8f24fff4
diff --git a/plasma/generic/applets/mediacontroller/contents/ui/ExpandedRepresentation.qml \
b/plasma/generic/applets/mediacontroller/contents/ui/ExpandedRepresentation.qml index \
23d5d7b..fe131f8 100644
--- a/plasma/generic/applets/mediacontroller/contents/ui/ExpandedRepresentation.qml
+++ b/plasma/generic/applets/mediacontroller/contents/ui/ExpandedRepresentation.qml
@@ -23,7 +23,7 @@ import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras
-Item {
+ColumnLayout {
id: expandedRepresentation
Layout.minimumWidth: Layout.minimumHeight * 1.333
@@ -33,76 +33,98 @@ Item {
property int controlSize: Math.min(height, width) / 4
- anchors {
- margins: units.largeSpacing
- //fill: parent
- }
-
+ //anchors.margins: units.largeSpacing
//Rectangle { color: "orange"; anchors.fill: parent }
- PlasmaExtras.Heading {
- id: song
- level: 3
- opacity: 0.6
+ RowLayout {
+ id: titleRow
+ spacing: units.largeSpacing
anchors {
left: parent.left
top: parent.top
right: parent.right
}
- elide: Text.ElideRight
- text: root.track == "" ? i18n("No media playing") : root.track
+ Image {
+ source: mpris2Source.data[mpris2Source.last].Metadata["mpris:artUrl"]
+ Layout.preferredHeight: Math.min(expandedRepresentation.height/2, \
sourceSize.height) + Layout.preferredWidth: Layout.preferredHeight
+ visible: status == Image.Ready
+ }
+ Column {
+ Layout.fillWidth: true
+ anchors.top: parent.top
+ spacing: units.largeSpacing
+ PlasmaExtras.Heading {
+ id: song
+ anchors {
+ left: parent.left
+ right: parent.right
+ }
+ level: 3
+ opacity: 0.6
+
+ elide: Text.ElideRight
+ text: root.track == "" ? i18n("No media playing") : root.track
+ }
+
+ PlasmaExtras.Heading {
+ id: artist
+ anchors {
+ left: parent.left
+ right: parent.right
+ }
+ level: 4
+ opacity: 0.3
+
+ elide: Text.ElideRight
+ text: root.noPlayer ? "" : root.artist
+ }
+ }
}
- PlasmaExtras.Heading {
- id: artist
- level: 4
- opacity: 0.3
+ PlasmaComponents.Slider {
+ z: 999
+ maximumValue: mpris2Source.data[mpris2Source.last].Metadata["mpris:length"]
+ value: mpris2Source.data[mpris2Source.last].Position
anchors {
- top: song.bottom
- topMargin: units.smallSpacing
left: parent.left
right: parent.right
}
- elide: Text.ElideRight
- text: root.noPlayer ? "" : root.artist
+ onValueChanged: {
+ if (pressed) {
+ var service = mpris2Source.serviceForSource(mpris2Source.last);
+ var operation = service.operationDescription("Seek");
+ operation.microseconds = value
+ service.startOperationCall(operation);
+ }
+ }
}
- Item {
+ Item {
+ Layout.fillHeight: true
anchors {
- top: artist.bottom
- //topMargin: (parent.height - artist.height - song.height - \
root.controlsSize) / 2
- bottom: parent.bottom
- //bottom: parent.bottom
- //horizontalCenter: parent.horizontalCenter
left: parent.left
right: parent.right
}
+
+
Row {
id: playerControls
property int controlsSize: theme.mSize(theme.defaultFont).height * 3
//Rectangle { color: "orange"; anchors.fill: parent }
- anchors {
- //top: artist.bottom
- //topMargin: (parent.height - artist.height - song.height - \
root.controlsSize) / 2
- verticalCenter: parent.verticalCenter
- //bottom: parent.bottom
- horizontalCenter: parent.horizontalCenter
- //left: parent.left
- }
-
- height: root.controlsSize
- //height: 20
- width: (root.controlsSize * 3) + (units.largeSpacing * 2)
+ anchors.centerIn: parent
spacing: units.largeSpacing
MediaControl {
+ anchors.verticalCenter: parent.verticalCenter
source: "media-skip-backward"
onTriggered: root.previous();
}
MediaControl {
+ width: expandedRepresentation.controlSize * 1.5
source: root.state == "playing" ? "media-playback-pause" : \
"media-playback-start" onTriggered: {
print("Clicked" + source + " " + root.state);
@@ -115,6 +137,7 @@ Item {
}
MediaControl {
+ anchors.verticalCenter: parent.verticalCenter
source: "media-skip-forward"
onTriggered: root.next();
}
diff --git a/plasma/generic/applets/mediacontroller/contents/ui/main.qml \
b/plasma/generic/applets/mediacontroller/contents/ui/main.qml index c06c44a..a793f09 \
100644
--- a/plasma/generic/applets/mediacontroller/contents/ui/main.qml
+++ b/plasma/generic/applets/mediacontroller/contents/ui/main.qml
@@ -32,7 +32,6 @@ Item {
property string playerIcon: ""
- property int baseSize: theme.mSize(theme.defaultFont).height
property bool noPlayer: true
Plasmoid.switchWidth: units.gridUnit * 10
@@ -46,7 +45,7 @@ Item {
id: mpris2Source
engine: "mpris2"
connectedSources: sources
- interval: 0
+ interval: 800
property string last
onSourceAdded: {
//print("XXX source added: " + source);
diff --git a/plasma/generic/dataengines/mpris2/playeractionjob.cpp \
b/plasma/generic/dataengines/mpris2/playeractionjob.cpp index d5ffcc0..81fdbdd 100644
--- a/plasma/generic/dataengines/mpris2/playeractionjob.cpp
+++ b/plasma/generic/dataengines/mpris2/playeractionjob.cpp
@@ -64,7 +64,7 @@ void PlayerActionJob::start()
|| operation == QLatin1String("Previous")) {
listenToCall(m_controller->playerInterface()->asyncCall(operation));
} else if (operation == "Seek") {
- if (parameters().value("microseconds").type() == QVariant::LongLong) {
+ if (parameters().value("microseconds").canConvert<long long>()) {
listenToCall(m_controller->playerInterface()->Seek(parameters()["microseconds"].toLongLong()));
} else {
setErrorText("microseconds");
@@ -72,7 +72,7 @@ void PlayerActionJob::start()
emitResult();
}
} else if (operation == "SetPosition") {
- if (parameters().value("microseconds").type() == QVariant::LongLong) {
+ if (parameters().value("microseconds").canConvert<long long>()) {
listenToCall(m_controller->playerInterface()->SetPosition(
m_controller->trackId(),
parameters()["microseconds"].toLongLong()));
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic