TTKMusicPlayer  4.3.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicwebmvradioquerywidget.cpp
Go to the documentation of this file.
5 #include "musicqueryitemwidget.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_categoryButton = nullptr;
19 
21  connect(m_networkRequest, SIGNAL(createMVRadioItem(MusicResultDataItem)), SLOT(createMVRadioCategoryItem(MusicResultDataItem)));
22 }
23 
25 {
26  delete m_infoWidget;
27  delete m_gridLayout;
28  delete m_categoryButton;
29 }
30 
32 {
35 }
36 
38 {
39  if(m_infoWidget)
40  {
42  }
43 
44  if(m_resizeWidgets.isEmpty() || !m_gridLayout)
45  {
46  return;
47  }
48 
49  for(const Data &data : qAsConst(m_resizeWidgets))
50  {
51  m_gridLayout->removeWidget(data.m_label);
52  }
53 
55  const int lineNumber = (QUERY_WIDGET_WIDTH - lineSize / 2) / lineSize;
56  for(int i = 0; i < m_resizeWidgets.count(); ++i)
57  {
58  m_gridLayout->addWidget(m_resizeWidgets[i].m_label, i / lineNumber, i % lineNumber, Qt::AlignLeft);
59  }
60 }
61 
63 {
64  if(!m_initialized)
65  {
66  delete m_statusLabel;
67  m_statusLabel = nullptr;
68 
69  m_container->removeWidget(m_mainWidget);
70  QScrollArea *scrollArea = new QScrollArea(this);
72  m_container->addWidget(scrollArea);
73 
74  m_initialized = true;
75  QVBoxLayout *mainLayout = TTKObjectCast(QVBoxLayout*, m_mainWidget->layout());
76  QWidget *containTopWidget = new QWidget(m_mainWidget);
77  QHBoxLayout *containTopLayout = new QHBoxLayout(containTopWidget);
78  containTopLayout->setContentsMargins(10, 10, 0, 0);
79 
82  containTopLayout->addWidget(m_categoryButton);
83  containTopLayout->addStretch(1);
84  containTopWidget->setLayout(containTopLayout);
85 
86  QFrame *line = new QFrame(m_mainWidget);
87  line->setFrameShape(QFrame::HLine);
88  line->setStyleSheet(TTK::UI::ColorStyle12);
89 
90  QWidget *containWidget = new QWidget(m_mainWidget);
91  m_gridLayout = new QGridLayout(containWidget);
92  m_gridLayout->setVerticalSpacing(35);
93  containWidget->setLayout(m_gridLayout);
94 
95  mainLayout->addWidget(containTopWidget);
96  mainLayout->addWidget(line);
97  mainLayout->addWidget(containWidget);
98  mainLayout->addStretch(1);
99  }
100 
103  label->setResultDataItem(item);
104 
105  const int lineSize = MusicRectQueryItemWidget::LINE_SPACING_SIZE;
106  const int lineNumber = (QUERY_WIDGET_WIDTH - lineSize / 2) / lineSize;
107  m_gridLayout->addWidget(label, m_resizeWidgets.count() / lineNumber, m_resizeWidgets.count() % lineNumber, Qt::AlignLeft);
108  m_resizeWidgets.append({label, label->font()});
109 }
110 
112 {
113  delete m_infoWidget;
115  connect(m_infoWidget, SIGNAL(backToMainMenu()), SLOT(backToMainMenuClicked()));
117 
118  m_container->addWidget(m_infoWidget);
119  m_container->setCurrentIndex(1);
120 }
121 
123 {
124  m_container->setCurrentIndex(0);
125 }
126 
128 {
129  if(m_categoryButton)
130  {
131  m_value.clear();
132  m_categoryButton->setText(category.m_value);
134 
137  }
138 }
The class of the search result data item.
void categoryChanged(const MusicResultsCategoryItem &category)
MusicWebMVRadioQueryCategoryPopWidget * m_categoryButton
virtual void setCurrentValue(const QString &value)
static const QString ColorStyle12
Definition: musicuiobject.h:70
The class of the rect query item widget.
virtual void setCurrentValue(const QString &value) overridefinal
The class of the music mv category pop widget.
#define qAsConst
Definition: ttkqtglobal.h:57
#define MUSIC_MOVIE_RADIO
The class of the music mv info widget.
virtual void setCurrentValue(const QString &value) overridefinal
virtual void resizeGeometry() overridefinal
static constexpr int LINE_SPACING_SIZE
TTK_MODULE_EXPORT void generateVScrollAreaStyle(QWidget *widget, QWidget *parent, bool background=true)
MusicWebMVRadioQueryWidget(QWidget *parent=nullptr)
The class of the item query widget base.
virtual void resizeGeometry() overridefinal
void setResultDataItem(const MusicResultDataItem &item)
The class of the results category item.
void createMVRadioCategoryItem(const MusicResultDataItem &item)
The class of the mv radio category request.
void setCategory(const QString &server, QObject *obj)
MusicAbstractQueryRequest * m_networkRequest
MusicWebMVRadioInfoWidget * m_infoWidget
#define QUERY_WIDGET_WIDTH
virtual void startToSearch(const QString &value)=0
void currentItemClicked(const MusicResultDataItem &item)
#define TTKObjectCast(x, y)
Definition: ttkqtglobal.h:82