PlayerControls.qml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import QtQuick 2.0
  2. import DMusic 1.0
  3. Item {
  4. id: root
  5. property bool playing: false
  6. property int nextMode: Config.NextSequence
  7. property int loopMode: Config.LoopNone
  8. signal pause_or_play()
  9. signal next()
  10. signal prev()
  11. signal changeLoopMode(var mode)
  12. signal changeNextMode(var mode)
  13. PlayerControlsButton {
  14. id: _play_pause
  15. anchors.centerIn: root
  16. width: 30
  17. height: 30
  18. icon: playing? "qrc:/resources/player/pause.svg" : "qrc:/resources/player/play.svg"
  19. onClick: pause_or_play()
  20. }
  21. PlayerControlsButton {
  22. id: _next
  23. anchors.verticalCenter: root.verticalCenter
  24. anchors.horizontalCenter: root.horizontalCenter
  25. anchors.horizontalCenterOffset: 50
  26. icon: "qrc:/resources/player/next.svg"
  27. onClick: next()
  28. }
  29. PlayerControlsButton {
  30. id: _prev
  31. anchors.verticalCenter: root.verticalCenter
  32. anchors.horizontalCenter: root.horizontalCenter
  33. anchors.horizontalCenterOffset: -50
  34. icon: "qrc:/resources/player/prev.svg"
  35. onClick: prev()
  36. }
  37. PlayerControlsButton {
  38. id: _loop
  39. anchors.verticalCenter: root.verticalCenter
  40. anchors.horizontalCenter: root.horizontalCenter
  41. anchors.horizontalCenterOffset: 50 + 50
  42. icon: loopMode == Config.LoopTrack? "qrc:/resources/player/loop-track.svg" : "qrc:/resources/player/loop-playlist.svg"
  43. style: loopMode != Config.LoopNone? Style.panel.icon.accent : Style.panel.icon.normal
  44. onClick: {
  45. if (loopMode == Config.LoopNone) changeLoopMode(Config.LoopPlaylist)
  46. else if (loopMode == Config.LoopPlaylist) changeLoopMode(Config.LoopTrack)
  47. else changeLoopMode(Config.LoopNone)
  48. }
  49. }
  50. PlayerControlsButton {
  51. id: _shuffle
  52. anchors.verticalCenter: root.verticalCenter
  53. anchors.horizontalCenter: root.horizontalCenter
  54. anchors.horizontalCenterOffset: -50 - 50
  55. icon: "qrc:/resources/player/shuffle.svg"
  56. style: nextMode != Config.NextSequence? Style.panel.icon.accent : Style.panel.icon.normal
  57. onClick: changeNextMode(nextMode == Config.NextSequence? Config.NextShuffle : Config.NextSequence)
  58. }
  59. }