TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicremotewidgetforcomplexstyle.cpp
Go to the documentation of this file.
2 #include "musicsong.h"
3 
5  : MusicRemoteWidget(parent)
6 {
7  setGeometry(200, 200, 320, 110);
8  adjustPosition(this);
9 
10  m_iconLabel = new QLabel(this);
11  m_songName = new QLabel(this);
12  m_songArtist = new QLabel(this);
13 
14  QHBoxLayout *hbox = new QHBoxLayout(this);
15  hbox->setContentsMargins(5, 5, 5, 5);
16  hbox->addWidget(m_mainWidget);
17  setLayout(hbox);
18 
19  QWidget *mvWidget = new QWidget(m_mainWidget);
20  QHBoxLayout *mhbox = new QHBoxLayout(m_mainWidget);
21  mhbox->addWidget(m_iconLabel);
22  mhbox->addWidget(mvWidget);
23  m_mainWidget->setLayout(mhbox);
24 
25  QWidget *toolWidget = new QWidget(mvWidget);
26  QHBoxLayout *toolbox = new QHBoxLayout(toolWidget);
27  toolbox->setContentsMargins(0, 0, 0, 0);
28  toolbox->setSpacing(1);
29  toolbox->addWidget(m_preSongButton);
30  toolbox->addWidget(m_playButton);
31  toolbox->addWidget(m_nextSongButton);
32  toolbox->addWidget(m_volumeWidget);
33  toolbox->addWidget(m_settingButton);
34  toolbox->addWidget(m_showMainWindowButton);
35  toolWidget->setLayout(toolbox);
36 
37  QVBoxLayout *mvbox = new QVBoxLayout(mvWidget);
38  mvbox->setContentsMargins(0, 0, 0, 0);
39  mvbox->setSpacing(0);
40  mvbox->addWidget(m_songName);
41  mvbox->addWidget(m_songArtist);
42  mvbox->addWidget(toolWidget);
43  mvWidget->setLayout(mvbox);
44 
45  m_iconLabel->setFixedSize(80, 80);
46  m_songName->setStyleSheet(TTK::UI::WidgetStyle01);
47  m_songArtist->setStyleSheet(TTK::UI::WidgetStyle01);
48 }
49 
51 {
52  delete m_iconLabel;
53  delete m_songName;
54  delete m_songArtist;
55 }
56 
58 {
59  const bool flag = (TTK::String::split(value).count() == 1);
60 
61  m_songName->setText(TTK::generateSongTitle(value));
62  m_songArtist->setText(flag ? "--" : TTK::generateSongArtist(value));
63 
64  if(!showArtPicture(m_songArtist->text()) && !showArtPicture(m_songName->text()))
65  {
66  m_iconLabel->setPixmap(QPixmap(":/image/lb_default_art").scaled(80, 80));
67  }
68 }
69 
71 {
72  const QPixmap originPath(QString(ART_DIR_FULL + name + SKN_FILE));
73  if(!originPath.isNull())
74  {
75  m_iconLabel->setPixmap(originPath.scaled(80, 80));
76  return true;
77  }
78  return false;
79 }
TTK_MODULE_EXPORT QString generateSongArtist(const QString &name, const QString &key=TTK_DEFAULT_STR)
Definition: musicsong.cpp:128
QPushButton * m_nextSongButton
QPushButton * m_showMainWindowButton
#define ART_DIR_FULL
Definition: musicobject.h:128
static const QString WidgetStyle01
Widget.
virtual void setLabelText(const QString &value) overridefinal
void adjustPosition(QWidget *w)
TTK_MODULE_EXPORT QString generateSongTitle(const QString &name, const QString &key=TTK_DEFAULT_STR)
Definition: musicsong.cpp:117
const char * name
Definition: http_parser.c:458
QPushButton * m_settingButton
The class of the desktop remote widget base.
TTK_MODULE_EXPORT QStringList split(const QString &value, const QString &key=TTK_DEFAULT_STR)
QPushButton * m_playButton
QPushButton * m_preSongButton
#define SKN_FILE
Definition: musicobject.h:61