6 m_songsPlayWidget(nullptr)
8 setSelectionMode(QAbstractItemView::ExtendedSelection);
9 setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
12 QHeaderView *headerView = horizontalHeader();
13 headerView->resizeSection(0, 20);
14 headerView->resizeSection(1, 197);
15 headerView->resizeSection(2, 25);
16 headerView->resizeSection(3, 25);
17 headerView->resizeSection(4, 45);
30 const int count = rowCount();
31 setRowCount(songs.count());
33 QHeaderView *headerView = horizontalHeader();
34 for(
int i = count; i < songs.count(); ++i)
38 QTableWidgetItem *item =
new QTableWidgetItem;
41 item =
new QTableWidgetItem;
42 item->setToolTip(v.
name());
43 item->setText(
TTK::Widget::elidedText(font(), item->toolTip(), Qt::ElideRight, headerView->sectionSize(1) - 15));
48 item =
new QTableWidgetItem;
51 item =
new QTableWidgetItem;
54 item =
new QTableWidgetItem(v.
duration());
65 if(index < 0 || rowCount() <= 0)
73 for(
int i = 0; i < columnCount(); ++i)
75 delete takeItem(index, i);
83 setSpan(index, 0, 1, 5);
91 scrollBar()->setSliderPosition(index * 30);
97 if(index < 0 || index >= rowCount())
102 QTableWidgetItem *it = item(index, 0);
105 it->setIcon(QIcon(
":/tiny/lb_playlater"));
111 for(
int i = 0; i < rowCount(); ++i)
113 QTableWidgetItem *it = item(i, 0);
116 it->setIcon(QIcon());
139 QHeaderView *headerView = horizontalHeader();
140 QTableWidgetItem *item =
new QTableWidgetItem;
143 item =
new QTableWidgetItem;
144 item->setToolTip(name);
145 item->setText(
TTK::Widget::elidedText(font(), item->toolTip(), Qt::ElideRight, headerView->sectionSize(1) - 15));
169 it->setIcon(QIcon());
175 it->setIcon(QIcon());
181 it->setIcon(QIcon());
186 if(it = item(row, 2))
188 it->setIcon(QIcon(
":/contextMenu/btn_download"));
191 if(it = item(row, 3))
193 it->setIcon(QIcon(
":/tiny/btn_delete_normal"));
196 if(it = item(row, 4))
199 it->setIcon(QIcon(
":/tiny/btn_more_normal"));
202 if(column == 2 || column == 3 || column == 4)
204 setCursor(QCursor(Qt::PointingHandCursor));
229 menu.exec(QCursor::pos());
258 if(deletedRows.isEmpty())
268 for(
int i = deletedRows.count() - 1; i >= 0; --i)
270 const int row = deletedRows[i];
284 menu.addAction(QIcon(
":/contextMenu/btn_play"), tr(
"Play"),
this, SLOT(
playClicked()));
287 menu.addAction(tr(
"Download More..."),
this, SLOT(
showDownloadWidget()))->setEnabled(!status);
292 status = !(
m_songs->isEmpty() || status);
294 menu.addAction(QIcon(
":/contextMenu/btn_local_file"), tr(
"Open File Dir"),
this, SLOT(
openFileDir()))->setEnabled(status);
295 menu.addAction(QIcon(
":/contextMenu/btn_ablum"), tr(
"Ablum"),
this, SLOT(
showAlbumQueryWidget()));
298 menu.addAction(QIcon(
":/contextMenu/btn_delete"), tr(
"Delete"),
this, SLOT(
removeItemAt()));
300 menu.exec(QCursor::pos());
#define QtItemSetTextAlignment(p, a)
Item text alignment.
TTK_MODULE_EXPORT bool isNetworkUrl(const QString &path) noexcept
QString duration() const noexcept
QString name() const noexcept
static const QString MenuStyle02
static constexpr unsigned int Color01
Color QRgb.
The class of the music song info.