TTKMusicPlayer  4.3.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicwebdjradiocategorywidget.cpp
Go to the documentation of this file.
3 #include "musicqueryitemwidget.h"
4 
6  : QWidget(parent)
7 {
8  QHBoxLayout *layout = new QHBoxLayout(this);
9  layout->setSpacing(0);
10  layout->setContentsMargins(0, 0, 0, 0);
11  setLayout(layout);
12 
13  QWidget *mainWindow = new QWidget(this);
14 
15  QScrollArea *scrollArea = new QScrollArea(this);
16  TTK::Widget::generateVScrollAreaStyle(scrollArea, mainWindow);
17  layout->addWidget(scrollArea);
18 
19  m_gridLayout = new QGridLayout(mainWindow);
20  m_gridLayout->setVerticalSpacing(35);
21  mainWindow->setLayout(m_gridLayout);
22 
24  connect(m_networkRequest, SIGNAL(downloadDataChanged(QString)), SLOT(createCategoryItems()));
25 }
26 
28 {
29  delete m_gridLayout;
30  delete m_networkRequest;
31 }
32 
34 {
36 }
37 
39 {
40  if(m_resizeWidgets.isEmpty())
41  {
42  return;
43  }
44 
45  for(QWidget *widget : qAsConst(m_resizeWidgets))
46  {
47  m_gridLayout->removeWidget(widget);
48  }
49 
51  const int lineNumber = (QUERY_WIDGET_WIDTH - lineSize / 2) / lineSize;
52  for(int i = 0; i < m_resizeWidgets.count(); ++i)
53  {
54  m_gridLayout->addWidget(m_resizeWidgets[i], i / lineNumber, i % lineNumber, Qt::AlignCenter);
55  }
56 }
57 
59 {
60  for(const MusicResultDataItem &item : m_networkRequest->items())
61  {
64  label->setResultDataItem(item);
65 
67  const int lineNumber = (QUERY_WIDGET_WIDTH - lineSize / 2) / lineSize;
68  m_gridLayout->addWidget(label, m_resizeWidgets.count() / lineNumber, m_resizeWidgets.count() % lineNumber, Qt::AlignCenter);
69  m_resizeWidgets << label;
70  }
71 }
The class of the search result data item.
The class of the label query item widget.
void currentItemClicked(const MusicResultDataItem &item)
void setResultDataItem(const MusicResultDataItem &item)
MusicDJRadioCategoryRequest * m_networkRequest
const MusicResultDataItemList & items() const noexcept
#define qAsConst
Definition: ttkqtglobal.h:57
static constexpr int LINE_SPACING_SIZE
TTK_MODULE_EXPORT void generateVScrollAreaStyle(QWidget *widget, QWidget *parent, bool background=true)
MusicWebDJRadioCategoryWidget(QWidget *parent=nullptr)
#define QUERY_WIDGET_WIDTH
The class of the music dj radio category request.