TTKMusicPlayer  4.1.3.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicsongchecktoolstablewidget.cpp
Go to the documentation of this file.
3 
5 {
8  return delegate;
9 }
10 
11 
13  : MusicFillItemTableWidget(parent)
14 {
15  setAttribute(Qt::WA_TranslucentBackground, false);
16  setSelectionMode(QAbstractItemView::ExtendedSelection);
17  setColumnCount(4);
18 
19  QHeaderView *headerView = horizontalHeader();
20  headerView->resizeSection(0, 30);
21  headerView->resizeSection(1, 290);
22  headerView->resizeSection(2, 290);
23 #ifdef Q_OS_UNIX
24  headerView->resizeSection(3, 51);
25 #else
26  headerView->resizeSection(3, 54);
27 #endif
28 
29  setItemDelegateForColumn(3, makeButtonItemDelegate(this));
30 }
31 
32 void MusicSongCheckToolsRenameTableWidget::addCellItems(const MusicSongCheckToolsRenameList &items)
33 {
34  setRowCount(items.count());
35  QHeaderView *headerView = horizontalHeader();
36 
37  for(int i = 0; i < items.count(); ++i)
38  {
39  const MusicSongCheckToolsRename &v = items[i];
40 
41  QTableWidgetItem *item = new QTableWidgetItem;
42  item->setData(TTK_CHECKED_ROLE, Qt::Unchecked);
43  setItem(i, 0, item);
44 
45  item = new QTableWidgetItem;
46  item->setToolTip(v.m_locaName);
47  item->setText(TTK::Widget::elidedText(font(), item->toolTip(), Qt::ElideRight, headerView->sectionSize(1) - 10));
48  QtItemSetTextAlignment(item, Qt::AlignLeft | Qt::AlignVCenter);
49  setItem(i, 1, item);
50 
51  item = new QTableWidgetItem;
52  item->setToolTip(v.m_recommendName);
53  item->setText(TTK::Widget::elidedText(font(), item->toolTip(), Qt::ElideRight, headerView->sectionSize(2) - 10));
54  QtItemSetTextAlignment(item, Qt::AlignLeft | Qt::AlignVCenter);
55  setItem(i, 2, item);
56 
57  item = new QTableWidgetItem;
58  item->setData(TTK_DISPLAY_ROLE, tr("Delete"));
59  setItem(i, 3, item);
60  }
61 }
62 
64 {
66  if(column == 3)
67  {
69  }
70 }
71 
73 {
74  if(!isValid())
75  {
76  return;
77  }
78 
79  removeRow(currentRow());
80 }
81 
82 
83 
85  : MusicFillItemTableWidget(parent)
86 {
87  setAttribute(Qt::WA_TranslucentBackground, false);
88  setSelectionMode(QAbstractItemView::ExtendedSelection);
89  setColumnCount(7);
90 
91  QHeaderView *headerView = horizontalHeader();
92  headerView->resizeSection(0, 30);
93  headerView->resizeSection(1, 290);
94  headerView->resizeSection(2, 65);
95  headerView->resizeSection(3, 65);
96  headerView->resizeSection(4, 80);
97  headerView->resizeSection(5, 80);
98 #ifdef Q_OS_UNIX
99  headerView->resizeSection(6, 51);
100 #else
101  headerView->resizeSection(6, 54);
102 #endif
103 
104  setItemDelegateForColumn(5, makeButtonItemDelegate(this));
105  setItemDelegateForColumn(6, makeButtonItemDelegate(this));
106 }
107 
108 void MusicSongCheckToolsDuplicateTableWidget::addCellItems(const MusicSongCheckToolsDuplicateList &songs)
109 {
110  setRowCount(songs.count());
111  QHeaderView *headerView = horizontalHeader();
112 
113  for(int i = 0; i < songs.count(); ++i)
114  {
115  const MusicSongCheckToolsDuplicate &v = songs[i];
116 
117  QTableWidgetItem *item = new QTableWidgetItem;
118  item->setData(TTK_CHECKED_ROLE, Qt::Unchecked);
119  setItem(i, 0, item);
120 
121  item = new QTableWidgetItem;
122  item->setToolTip(v.m_song.name());
123  item->setText(TTK::Widget::elidedText(font(), item->toolTip(), Qt::ElideRight, headerView->sectionSize(1) - 45));
124  QtItemSetTextAlignment(item, Qt::AlignLeft | Qt::AlignVCenter);
125  setItem(i, 1, item);
126 
127  item = new QTableWidgetItem;
128  item->setText(v.m_song.duration());
129  QtItemSetTextAlignment(item, Qt::AlignCenter);
130  setItem(i, 2, item);
131 
132  item = new QTableWidgetItem;
133  item->setText(v.m_song.sizeStr());
134  QtItemSetTextAlignment(item, Qt::AlignCenter);
135  setItem(i, 3, item);
136 
137  item = new QTableWidgetItem;
138  item->setText(v.m_bitrate);
139  QtItemSetTextAlignment(item, Qt::AlignCenter);
140  setItem(i, 4, item);
141 
142  item = new QTableWidgetItem;
143  item->setData(TTK_DISPLAY_ROLE, tr("Play"));
144  item->setData(TTK_DATA_ROLE, v.m_song.path());
145  setItem(i, 5, item);
146 
147  item = new QTableWidgetItem;
148  item->setData(TTK_DISPLAY_ROLE, tr("Delete"));
149  setItem(i, 6, item);
150  }
151 }
152 
154 {
156  switch(column)
157  {
158  case 5: playSong(); break;
159  case 6: removeCurrentRow(); break;
160  default: break;
161  }
162 }
163 
165 {
166  if(!isValid())
167  {
168  return;
169  }
170 
171  const QTableWidgetItem *it = item(currentRow(), 5);
172  if(it)
173  {
174  const QString &path = it->data(TTK_DATA_ROLE).toString();
175  MusicSongsContainerWidget::instance()->addSongToPlaylist(QFile::exists(path) ? QStringList(path) : QStringList());
176  }
177 }
178 
180 {
181  if(!isValid())
182  {
183  return;
184  }
185 
186  removeRow(currentRow());
187 }
188 
189 
190 
192  : MusicFillItemTableWidget(parent)
193 {
194  setAttribute(Qt::WA_TranslucentBackground, false);
195  setSelectionMode(QAbstractItemView::ExtendedSelection);
196  setColumnCount(8);
197 
198  QHeaderView *headerView = horizontalHeader();
199  headerView->resizeSection(0, 30);
200  headerView->resizeSection(1, 220);
201  headerView->resizeSection(2, 65);
202  headerView->resizeSection(3, 65);
203  headerView->resizeSection(4, 80);
204  headerView->resizeSection(5, 70);
205  headerView->resizeSection(6, 80);
206 #ifdef Q_OS_UNIX
207  headerView->resizeSection(7, 51);
208 #else
209  headerView->resizeSection(7, 54);
210 #endif
211 
212  setItemDelegateForColumn(6, makeButtonItemDelegate(this));
213  setItemDelegateForColumn(7, makeButtonItemDelegate(this));
214 }
215 
216 void MusicSongCheckToolsQualityTableWidget::addCellItems(const MusicSongCheckToolsQualityList &songs)
217 {
218  setRowCount(songs.count());
219  QHeaderView *headerView = horizontalHeader();
220 
221  for(int i = 0; i < songs.count(); ++i)
222  {
223  const MusicSongCheckToolsQuality &v = songs[i];
224 
225  QTableWidgetItem *item = new QTableWidgetItem;
226  item->setData(TTK_CHECKED_ROLE, Qt::Unchecked);
227  setItem(i, 0, item);
228 
229  item = new QTableWidgetItem;
230  item->setToolTip(v.m_song.name());
231  item->setText(TTK::Widget::elidedText(font(), item->toolTip(), Qt::ElideRight, headerView->sectionSize(1) - 10));
232  QtItemSetTextAlignment(item, Qt::AlignLeft | Qt::AlignVCenter);
233  setItem(i, 1, item);
234 
235  item = new QTableWidgetItem;
236  item->setText(v.m_song.duration());
237  QtItemSetTextAlignment(item, Qt::AlignCenter);
238  setItem(i, 2, item);
239 
240  item = new QTableWidgetItem;
241  item->setText(v.m_song.sizeStr());
242  QtItemSetTextAlignment(item, Qt::AlignCenter);
243  setItem(i, 3, item);
244 
245  item = new QTableWidgetItem;
246  item->setText(v.m_bitrate);
247  QtItemSetTextAlignment(item, Qt::AlignCenter);
248  setItem(i, 4, item);
249 
250  item = new QTableWidgetItem;
251  QColor color;
252  QString bitrate;
254  item->setText(bitrate);
255  item->setForeground(color);
256  QtItemSetTextAlignment(item, Qt::AlignCenter);
257  setItem(i, 5, item);
258 
259  item = new QTableWidgetItem;
260  item->setData(TTK_DISPLAY_ROLE, tr("Play"));
261  item->setData(TTK_DATA_ROLE, v.m_song.path());
262  setItem(i, 6, item);
263 
264  item = new QTableWidgetItem;
265  item->setData(TTK_DISPLAY_ROLE, tr("Delete"));
266  setItem(i, 7, item);
267  }
268 }
269 
271 {
273  switch(column)
274  {
275  case 6: playSong(); break;
276  case 7: removeCurrentRow(); break;
277  default: break;
278  }
279 }
280 
282 {
283  if(!isValid())
284  {
285  return;
286  }
287 
288  const QTableWidgetItem *it = item(currentRow(), 6);
289  if(it)
290  {
291  const QString &path = it->data(TTK_DATA_ROLE).toString();
292  MusicSongsContainerWidget::instance()->addSongToPlaylist(QFile::exists(path) ? QStringList(path) : QStringList());
293  }
294 }
295 
297 {
298  if(!isValid())
299  {
300  return;
301  }
302 
303  removeRow(currentRow());
304 }
static TTKPushButtonItemDelegate * makeButtonItemDelegate(QObject *parent)
QString sizeStr() const noexcept
Definition: musicsong.h:73
#define TTK_DISPLAY_ROLE
void addCellItems(const MusicSongCheckToolsQualityList &songs)
QString path() const noexcept
Definition: musicsong.h:90
virtual void itemCellClicked(int row, int column) override
void setStyleSheet(const QString &style) const
#define QtItemSetTextAlignment(p, a)
Item text alignment.
Definition: ttkqtcompat.h:45
static const QString BorderStyle05
The class of the fill item table widget.
void addCellItems(const MusicSongCheckToolsDuplicateList &songs)
void addSongToPlaylist(const QStringList &items)
TTK_MODULE_EXPORT TTK::QueryQuality bitrateToLevel(int bitrate)
static MusicSongsContainerWidget * instance()
TTK_MODULE_EXPORT QString elidedText(const QFont &font, const QString &text, Qt::TextElideMode mode, int width)
The class of the song check tools duplicate.
The class of the push button item delegate.
QString duration() const noexcept
Definition: musicsong.h:106
static const QString BackgroundStyle10
QString name() const noexcept
Definition: musicsong.h:82
virtual void itemCellClicked(int row, int column) overridefinal
static const QString BorderStyle02
void addCellItems(const MusicSongCheckToolsRenameList &items)
virtual void itemCellClicked(int row, int column) overridefinal
The class of the song check tools rename.
The class of the song check tools quality.
#define TTK_CHECKED_ROLE
#define TTK_DATA_ROLE
TTK_MODULE_EXPORT void bitrateToQuality(TTK::QueryQuality level, QString &bitrate, QColor &color)
virtual void itemCellClicked(int row, int column) overridefinal