Skip to content

Commit

Permalink
Improved UI, Refactored code, Dialog.qml now is unnecesary, added Too…
Browse files Browse the repository at this point in the history
…lButton in TitleBar
  • Loading branch information
jsmitar committed Feb 15, 2015
1 parent 4ca2768 commit ad35da8
Show file tree
Hide file tree
Showing 11 changed files with 117 additions and 31 deletions.
13 changes: 10 additions & 3 deletions plasmoid/contents/code/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
.pragma library

var iconApplication
var plasmoid
var i18n

function setActions(sourceActive, identity){
var icon

Expand All @@ -32,18 +38,19 @@ function setActions(sourceActive, identity){
case 'clementine':
icon = 'application-x-clementine'
}
iconApplication = icon
print(iconApplication)

plasmoid.setAction('raise', i18n("Open %1", identity), icon)
plasmoid.setAction('quit', i18n("Quit"), 'window-close')
plasmoid.setActionSeparator('sep0')
plasmoid.setAction('nextSource', i18n("Next source"), 'go-next')
plasmoid.setAction('nextSource', i18n("Next multimedia source"), 'go-next')
plasmoid.setActionSeparator('sep1')

}

function removeActions(){
plasmoid.removeAction('raise')
plasmoid.removeAction('quit')
plasmoid.removeAction('sep0')
plasmoid.removeAction('nextSource')
plasmoid.removeAction('sep1')
}
Expand Down
24 changes: 18 additions & 6 deletions plasmoid/contents/ui/CompactApplet.qml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ Flow{

property int _buttonSize: vertical ? (parent && parent.width ? parent.width : 0 ): (parent && parent.height ? parent.height : 0 )

property alias playbackBarVisible: playbackBar.visible

PlaybackBar{
id: playbackBar
buttonSize: parent._buttonSize
Expand All @@ -45,17 +47,27 @@ Flow{
PopupButton{
id: popup

size: mpris2.sourceActive ? _buttonSize * (plasmoid.configuration.FlatButtons ? 0.7 : 0.5) : _buttonSize
size: playbackBar.visible ?
_buttonSize * (plasmoid.configuration.FlatButtons ? 0.7 : 0.5) : _buttonSize
anchors.centerIn: parent
opened: popupDialog.visible
opened: plasmoid.expanded

onClicked: {
popupDialog.setVisible(!popupDialog.visible)
plasmoid.expanded = !plasmoid.expanded
}
}
Dialog{
id: popupDialog
visualParent: playbackControl
}


Timer{
//HACK: For PopupApplet in Notification
running: playbackBar.visible
interval: 100
onTriggered: {
if((!vertical && playbackBar.width > playbackControl.width) ||
(vertical && playbackBar.height > playbackControl.height)){
playbackBar.visible = false
}
}
}

Expand Down
10 changes: 6 additions & 4 deletions plasmoid/contents/ui/CoverArt.qml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Rectangle{
height: units.iconSizes.enormous
color: Utils.adjustAlpha(theme.complementaryBackgroundColor, 0.4)
radius: 2
opacity: 0.1

border{
width: 1
Expand Down Expand Up @@ -76,15 +77,16 @@ Rectangle{
horizontalAlignment: Image.AlignHCenter
verticalAlignment: Image.AlignVCenter

Component.onCompleted: statusChanged(status)

onStatusChanged:{
if(status == Image.Ready)
if(status == Image.Ready && mpris2.artUrl != "")
appear.start()
else if(status == Image.Null)
fade.start()
else if(status == Image.Error)
else if(status == Image.Error){
fade.start()
debug("Err on CoverArt: " + mpris2.artUrl)
}else
fade.start()
}
}
}
3 changes: 2 additions & 1 deletion plasmoid/contents/ui/Dialog.qml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import QtQuick 2.4
import QtQuick.Layouts 1.1
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.core 2.0 as PlasmaCores
import org.kde.plasma.plasmoid 2.0

PlasmaCore.Dialog{
Expand All @@ -44,6 +44,7 @@ PlasmaCore.Dialog{
hideOnWindowDeactivate: true

onVisibleChanged: {
plasmoid.expanded = true
debug("Dialog visible: "+visible )
if(visible)
mpris2.interval = mpris2.maximumLoad
Expand Down
4 changes: 2 additions & 2 deletions plasmoid/contents/ui/FullApplet.qml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@

import QtQuick 2.4
import QtQuick.Layouts 1.1
// import org.kde.plasma.core 2.0 as PlasmaCore
// import org.kde.plasma.extras 2.0 as PlasmaExtras
import org.kde.plasma.extras 2.0 as PlasmaExtras

// import org.kde.plasma.core 2.0 as PlasmaCore

DefaultLayout{}
6 changes: 5 additions & 1 deletion plasmoid/contents/ui/Mpris2.qml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ PlasmaCore.DataSource{

engine: 'mpris2'

interval: plasmoid.expanded ? maximumLoad : minimumLoad

readonly property int maximumLoad: 450

readonly property int minimumLoad: 1500
Expand All @@ -45,7 +47,7 @@ PlasmaCore.DataSource{

property string identity: hasSource('Identity') ? data[source]['Identity'] : i18n("No media player")

property string playbackStatus: hasSource('PlaybackStatus') ? data[source]['PlaybackStatus'] : "Paused"
property string playbackStatus: hasSource('PlaybackStatus') ? data[source]['PlaybackStatus'] : ""

property string artUrl: hasMetadataMpris('artUrl') ? data[source]['Metadata']['mpris:artUrl'] : ""

Expand Down Expand Up @@ -78,6 +80,8 @@ PlasmaCore.DataSource{

Component.onCompleted: nextSource()

onIntervalChanged: debug("interval: "+interval)

onIdentityChanged:{
if(source.length > 0) Utils.setActions(source[0], identity)
}
Expand Down
4 changes: 2 additions & 2 deletions plasmoid/contents/ui/PlaybackItem.qml
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ Item{

property int buttonSize: units.iconSizes.small

visible: mpris2.sourceActive

enabled: mpris2.sourceActive && mpris2.canControl

visible: mpris2.sourceActive

signal playPause()

signal previous()
Expand Down
15 changes: 13 additions & 2 deletions plasmoid/contents/ui/PopupButton.qml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,16 @@ IconWidget{
id: svgSource
property var arrows: PlasmaCore.Svg{ imagePath: "widgets/arrows" }
property var media: PlasmaCore.Svg{ imagePath: "icons/media" }
function playbackIcon(){
var icon
if(mpris2.playbackStatus == "Playing")
icon = "media-playback-start"
else if(mpris2.playbackStatus == "Paused")
icon = "media-playback-pause"
else
icon = "media-playback-start"
return icon
}
}

state: "default"
Expand All @@ -49,11 +59,12 @@ IconWidget{

states: [
State{
when: !mpris2.sourceActive
when: !mpris2.sourceActive || !playbackBarVisible
PropertyChanges{
target: iconPopup
svg: svgSource.media
iconSource: "media-playback-start"
iconSource: svgSource.playbackIcon()
rotation: 0
}
},
State{
Expand Down
55 changes: 49 additions & 6 deletions plasmoid/contents/ui/TitleBar.qml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,56 @@

import QtQuick 2.4
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.extras 2.0 as PlasmaExtras
import "plasmapackage:/code/utils.js" as Utils

PlasmaExtras.Title{
id: titleBar
Layout.minimumHeight: height + units.smallSpacing
lineHeight: 1.2
text: mpris2.identity
enabled: mpris2.sourceActive
RowLayout{
Layout.minimumHeight: implicitHeight + units.smallSpacing

PlasmaExtras.Title{
id: titleBar
Layout.fillWidth: true
lineHeight: 1.2
text: mpris2.identity
enabled: mpris2.sourceActive
}

PlasmaComponents.ToolButton{
id: menuButton
property var contextMenu

Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
enabled: mpris2.sourceActive
iconSource: "configure"
onClicked: {
if(!contextMenu)
contextMenu = contextMenuComponent.createObject(menuButton)
contextMenu.open()
}
}

Component{
id: contextMenuComponent
PlasmaComponents.ContextMenu{
visualParent: menuButton
PlasmaComponents.MenuItem{
icon: Utils.iconApplication
text: "Open " + mpris2.identity
onClicked: action_raise()
}
PlasmaComponents.MenuItem{
icon: "window-close"
text: "Quit"
onClicked: action_quit()
}
PlasmaComponents.MenuItem{
icon: "go-next"
text: "Next multimedia source"
onClicked: action_nextSource()
}
}
}
}

8 changes: 7 additions & 1 deletion plasmoid/contents/ui/main.qml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ 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
import "plasmapackage:/code/utils.js" as Utils

Item {
id: root
Expand All @@ -45,8 +46,10 @@ Item {
onFormFactorChanged: {
debug("FormFactor: " + plasmoid.formFactor)
if(plasmoid.formFactor == 0){
Plasmoid.expanded = true
Plasmoid.preferredRepresentation = Plasmoid.fullRepresentation
mpris2.interval = mpris2.maximumLoad
}else{
plasmoid.expanded = false
}
}
}
Expand All @@ -73,6 +76,9 @@ Item {
Component.onCompleted:{
debug("Location: " + Plasmoid.location)
plasmoid.formFactorChanged()
//NOTE: Init Utils
Utils.plasmoid = plasmoid
Utils.i18n = i18n
}

QtObject{
Expand Down
6 changes: 3 additions & 3 deletions plasmoid/metadata.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ X-Plasma-MainScript=ui/main.qml
X-Plasma-Provides=org.kde.plasma.multimediacontrols
X-Plasma-NotificationArea=true
X-Plasma-DBusActivationService=org.mpris.MediaPlayer2.*
#X-Plasma-ConfigPlugins=kcm_playbarshortcuts
# X-Plasma-ConfigPlugins=kcm_playbarshortcuts

X-KDE-PluginInfo-Author=Smith AR
X-KDE-PluginInfo-Category=Multimedia
X-KDE-PluginInfo-Email[email protected]
X-KDE-PluginInfo-License=GPLv3
X-KDE-PluginInfo-Name=audoban.playbar2
X-KDE-PluginInfo-Version=2alpha
X-KDE-PluginInfo-Name=audoban.applet.playbar
X-KDE-PluginInfo-Version=1.9Alpha
X-KDE-PluginInfo-Website=https://github.com/audoban/PlayBar2

X-KDE-ServiceTypes=Plasma/Applet
Expand Down

0 comments on commit ad35da8

Please sign in to comment.