TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicwebdjradioinfowidget.cpp
Go to the documentation of this file.
4 #include "musiccoverrequest.h"
5 
6 #include <qmath.h>
7 
10 {
11 
12 }
13 
15 {
16  removeItems();
17 }
18 
20 {
22  if(parent()->metaObject()->indexOfSlot("queryAllFinished()") != -1)
23  {
24  connect(m_networkRequest, SIGNAL(downLoadDataChanged(QString)), parent(), SLOT(queryAllFinished()));
25  }
26 }
27 
28 
29 
32 {
33  delete m_statusLabel;
34  m_statusLabel = nullptr;
35 
37  m_queryTableWidget->hide();
38 
41  connect(d, SIGNAL(createCategoryItem(MusicResultDataItem)), SLOT(createProgramCategoryItem(MusicResultDataItem)));
42 }
43 
45 {
48 }
49 
51 {
53 
54  if(!m_resizeWidgets.isEmpty())
55  {
56  const int width = G_SETTING_PTR->value(MusicSettingManager::WidgetSize).toSize().width() - WINDOW_WIDTH_MIN + 390;
57 
58  TTKResizeWidget *data = &m_resizeWidgets[0];
59  data->m_label->setText(TTK::Widget::elidedText(data->m_font, data->m_label->toolTip(), Qt::ElideRight, width));
60 
61  data = &m_resizeWidgets[1];
62  data->m_label->setText(TTK::Widget::elidedText(data->m_font, data->m_label->toolTip(), Qt::ElideRight, width));
63 
64  data = &m_resizeWidgets[2];
65  data->m_label->setText(TTK::Widget::elidedText(data->m_font, data->m_label->toolTip(), Qt::ElideRight, width));
66 
67  data = &m_resizeWidgets[3];
68  data->m_label->setText(TTK::Widget::elidedText(data->m_font, data->m_label->toolTip(), Qt::ElideRight, width));
69  }
70 }
71 
73 {
75 }
76 
78 {
79  m_currentPlaylistItem = item;
80 
81  createLabels();
82 
83  if(!m_resizeWidgets.isEmpty())
84  {
86  {
87  MusicCoverRequest *d = G_DOWNLOAD_QUERY_PTR->makeCoverRequest(this);
88  connect(d, SIGNAL(downLoadRawDataChanged(QByteArray)), SLOT(downLoadFinished(QByteArray)));
89  d->startToRequest(item.m_coverUrl);
90  }
91 
92  const int width = G_SETTING_PTR->value(MusicSettingManager::WidgetSize).toSize().width() - WINDOW_WIDTH_MIN + 390;
93 
94  TTKResizeWidget *data = &m_resizeWidgets[0];
95  data->m_label->setToolTip(item.m_name);
96  data->m_label->setText(TTK::Widget::elidedText(data->m_font, data->m_label->toolTip(), Qt::ElideRight, width));
97 
98  data = &m_resizeWidgets[1];
99  data->m_label->setToolTip(tr("Singer: %1").arg(item.m_nickName));
100  data->m_label->setText(TTK::Widget::elidedText(data->m_font, data->m_label->toolTip(), Qt::ElideRight, width));
101 
102  data = &m_resizeWidgets[2];
103  data->m_label->setToolTip(tr("PlayCount: %1").arg(item.m_count));
104  data->m_label->setText(TTK::Widget::elidedText(data->m_font, data->m_label->toolTip(), Qt::ElideRight, width));
105 
106  data = &m_resizeWidgets[3];
107  data->m_label->setToolTip(tr("UpdateTime: %1").arg(item.m_updateTime));
108  data->m_label->setText(TTK::Widget::elidedText(data->m_font, data->m_label->toolTip(), Qt::ElideRight, width));
109  }
110 }
111 
113 {
114  initFirstWidget();
115  m_container->show();
116 
117  layout()->removeWidget(m_mainWindow);
118  QScrollArea *scrollArea = new QScrollArea(this);
120  layout()->addWidget(scrollArea);
121 
122  QWidget *function = new QWidget(m_mainWindow);
123  function->setStyleSheet(TTK::UI::CheckBoxStyle01 + TTK::UI::PushButtonStyle03);
124  QVBoxLayout *grid = new QVBoxLayout(function);
125 
126  QWidget *firstTopFuncWidget = new QWidget(function);
127  QHBoxLayout *firstTopFuncLayout = new QHBoxLayout(firstTopFuncWidget);
128 
129  QLabel *firstLabel = new QLabel(function);
130  firstLabel->setText(tr("<font color=#158FE1> DJRadio > %1 </font>").arg(m_currentPlaylistItem.m_name));
131 
132  QPushButton *backButton = new QPushButton(tr("Back"));
133  backButton->setFixedSize(90, 30);
134  backButton->setStyleSheet(TTK::UI::PushButtonStyle03);
135  backButton->setCursor(QCursor(Qt::PointingHandCursor));
136  connect(backButton, SIGNAL(clicked()), this, SIGNAL(backToMainMenu()));
137 
138  firstTopFuncLayout->addWidget(firstLabel);
139  firstTopFuncLayout->addWidget(backButton);
140  grid->addWidget(firstTopFuncWidget);
141  //
142  QWidget *topFuncWidget = new QWidget(function);
143  QHBoxLayout *topFuncLayout = new QHBoxLayout(topFuncWidget);
144 
145  m_iconLabel = new QLabel(topFuncWidget);
146  m_iconLabel->setPixmap(QPixmap(":/image/lb_warning").scaled(180, 180));
147  m_iconLabel->setFixedSize(210, 180);
148  //
149  QWidget *topLineWidget = new QWidget(topFuncWidget);
150  QVBoxLayout *topLineLayout = new QVBoxLayout(topLineWidget);
151  topLineLayout->setContentsMargins(10, 5, 5, 0);
152 
153  QLabel *nameLabel = new QLabel(topLineWidget);
154  QFont nameFont = nameLabel->font();
155  nameFont.setPixelSize(20);
156  nameLabel->setFont(nameFont);
157  nameLabel->setStyleSheet(TTK::UI::FontStyle01);
158  nameLabel->setText(TTK_DEFAULT_STR);
159 
160  QLabel *singerLabel = new QLabel(topLineWidget);
161  singerLabel->setStyleSheet(TTK::UI::ColorStyle04 + TTK::UI::FontStyle03);
162  singerLabel->setText(TTK_DEFAULT_STR);
163 
164  QLabel *playCountLabel = new QLabel(topLineWidget);
165  playCountLabel->setStyleSheet(TTK::UI::ColorStyle04 + TTK::UI::FontStyle03);
166 
167  QLabel *updateTimeLabel = new QLabel(topLineWidget);
168  updateTimeLabel->setStyleSheet(TTK::UI::ColorStyle04 + TTK::UI::FontStyle03);
169  updateTimeLabel->setText(TTK_DEFAULT_STR);
170 
171  topLineLayout->addWidget(nameLabel);
172  topLineLayout->addWidget(singerLabel);
173  topLineLayout->addWidget(playCountLabel);
174  topLineLayout->addWidget(updateTimeLabel);
175  topLineWidget->setLayout(topLineLayout);
176 
177  topFuncLayout->addWidget(m_iconLabel);
178  topFuncLayout->addWidget(topLineWidget);
179  topFuncWidget->setLayout(topFuncLayout);
180  grid->addWidget(topFuncWidget);
181  //
182  QWidget *functionWidget = new QWidget(this);
183  functionWidget->setStyleSheet(TTK::UI::PushButtonStyle03);
184  QHBoxLayout *hLayout = new QHBoxLayout(functionWidget);
185 
186  m_songButton = new QPushButton(functionWidget);
187  m_songButton->setText(tr("SongItems"));
188  m_songButton->setFixedSize(100, 25);
189  m_songButton->setCursor(QCursor(Qt::PointingHandCursor));
190 
191  hLayout->addWidget(m_songButton);
192  hLayout->addStretch(1);
193  functionWidget->setLayout(hLayout);
194 
195  QButtonGroup *buttonGroup = new QButtonGroup(this);
196  buttonGroup->addButton(m_songButton, 0);
197  QtButtonGroupConnect(buttonGroup, m_container, setCurrentIndex, TTK_SLOT);
198 
199 #ifdef Q_OS_UNIX
200  backButton->setFocusPolicy(Qt::NoFocus);
201  m_songButton->setFocusPolicy(Qt::NoFocus);
202 #endif
203 
204  grid->addWidget(functionWidget);
205  grid->addWidget(m_container);
206  grid->addStretch(1);
207 
208  function->setLayout(grid);
209  m_mainWindow->layout()->addWidget(function);
210 
211  m_resizeWidgets.push_back({nameLabel, nameLabel->font()});
212  m_resizeWidgets.push_back({singerLabel, singerLabel->font()});
213  m_resizeWidgets.push_back({playCountLabel, playCountLabel->font()});
214  m_resizeWidgets.push_back({updateTimeLabel, updateTimeLabel->font()});
215 }
virtual void setQueryInput(MusicAbstractQueryRequest *query)
The class of the search result data item.
The class of the dj radio music info table widget.
virtual void setCurrentValue(const QString &value) overridefinal
#define TTK_DEFAULT_STR
Definition: ttkglobal.h:200
static const QString FontStyle03
MusicItemQueryTableWidget * m_queryTableWidget
virtual void startToRequest(const QString &url)=0
static const QString CheckBoxStyle01
CheckBox.
static const QString ColorStyle04
Definition: musicuiobject.h:46
virtual void setCurrentValue(const QString &value)
static const QString FontStyle01
Font.
The class of the query item table widget.
The class of the wangyi query program category download data from net.
static const QString PushButtonStyle03
void createProgramCategoryItem(const MusicResultDataItem &item)
MusicWebDJRadioInfoWidget(QWidget *parent=nullptr)
virtual void removeItems() overridefinal
TTK_MODULE_EXPORT QString elidedText(const QFont &font, const QString &text, Qt::TextElideMode mode, int width)
virtual void setQueryInput(MusicAbstractQueryRequest *query) overridefinal
#define TTK_SLOT
Definition: ttkqtglobal.h:165
#define QtButtonGroupConnect(p, q, f, s)
Button group connect.
Definition: ttkqtcompat.h:101
static bool isCoverValid(const QString &url)
void downLoadFinished(const QByteArray &bytes)
The class of the item query widget base.
TTK_MODULE_EXPORT void generateVScrollAreaFormat(QWidget *widget, QWidget *parent, bool background=true)
virtual void startToSearchByText(const QString &text) overridefinal
#define WINDOW_WIDTH_MIN
Definition: musicobject.h:153
#define G_DOWNLOAD_QUERY_PTR
virtual void resizeWidget() overridefinal
MusicWebDJRadioInfoTableWidget(QWidget *parent=nullptr)
The class of the cover data download request.
The class of the abstract query download data from net.
MusicAbstractQueryRequest * m_networkRequest
#define G_SETTING_PTR