TaskbarComponentWin.cpp 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #include <QApplication>
  2. #include <QStyle>
  3. #include "TaskbarComponentWin.h"
  4. /////////////////////////////////////////////////////////////////////////////////////////
  5. void TaskbarComponentWin::setWindow(QQuickWindow* window)
  6. {
  7. TaskbarComponent::setWindow(window);
  8. m_button = new QWinTaskbarButton(m_window);
  9. m_button->setWindow(m_window);
  10. m_toolbar = new QWinThumbnailToolBar(m_window);
  11. m_toolbar->setWindow(m_window);
  12. m_prev = new QWinThumbnailToolButton(m_toolbar);
  13. connect(m_prev, &QWinThumbnailToolButton::clicked, this, &TaskbarComponentWin::onPrevClicked);
  14. m_pause = new QWinThumbnailToolButton(m_toolbar);
  15. connect(m_pause, &QWinThumbnailToolButton::clicked, this, &TaskbarComponentWin::onPauseClicked);
  16. m_next = new QWinThumbnailToolButton(m_toolbar);
  17. connect(m_next, &QWinThumbnailToolButton::clicked, this, &TaskbarComponentWin::onNextClicked);
  18. m_prev->setIcon(QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward));
  19. m_next->setIcon(QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward));
  20. m_toolbar->addButton(m_prev);
  21. m_toolbar->addButton(m_pause);
  22. m_toolbar->addButton(m_next);
  23. connect(&PlayerComponent::Get(), &PlayerComponent::positionUpdate, this, &TaskbarComponentWin::setProgress);
  24. setControlsVisible(false);
  25. setPaused(false);
  26. }
  27. /////////////////////////////////////////////////////////////////////////////////////////
  28. void TaskbarComponentWin::onPauseClicked()
  29. {
  30. InputComponent::Get().sendAction("play_pause");
  31. }
  32. /////////////////////////////////////////////////////////////////////////////////////////
  33. void TaskbarComponentWin::onNextClicked()
  34. {
  35. InputComponent::Get().sendAction("next");
  36. }
  37. /////////////////////////////////////////////////////////////////////////////////////////
  38. void TaskbarComponentWin::onPrevClicked()
  39. {
  40. InputComponent::Get().sendAction("previous");
  41. }
  42. /////////////////////////////////////////////////////////////////////////////////////////
  43. void TaskbarComponentWin::setControlsVisible(bool value)
  44. {
  45. m_button->progress()->setVisible(value);
  46. for (auto& button : m_toolbar->buttons())
  47. {
  48. button->setVisible(value);
  49. }
  50. }
  51. /////////////////////////////////////////////////////////////////////////////////////////
  52. void TaskbarComponentWin::setProgress(quint64 value)
  53. {
  54. qint64 duration = PlayerComponent::Get().getDuration();
  55. int progress = 0;
  56. if (duration != 0) {
  57. progress = (int) (value * 100 / duration)
  58. }
  59. m_button->progress()->setValue(progress);
  60. }
  61. /////////////////////////////////////////////////////////////////////////////////////////
  62. void TaskbarComponentWin::setPaused(bool value)
  63. {
  64. if (value)
  65. {
  66. // m_pause->setToolTip("Resume");
  67. m_pause->setIcon(QApplication::style()->standardIcon(QStyle::SP_MediaPlay));
  68. }
  69. else
  70. {
  71. // m_pause->setToolTip("Pause");
  72. m_pause->setIcon(QApplication::style()->standardIcon(QStyle::SP_MediaPause));
  73. }
  74. m_button->progress()->setPaused(value);
  75. }