TTKMusicPlayer  3.7.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 
34  connect(m_networkRequest, SIGNAL(downLoadDataChanged(QString)), SIGNAL(resolvedSuccess()));
35 
38 }
39 
41 {
42  if(!isValid(row))
43  {
44  MusicToastLabel::popup(tr("Please select one item first"));
45  return;
46  }
47 
48  const TTK::MusicSongInformationList songInfos(m_networkRequest->items());
50  MusicAbstractDownLoadRequest *d = G_DOWNLOAD_QUERY_PTR->makeLrcRequest(songInfos[row].m_lrcUrl, TTK::String::lrcDirPrefix() + m_networkRequest->queryValue() + LRC_FILE, this);
51  connect(d, SIGNAL(downLoadDataChanged(QString)), SIGNAL(lrcDownloadStateChanged(QString)));
52  d->startToRequest();
53 }
54 
56 {
58  if(column == 6)
59  {
60  setCursor(QCursor(Qt::PointingHandCursor));
61  }
62  else
63  {
64  unsetCursor();
65  }
66 }
67 
69 {
71  switch(column)
72  {
73  case 6: downloadQueryResult(row); break;
74  default: break;
75  }
76 }
77 
79 {
80  if(column <= 0)
81  {
82  return;
83  }
84 
86 }
87 
89 {
91  setColumnCount(7);
92 }
93 
95 {
96  const int count = rowCount();
97  setRowCount(count + 1);
98 
99  QHeaderView *headerView = horizontalHeader();
100  QTableWidgetItem *item = new QTableWidgetItem;
101  item->setData(TTK_CHECKED_ROLE, Qt::Unchecked);
102  setItem(count, 0, item);
103 
104  item = new QTableWidgetItem;
105  item->setToolTip(songItem.m_songName);
106  item->setText(TTK::Widget::elidedText(font(), item->toolTip(), Qt::ElideRight, headerView->sectionSize(1) - 20));
107  item->setForeground(QColor(TTK::UI::Color02));
108  setItem(count, 1, item);
109 
110  item = new QTableWidgetItem;
111  item->setToolTip(songItem.m_artistName);
112  item->setText(TTK::Widget::elidedText(font(), item->toolTip(), Qt::ElideRight, headerView->sectionSize(2) - 20));
113  item->setForeground(QColor(TTK::UI::Color02));
114  setItem(count, 2, item);
115 
116  item = new QTableWidgetItem(songItem.m_duration);
117  item->setForeground(QColor(TTK::UI::Color02));
118  setItem(count, 3, item);
119 
120  item = new QTableWidgetItem;
121  item->setIcon(QIcon(randSimulation()));
122  setItem(count, 4, item);
123 
124  item = new QTableWidgetItem;
125  item->setIcon(QIcon(":/tiny/lb_server_type"));
126  item->setToolTip(songItem.m_type);
127  setItem(count, 5, item);
128 
129  item = new QTableWidgetItem;
130  item->setIcon(QIcon(":/contextMenu/btn_download"));
131  setItem(count, 6, item);
132 }
133 
134 void MusicLrcSearchTableWidget::contextMenuEvent(QContextMenuEvent *event)
135 {
136  MusicItemSearchTableWidget::contextMenuEvent(event);
137 
138  QMenu menu(this);
139  createContextMenu(menu);
140  menu.exec(QCursor::pos());
141 }
MusicLrcSearchTableWidget(QWidget *parent=nullptr)
virtual void removeItems() overridefinal
The class of the abstract download data.
virtual void startToSearchByText(const QString &text) override
virtual void contextMenuEvent(QContextMenuEvent *event) overridefinal
The class of the search item table widget.
virtual void downloadQueryResult(int row) overridefinal
virtual void createResultItem(const MusicResultInfoItem &songItem) overridefinal
virtual void startToSearchByText(const QString &text) overridefinal
static constexpr unsigned int Color02
Definition: musicuiobject.h:34
virtual void itemDoubleClicked(int row, int column) overridefinal
static void popup(const QString &text)
void lrcDownloadStateChanged(const QString &name)
TTK_MODULE_EXPORT QString lrcDirPrefix()
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.
#define G_NETWORK_PTR
#define G_DOWNLOAD_QUERY_PTR
virtual void itemCellClicked(int row, int column) override
virtual void startToSearch(const QString &value)=0
const TTK::MusicSongInformationList & items() const
#define LRC_FILE
Definition: musicobject.h:63
MusicAbstractQueryRequest * m_networkRequest
#define TTK_CHECKED_ROLE