TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicdownloadrecordwidget.cpp
Go to the documentation of this file.
2 #include "musicwidgetheaders.h"
3 #include "musicconnectionpool.h"
4 
7 {
8  setColumnCount(4);
9 
10  QHeaderView *headerView = horizontalHeader();
11  headerView->resizeSection(0, 10);
12  headerView->resizeSection(1, 168);
13  headerView->resizeSection(2, 83);
14  headerView->resizeSection(3, 50);
15 
17  setItemDelegateForColumn(2, m_progressBarDelegate);
18  setSelectionMode(QAbstractItemView::ExtendedSelection);
19 
21  verticalScrollBar()->setStyleSheet(TTK::UI::ScrollBarStyle03);
22 
23  G_CONNECTION_PTR->setValue(className(), this);
24 }
25 
27 {
28  G_CONNECTION_PTR->removeValue(this);
29 }
30 
32 {
33  QHeaderView *headerView = horizontalHeader();
34  QTableWidgetItem *item = new QTableWidgetItem;
35  setItem(index, 0, item);
36 
37  item = new QTableWidgetItem;
38  item->setToolTip(record.name());
39  item->setText(TTK::Widget::elidedText(font(), item->toolTip(), Qt::ElideRight, headerView->sectionSize(1) - 20));
40  item->setForeground(QColor(TTK::UI::Color01));
41  QtItemSetTextAlignment(item, Qt::AlignLeft | Qt::AlignVCenter);
42  setItem(index, 1, item);
43 
44  item = new QTableWidgetItem;
45  item->setData(TTK_PROGRESS_ROLE, 100);
46  setItem(index, 2, item);
47 
48  item = new QTableWidgetItem(record.sizeStr());
49  item->setForeground(QColor(TTK::UI::Color01));
50  QtItemSetTextAlignment(item, Qt::AlignRight| Qt::AlignVCenter);
51  item->setData(TTK_TIME_ROLE, record.addTimeStr());
52  setItem(index, 3, item);
53 
54  setFixedHeight(totalHeight());
55 }
56 
57 
58 
61 {
64  createWidgetItem(downloadTable, tr("Download"), 0);
65 
66  connect(downloadTable, SIGNAL(updateItemTitle(int)), SLOT(updateItemTitle(int)));
67 }
68 
70 {
71  while(!m_songItems.isEmpty())
72  {
73  delete m_songItems.back().m_itemWidget;
74  m_songItems.pop_back();
75  }
76 }
77 
79 {
80  if(index == 0)
81  {
82  const MusicSongItem *item = &m_songItems[index];
83  setTitle(item->m_itemWidget, QString("%1[%2]").arg(item->m_itemName).arg(item->m_songs.count()));
84  }
85 }
86 
88 {
89  MusicSongItem *item = &m_songItems.back();
90  item->m_itemName = text;
91  item->m_itemIndex = index;
92  item->m_itemWidget = widget;
93  addCellItem(widget, item->m_itemName);
94 
95  widget->setPlaylistRow(item->m_itemIndex);
96  widget->setSongsList(&item->m_songs);
97 
98  setTitle(widget, QString("%1[%2]").arg(item->m_itemName).arg(item->m_songs.count()));
99 }
100 
102 {
104  it->addCellItem(item);
105  it->setExpand(true);
106  return it;
107 }
void setTitle(QWidget *item, const QString &text)
QString sizeStr() const noexcept
Definition: musicsong.h:73
The class of the function tool box widget.
#define TTK_PROGRESS_ROLE
#define QtItemSetTextAlignment(p, a)
Item text alignment.
Definition: ttkqtcompat.h:45
#define G_CONNECTION_PTR
virtual void addCellItem(int index, const MusicSong &record) overridefinal
The class of the normal tool box widget item.
static const QString ScrollBarStyle03
The class of the function tool box widget item.
virtual void setSongsList(MusicSongList *songs)
MusicAbstractSongsListTableWidget * m_itemWidget
Definition: musicsong.h:167
void addCellItem(QWidget *item, const QString &text)
TTK_MODULE_EXPORT void setTransparent(QWidget *widget, int alpha)
TTKProgressBarItemDelegate * m_progressBarDelegate
TTK_MODULE_EXPORT QString elidedText(const QFont &font, const QString &text, Qt::TextElideMode mode, int width)
The class of the download abstract table widget.
MusicDownloadToolBoxWidget(QWidget *parent=nullptr)
MusicDownloadRecordTableWidget(QWidget *parent=nullptr)
QString name() const noexcept
Definition: musicsong.h:82
QString addTimeStr() const noexcept
Definition: musicsong.h:65
The class of the music song item.
Definition: musicsong.h:161
MusicSongList m_songs
Definition: musicsong.h:166
void createWidgetItem(MusicAbstractDownloadTableWidget *widget, const QString &text, int index)
QString m_itemName
Definition: musicsong.h:164
static constexpr unsigned int Color01
Color QRgb.
Definition: musicuiobject.h:32
The class of the music song info.
Definition: musicsong.h:28
#define TTK_TIME_ROLE
The class of the download record table widget.
virtual MusicFunctionToolBoxWidgetItem * initialItem(QWidget *item, const QString &text) overridefinal