TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicsongchecktoolswidget.cpp
Go to the documentation of this file.
2 #include "ui_musicsongchecktoolswidget.h"
5 #include "musictoastlabel.h"
6 
8  : MusicAbstractMoveWidget(parent),
10 {
11  Q_UNUSED(qRegisterMetaType<MusicSongCheckToolsRenameList>("MusicSongCheckToolsRenameList"));
12  Q_UNUSED(qRegisterMetaType<MusicSongCheckToolsDuplicateList>("MusicSongCheckToolsDuplicateList"));
13  Q_UNUSED(qRegisterMetaType<MusicSongCheckToolsQualityList>("MusicSongCheckToolsQualityList"));
14 
15  m_ui->setupUi(this);
16  setFixedSize(size());
17  setAttribute(Qt::WA_DeleteOnClose);
18  setBackgroundLabel(m_ui->background);
19 
20  m_ui->topTitleCloseButton->setIcon(QIcon(":/functions/btn_close_hover"));
21  m_ui->topTitleCloseButton->setStyleSheet(TTK::UI::ToolButtonStyle04);
22  m_ui->topTitleCloseButton->setCursor(QCursor(Qt::PointingHandCursor));
23  m_ui->topTitleCloseButton->setToolTip(tr("Close"));
24  connect(m_ui->topTitleCloseButton, SIGNAL(clicked()), SLOT(close()));
25 
29 
31 }
32 
34 {
35  TTKRemoveSingleWidget(className());
36  delete m_renameThread;
37  delete m_duplicateThread;
38  delete m_qualityThread;
39  delete m_ui;
40 }
41 
43 {
45 }
46 
48 {
49  if(m_ui->renameCheckButton->text() == tr("Start"))
50  {
52  }
53  else if(m_ui->renameCheckButton->text() == tr("Stop"))
54  {
55  m_ui->renameLoadingLabel->stop();
56  m_ui->renameLoadingLabel->hide();
57  m_ui->renameCheckButton->setText(tr("Start"));
58 
61  }
62  else if(m_ui->renameCheckButton->text() == tr("Apply"))
63  {
64  m_ui->renameLoadingLabel->stop();
65  m_ui->renameLoadingLabel->hide();
66  m_ui->renameReCheckButton->show();
67 
68  m_renameThread->setItemList(m_ui->renameTableWidget->checkedIndexList());
72  }
73 }
74 
76 {
77  m_ui->renameReCheckButton->hide();
78  m_ui->renameLoadingLabel->start();
79  m_ui->renameLoadingLabel->show();
80  m_ui->renameCheckButton->setText(tr("Stop"));
81  m_ui->renameSelectAllButton->setChecked(false);
82 
83  m_ui->renameTableWidget->removeItems();
85  m_localSongs = m_ui->selectedAreaWidget->selectedSongItems();
86 
90 }
91 
92 void MusicSongCheckToolsWidget::renameCheckFinished(const MusicSongCheckToolsRenameList &items)
93 {
94  if(m_renameThread->mode() == TTK::Mode::Check || items.isEmpty())
95  {
96  m_ui->renameLoadingLabel->stop();
97  m_ui->renameLoadingLabel->hide();
98  m_ui->renameCheckButton->setText(tr("Apply"));
99  m_ui->renameReCheckButton->show();
100  m_ui->renameSelectAllButton->setEnabled(!items.isEmpty());
101 
102  m_ui->renameTableWidget->removeItems();
103  m_ui->renameTableWidget->addCellItems(items);
104  }
105  else if(m_renameThread->mode() == TTK::Mode::Apply && !m_ui->renameTableWidget->checkedIndexList().isEmpty())
106  {
107  MusicToastLabel::popup(tr("Rename apply finished"));
108  }
109 }
110 
112 {
114 }
115 
117 {
118  if(m_ui->qualityCheckButton->text() == tr("Start"))
119  {
121  }
122  else if(m_ui->qualityCheckButton->text() == tr("Stop"))
123  {
124  m_ui->qualityLoadingLabel->stop();
125  m_ui->qualityLoadingLabel->hide();
126  m_ui->qualityCheckButton->setText(tr("Start"));
128  }
129  else if(m_ui->qualityCheckButton->text() == tr("Apply"))
130  {
131  m_ui->qualityLoadingLabel->stop();
132  m_ui->qualityLoadingLabel->hide();
133  m_ui->qualityReCheckButton->show();
134  }
135 }
136 
138 {
139  m_ui->qualityReCheckButton->hide();
140  m_ui->qualityLoadingLabel->start();
141  m_ui->qualityLoadingLabel->show();
142  m_ui->qualityCheckButton->setText(tr("Stop"));
143 
145  m_localSongs = m_ui->selectedAreaWidget->selectedSongItems();
146 
149 }
150 
151 void MusicSongCheckToolsWidget::qualityCheckFinished(const MusicSongCheckToolsQualityList &items)
152 {
153  m_ui->qualityLoadingLabel->stop();
154  m_ui->qualityLoadingLabel->hide();
155  m_ui->qualityCheckButton->setText(tr("Apply"));
156  m_ui->qualityReCheckButton->show();
157 
158  m_ui->qualityTableWidget->removeItems();
159  m_ui->qualityTableWidget->addCellItems(items);
160 }
161 
163 {
165 }
166 
168 {
169  if(m_ui->duplicateCheckButton->text() == tr("Start"))
170  {
172  }
173  else if(m_ui->duplicateCheckButton->text() == tr("Stop"))
174  {
175  m_ui->duplicateLoadingLabel->stop();
176  m_ui->duplicateLoadingLabel->hide();
177  m_ui->duplicateCheckButton->setText(tr("Start"));
178 
181  }
182  else if(m_ui->duplicateCheckButton->text() == tr("Apply"))
183  {
184  m_ui->duplicateLoadingLabel->stop();
185  m_ui->duplicateLoadingLabel->hide();
186  m_ui->duplicateReCheckButton->show();
187 
188  m_duplicateThread->setItemList(m_ui->duplicateTableWidget->checkedIndexList());
192  }
193 }
194 
196 {
197  m_ui->duplicateReCheckButton->hide();
198  m_ui->duplicateLoadingLabel->start();
199  m_ui->duplicateLoadingLabel->show();
200  m_ui->duplicateCheckButton->setText(tr("Stop"));
201  m_ui->duplicateSelectAllButton->setChecked(false);
202 
204  m_localSongs = m_ui->selectedAreaWidget->selectedSongItems();
205 
209 }
210 
211 void MusicSongCheckToolsWidget::duplicateCheckFinished(const MusicSongCheckToolsDuplicateList &items)
212 {
213  if(m_duplicateThread->mode() == TTK::Mode::Check || items.isEmpty())
214  {
215  m_ui->duplicateLoadingLabel->stop();
216  m_ui->duplicateLoadingLabel->hide();
217  m_ui->duplicateCheckButton->setText(tr("Apply"));
218  m_ui->duplicateReCheckButton->show();
219  m_ui->duplicateSelectAllButton->setEnabled(!items.isEmpty());
220 
221  m_ui->duplicateTableWidget->removeItems();
222  m_ui->duplicateTableWidget->addCellItems(items);
223  }
224  else if(m_duplicateThread->mode() == TTK::Mode::Apply && !m_ui->duplicateTableWidget->checkedIndexList().isEmpty())
225  {
226  MusicToastLabel::popup(tr("Duplicate apply finished"));
227  }
228 }
229 
231 {
232  m_ui->renameSelectAllButton->setStyleSheet(TTK::UI::CheckBoxStyle01);
233  m_ui->renameCheckButton->setStyleSheet(TTK::UI::PushButtonStyle04);
234 
235  connect(m_ui->renameButton, SIGNAL(clicked()), SLOT(renameButtonClicked()));
236  connect(m_ui->renameCheckButton, SIGNAL(clicked()), SLOT(renameButtonCheckClicked()));
237  connect(m_ui->renameReCheckButton, SIGNAL(clicked()), SLOT(renameReCheckButtonClicked()));
238  connect(m_ui->renameSelectAllButton, SIGNAL(clicked(bool)), m_ui->renameTableWidget, SLOT(checkedItemsStatus(bool)));
239 
240 #ifdef Q_OS_UNIX
241  m_ui->renameCheckButton->setFocusPolicy(Qt::NoFocus);
242  m_ui->renameSelectAllButton->setFocusPolicy(Qt::NoFocus);
243 #endif
244 
245  m_ui->renameSelectAllButton->setEnabled(false);
246  m_ui->renameLoadingLabel->setType(MusicGifLabelWidget::Module::CicleBlue);
247  m_ui->renameLoadingLabel->hide();
248  m_ui->renameReCheckButton->hide();
249 
251  connect(m_renameThread, SIGNAL(finished(MusicSongCheckToolsRenameList)), SLOT(renameCheckFinished(MusicSongCheckToolsRenameList)));
252 }
253 
255 {
256  m_ui->qualityCheckButton->setStyleSheet(TTK::UI::PushButtonStyle04);
257 
258  connect(m_ui->qualityButton, SIGNAL(clicked()), SLOT(qualityButtonClicked()));
259  connect(m_ui->qualityCheckButton, SIGNAL(clicked()), SLOT(qualityButtonCheckClicked()));
260  connect(m_ui->qualityReCheckButton, SIGNAL(clicked()), SLOT(qualityReCheckButtonClicked()));
261 
262 #ifdef Q_OS_UNIX
263  m_ui->qualityCheckButton->setFocusPolicy(Qt::NoFocus);
264 #endif
265 
266  m_ui->qualityLoadingLabel->setType(MusicGifLabelWidget::Module::CicleBlue);
267  m_ui->qualityLoadingLabel->hide();
268  m_ui->qualityReCheckButton->hide();
269 
271  connect(m_qualityThread, SIGNAL(finished(MusicSongCheckToolsQualityList)), SLOT(qualityCheckFinished(MusicSongCheckToolsQualityList)));
272 }
273 
275 {
276  m_ui->duplicateSelectAllButton->setStyleSheet(TTK::UI::CheckBoxStyle01);
277  m_ui->duplicateCheckButton->setStyleSheet(TTK::UI::PushButtonStyle04);
278 
279  connect(m_ui->duplicateButton, SIGNAL(clicked()), SLOT(duplicateButtonClicked()));
280  connect(m_ui->duplicateCheckButton, SIGNAL(clicked()), SLOT(duplicateButtonCheckClicked()));
281  connect(m_ui->duplicateReCheckButton, SIGNAL(clicked()), SLOT(duplicateReCheckButtonClicked()));
282  connect(m_ui->duplicateSelectAllButton, SIGNAL(clicked(bool)), m_ui->duplicateTableWidget, SLOT(checkedItemsStatus(bool)));
283 
284 #ifdef Q_OS_UNIX
285  m_ui->duplicateSelectAllButton->setFocusPolicy(Qt::NoFocus);
286  m_ui->duplicateCheckButton->setFocusPolicy(Qt::NoFocus);
287 #endif
288 
289  m_ui->duplicateSelectAllButton->setEnabled(false);
290  m_ui->duplicateLoadingLabel->setType(MusicGifLabelWidget::Module::CicleBlue);
291  m_ui->duplicateLoadingLabel->hide();
292  m_ui->duplicateReCheckButton->hide();
293 
295  connect(m_duplicateThread, SIGNAL(finished(MusicSongCheckToolsDuplicateList)), SLOT(duplicateCheckFinished(MusicSongCheckToolsDuplicateList)));
296 }
297 
299 {
300  m_ui->renameButton->setStyleSheet(TTK::UI::CheckTestRename);
301  m_ui->qualityButton->setStyleSheet(TTK::UI::CheckTestQuality);
302  m_ui->duplicateButton->setStyleSheet(TTK::UI::CheckTestDuplicate);
303 
304  m_ui->stackedWidget->setCurrentIndex(index);
305  switch(index)
306  {
307  case 0: m_ui->renameButton->setStyleSheet(TTK::UI::CheckTestRenameClicked); break;
308  case 1: m_ui->duplicateButton->setStyleSheet(TTK::UI::CheckTestDuplicateClicked); break;
309  case 2: m_ui->qualityButton->setStyleSheet(TTK::UI::CheckTestQualityClicked); break;
310  default: break;
311  }
312 }
void setBackgroundLabel(QLabel *label)
static constexpr const char * CheckTestRename
MusicSongCheckToolsRenameThread * m_renameThread
static const QString CheckBoxStyle01
CheckBox.
The class of the song check tools rename thread.
voidpf void uLong size
Definition: ioapi.h:136
The class of the song check tools duplicate thread.
static constexpr const char * CheckTestQualityClicked
void setItemList(const TTKIntList &items)
void renameCheckFinished(const MusicSongCheckToolsRenameList &items)
static void popup(const QString &text)
The class of the song check tools widget.
MusicSongCheckToolsQualityThread * m_qualityThread
static constexpr const char * CheckTestDuplicate
void setItemList(const TTKIntList &items)
static constexpr const char * CheckTestRenameClicked
#define TTKRemoveSingleWidget(name)
void setRenameSongs(MusicSongList *songs)
MusicSongCheckToolsDuplicateThread * m_duplicateThread
static const QString PushButtonStyle04
void qualityCheckFinished(const MusicSongCheckToolsQualityList &items)
void duplicateCheckFinished(const MusicSongCheckToolsDuplicateList &items)
static constexpr const char * CheckTestDuplicateClicked
static const QString ToolButtonStyle04
MusicSongCheckToolsWidget(QWidget *parent=nullptr)
static constexpr const char * CheckTestQuality
The class of the song check tools quality thread.
Ui::MusicSongCheckToolsWidget * m_ui
The class of the moving widget base.