TTKMusicPlayer  4.3.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicwebdjradioquerywidget.cpp
Go to the documentation of this file.
3 #include "musicqueryitemwidget.h"
4 #include "musicpagequerywidget.h"
6 
9 {
10  m_container->show();
11  layout()->removeWidget(m_mainWidget);
12  layout()->addWidget(m_container);
13  m_container->addWidget(m_mainWidget);
14 
15  m_initialized = false;
16  m_infoWidget = nullptr;
17  m_gridLayout = nullptr;
18  m_pageQueryWidget = nullptr;
19 
22 }
23 
25 {
26  delete m_infoWidget;
27  delete m_gridLayout;
28  delete m_pageQueryWidget;
29 }
30 
32 {
35 }
36 
38 {
41  item.m_id = id;
42  currentItemClicked(item);
43 }
44 
46 {
47  if(m_infoWidget)
48  {
50  }
51 
52  if(m_resizeWidgets.isEmpty() || !m_gridLayout)
53  {
54  return;
55  }
56 
57  for(const Data &data : qAsConst(m_resizeWidgets))
58  {
59  m_gridLayout->removeWidget(data.m_label);
60  }
61 
63  const int lineNumber = (QUERY_WIDGET_WIDTH - lineSize / 2) / lineSize;
64  for(int i = 0; i < m_resizeWidgets.count(); ++i)
65  {
66  m_gridLayout->addWidget(m_resizeWidgets[i].m_label, i / lineNumber, i % lineNumber, Qt::AlignLeft);
67  }
68 }
69 
71 {
72  if(!m_initialized)
73  {
74  delete m_statusLabel;
75  m_statusLabel = nullptr;
76 
77  m_container->removeWidget(m_mainWidget);
78  QScrollArea *scrollArea = new QScrollArea(this);
80  m_container->addWidget(scrollArea);
81 
82  m_initialized = true;
83  QVBoxLayout *mainLayout = TTKObjectCast(QVBoxLayout*, m_mainWidget->layout());
84  QWidget *containTopWidget = new QWidget(m_mainWidget);
85  QHBoxLayout *containTopLayout = new QHBoxLayout(containTopWidget);
86  containTopLayout->setContentsMargins(10, 10, 0, 0);
87 
88  QPushButton *backButton = new QPushButton(tr("Back"), containTopWidget);
89  backButton->setFixedSize(90, 30);
90  backButton->setStyleSheet(TTK::UI::PushButtonStyle03);
91  backButton->setCursor(QCursor(Qt::PointingHandCursor));
92  connect(backButton, SIGNAL(clicked()), this, SIGNAL(backToMainMenu()));
93  containTopLayout->addWidget(backButton);
94  containTopLayout->addStretch(1);
95 #ifdef Q_OS_UNIX
96  backButton->setFocusPolicy(Qt::NoFocus);
97 #endif
98  containTopWidget->setLayout(containTopLayout);
99 
100  QFrame *line = new QFrame(m_mainWidget);
101  line->setFrameShape(QFrame::HLine);
102  line->setStyleSheet(TTK::UI::ColorStyle12);
103 
104  QWidget *containWidget = new QWidget(m_mainWidget);
105  m_gridLayout = new QGridLayout(containWidget);
106  m_gridLayout->setVerticalSpacing(20);
107  containWidget->setLayout(m_gridLayout);
108 
109  mainLayout->addWidget(containTopWidget);
110  mainLayout->addWidget(line);
111  mainLayout->addWidget(containWidget);
112 
114  connect(m_pageQueryWidget, SIGNAL(clicked(int)), SLOT(buttonClicked(int)));
115 
117  mainLayout->addStretch(1);
118  }
119 
121  {
123  }
124 
127  label->setShowTime(false);
128  label->setShowCount(false);
129  label->setResultDataItem(item, new MusicCoverSourceRequest(this));
130 
132  const int lineNumber = (QUERY_WIDGET_WIDTH - lineSize / 2) / lineSize;
133  m_gridLayout->addWidget(label, m_resizeWidgets.count() / lineNumber, m_resizeWidgets.count() % lineNumber, Qt::AlignLeft);
134  m_resizeWidgets.append({label, label->font()});
135 }
136 
138 {
139  delete m_infoWidget;
141  connect(m_infoWidget, SIGNAL(backToMainMenu()), SLOT(backToMainMenuClicked()));
143 
144  m_container->addWidget(m_infoWidget);
145  m_container->setCurrentIndex(1);
146 }
147 
149 {
150  if(!m_initialized)
151  {
152  Q_EMIT backToMainMenu();
153  return;
154  }
155  m_container->setCurrentIndex(0);
156 }
157 
159 {
163 }
The class of the dj radio music info widget.
The class of the search result data item.
virtual void setCurrentValue(const QString &value) overridefinal
int pageTotalSize() const noexcept
void currentItemClicked(const MusicResultDataItem &item)
static constexpr int LINE_SPACING_SIZE
MusicPageQueryWidget * m_pageQueryWidget
virtual void setCurrentValue(const QString &value)
MusicWebDJRadioInfoWidget * m_infoWidget
static const QString ColorStyle12
Definition: musicuiobject.h:70
virtual void startToSearchByID(const QString &value)
virtual void setCurrentKey(const QString &id) overridefinal
MusicWebDJRadioQueryWidget(QWidget *parent=nullptr)
virtual void resizeGeometry() overridefinal
The class of the wangyi query program category data from net.
#define qAsConst
Definition: ttkqtglobal.h:57
virtual void setCurrentValue(const QString &value) overridefinal
void setShowTime(bool v) noexcept
The class of the cover source data download request.
static const QString PushButtonStyle03
The class of the page query widget.
virtual void startToPage(int offset)
void page(int index, int total)
void createProgramItem(const MusicResultDataItem &item)
TTK_MODULE_EXPORT void generateVScrollAreaStyle(QWidget *widget, QWidget *parent, bool background=true)
The class of the item query widget base.
void setResultDataItem(const MusicResultDataItem &item, MusicCoverRequest *cover)
void setShowCount(bool v) noexcept
virtual void resizeGeometry() overridefinal
QWidget * createPageWidget(QWidget *parent, int total)
MusicAbstractQueryRequest * m_networkRequest
#define QUERY_WIDGET_WIDTH
#define TTKObjectCast(x, y)
Definition: ttkqtglobal.h:82
The class of the square query item widget.