TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicremotewidgetforripple.cpp
Go to the documentation of this file.
2 #include "musictinyuiobject.h"
3 #include "musicmarqueewidget.h"
4 #include "musicqmmputils.h"
6 #include <qmmp/visual.h>
7 
9  : MusicRemoteWidget(parent),
10  m_mode(true),
11  m_visual(nullptr)
12 {
13  setGeometry(200, 200, 320, 100);
14  adjustPosition(this);
15 
16  QHBoxLayout *hbox = new QHBoxLayout(this);
17  hbox->setContentsMargins(0, 0, 0, 0);
18  hbox->setSpacing(0);
19  hbox->addWidget(m_mainWidget);
20  setLayout(hbox);
21 
22  QWidget *bottomWidget = new QWidget(m_mainWidget);
23  m_visualLayout = new QVBoxLayout(m_mainWidget);
24  m_visualLayout->setContentsMargins(5, 0, 5, 0);
25  m_visualLayout->setSpacing(0);
26  m_visualLayout->addWidget(bottomWidget);
27  m_mainWidget->setLayout(m_visualLayout);
28 
30 
33 
34  m_preSongButton->hide();
35  m_nextSongButton->hide();
36 
37  m_visualModeButton = new QPushButton(this);
38 #ifdef Q_OS_UNIX
39  m_visualModeButton->setFocusPolicy(Qt::NoFocus);
40 #endif
41  m_visualModeButton->setToolTip(tr("Visual Mode"));
42  m_visualModeButton->setFixedSize(26, 18);
44  m_visualModeButton->setCursor(QCursor(Qt::PointingHandCursor));
45  connect(m_visualModeButton, SIGNAL(clicked()), SLOT(visualModeChanged()));
46 
47  QHBoxLayout *bottomWidgetBox = new QHBoxLayout(bottomWidget);
48  bottomWidgetBox->setContentsMargins(0, 0, 0, 0);
49  bottomWidgetBox->setSpacing(1);
50  bottomWidgetBox->addWidget(m_playButton);
51  bottomWidgetBox->setSpacing(1);
52  bottomWidgetBox->addWidget(m_songNameLabel);
53  bottomWidgetBox->setSpacing(1);
54  bottomWidgetBox->addWidget(m_volumeWidget);
55  bottomWidgetBox->addWidget(m_visualModeButton);
56  bottomWidgetBox->addWidget(m_settingButton);
57  bottomWidgetBox->addWidget(m_showMainWindowButton);
58  bottomWidget->setLayout(bottomWidgetBox);
59 }
60 
62 {
64  delete m_visualModeButton;
65  delete m_songNameLabel;
66 }
67 
68 void MusicRemoteWidgetForRipple::setLabelText(const QString &value)
69 {
70  m_songNameLabel->setText(TTK::Widget::elidedText(font(), value, Qt::ElideRight, width() - 20));
71 }
72 
74 {
76  m_mode = !m_mode;
78 }
79 
81 {
82  TTK::TTKQmmp::enabledVisualPlugin(m_mode ? "outerripples" : "outerrayswave", true);
83 
84  const QList<Visual*> *vs = Visual::visuals();
85  if(!vs->isEmpty() && vs->back())
86  {
87  m_visual = vs->back();
88  m_visualLayout->insertWidget(0, m_visual);
89  }
90 }
91 
93 {
94  if(m_visualLayout->count() > 1)
95  {
96  m_visualLayout->removeWidget(m_visual);
97  m_visual = nullptr;
98  }
99  TTK::TTKQmmp::enabledVisualPlugin(m_mode ? "outerripples" : "outerrayswave", false);
100 }
static constexpr const char * TinyBtnVisual
QPushButton * m_nextSongButton
QPushButton * m_showMainWindowButton
TTK_MODULE_EXPORT void enabledVisualPlugin(const QString &name, bool enabled)
static const QString WidgetStyle01
Widget.
void adjustPosition(QWidget *w)
MusicRemoteWidgetForRipple(QWidget *parent=nullptr)
QPushButton * m_settingButton
virtual void setLabelText(const QString &value) overridefinal
TTK_MODULE_EXPORT QString elidedText(const QFont &font, const QString &text, Qt::TextElideMode mode, int width)
The class of the desktop remote widget base.
The class of the marquee widget.
void setText(const QString &newText)
QPushButton * m_playButton
static QList< Visual * > * visuals()
QPushButton * m_preSongButton