TTKMusicPlayer  4.3.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musiclrcsearchtablewidget.cpp
Go to the documentation of this file.
2 #include "musictoastlabel.h"
4 
7 {
8  setColumnCount(7);
9 
10  QHeaderView *headerView = horizontalHeader();
11  headerView->resizeSection(0, 30);
12  headerView->resizeSection(1, 213);
13  headerView->resizeSection(2, 181);
14  headerView->resizeSection(3, 55);
15  headerView->resizeSection(4, 24);
16  headerView->resizeSection(5, 24);
17  headerView->resizeSection(6, 24);
18 }
19 
21 {
22  removeItems();
23 }
24 
26 {
27  if(!G_NETWORK_PTR->isOnline()) //no network connection
28  {
29  removeItems();
30  return;
31  }
32 
33  setLoadingStatus(true);
34  setQueryInput(G_DOWNLOAD_QUERY_PTR->makeSongRequest(this));
35  connect(m_networkRequest, SIGNAL(downloadDataChanged(QString)), SIGNAL(resolvedSuccess()));
36 
39 }
40 
42 {
43  if(!isValid(row))
44  {
45  MusicToastLabel::popup(tr("Please select one item first"));
46  return;
47  }
48 
49  const TTK::MusicSongInformationList &songInfos = m_networkRequest->items();
51  MusicAbstractDownloadRequest *req = G_DOWNLOAD_QUERY_PTR->makeLrcRequest(songInfos[row].m_lrcUrl, TTK::String::lrcDirPrefix() + m_networkRequest->queryValue() + LRC_FILE, this);
52  connect(req, SIGNAL(downloadDataChanged(QString)), SIGNAL(lrcDownloadStateChanged(QString)));
53  req->startToRequest();
54 }
55 
57 {
59  if(column == 6)
60  {
61  setCursor(QCursor(Qt::PointingHandCursor));
62  }
63  else
64  {
65  unsetCursor();
66  }
67 }
68 
70 {
72  switch(column)
73  {
74  case 6: downloadQueryResult(row); break;
75  default: break;
76  }
77 }
78 
80 {
81  if(column <= 0)
82  {
83  return;
84  }
85 
87 }
88 
90 {
92  setColumnCount(7);
93 }
94 
96 {
97  const int count = rowCount();
98  setRowCount(count + 1);
99 
100  QHeaderView *headerView = horizontalHeader();
101  QTableWidgetItem *item = new QTableWidgetItem;
102  item->setData(TTK_CHECKED_ROLE, Qt::Unchecked);
103  setItem(count, 0, item);
104 
105  item = new QTableWidgetItem;
106  item->setToolTip(result.m_songName);
107  item->setText(TTK::Widget::elidedText(font(), item->toolTip(), Qt::ElideRight, headerView->sectionSize(1) - 20));
108  item->setForeground(QColor(TTK::UI::Color02));
109  setItem(count, 1, item);
110 
111  item = new QTableWidgetItem;
112  item->setToolTip(result.m_artistName);
113  item->setText(TTK::Widget::elidedText(font(), item->toolTip(), Qt::ElideRight, headerView->sectionSize(2) - 20));
114  item->setForeground(QColor(TTK::UI::Color02));
115  setItem(count, 2, item);
116 
117  item = new QTableWidgetItem(result.m_duration);
118  item->setForeground(QColor(TTK::UI::Color02));
119  setItem(count, 3, item);
120 
121  item = new QTableWidgetItem;
122  item->setIcon(QIcon(randSimulation()));
123  setItem(count, 4, item);
124 
125  item = new QTableWidgetItem;
126  item->setIcon(QIcon(":/tiny/lb_server_type"));
127  item->setToolTip(result.m_type);
128  setItem(count, 5, item);
129 
130  item = new QTableWidgetItem;
131  item->setIcon(QIcon(":/contextMenu/btn_download"));
132  setItem(count, 6, item);
133 }
134 
135 void MusicLrcSearchTableWidget::contextMenuEvent(QContextMenuEvent *event)
136 {
137  MusicItemSearchTableWidget::contextMenuEvent(event);
138 
139  QMenu menu(this);
140  createContextMenu(menu);
141  menu.exec(QCursor::pos());
142 }
MusicLrcSearchTableWidget(QWidget *parent=nullptr)
const TTK::MusicSongInformationList & items() const noexcept
void setQueryInput(MusicAbstractQueryRequest *query)
virtual void removeItems() overridefinal
virtual void contextMenuEvent(QContextMenuEvent *event) overridefinal
The class of the search item table widget.
QString randSimulation() const noexcept
virtual void downloadQueryResult(int row) overridefinal
static constexpr unsigned int Color02
Definition: musicuiobject.h:34
virtual void itemDoubleClicked(int row, int column) overridefinal
QString queryValue() const noexcept
static void popup(const QString &text)
void lrcDownloadStateChanged(const QString &name)
bool isValid() const noexcept
virtual void createResultItem(const MusicResultInfoItem &result) overridefinal
TTK_MODULE_EXPORT QString lrcDirPrefix()
virtual void startToRequest()=0
TTK_MODULE_EXPORT QString elidedText(const QFont &font, const QString &text, Qt::TextElideMode mode, int width)
virtual void itemCellClicked(int row, int column) overridefinal
virtual void itemCellEntered(int row, int column)
virtual void itemCellEntered(int row, int column) overridefinal
virtual void removeItems() override
The class of the search result info item.
The class of the abstract download data.
virtual void startToSearchByValue(const QString &value) overridefinal
#define G_NETWORK_PTR
void setQueryType(QueryType type) noexcept
#define G_DOWNLOAD_QUERY_PTR
virtual void itemCellClicked(int row, int column) override
virtual void startToSearch(const QString &value)=0
#define LRC_FILE
Definition: musicobject.h:76
void setLoadingStatus(bool status) const
MusicAbstractQueryRequest * m_networkRequest
#define TTK_CHECKED_ROLE