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