TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicrightareawidget.cpp
Go to the documentation of this file.
1 #include "musicrightareawidget.h"
2 #include "ui_musicapplication.h"
3 #include "musicapplication.h"
6 #include "musicvideoplaywidget.h"
8 #include "musicsettingwidget.h"
9 #include "musictoastlabel.h"
10 #include "musicfunctionuiobject.h"
11 #include "musictinyuiobject.h"
13 #include "musictopareawidget.h"
14 
15 #include "musicwebdjradiowidget.h"
16 #include "musicscreensaverwidget.h"
19 #include "musicalbumquerywidget.h"
20 #include "musicartistquerywidget.h"
28 
29 #ifdef Q_OS_WIN
30 # include "musicplatformmanager.h"
31 #endif
32 #include "qkugou/qkugouwindow.h"
33 
34 #include <QPropertyAnimation>
35 
37 
39  : QWidget(parent),
40  m_lowPowerMode(false),
41  m_funcIndex(KugGouSongWidget),
42  m_stackedWidget(nullptr),
43  m_stackedStandWidget(nullptr),
44  m_videoPlayerWidget(nullptr),
45  m_lrcForInterior(nullptr),
46  m_lrcForDesktop(nullptr),
47  m_lrcForWallpaper(nullptr)
48 {
49  m_instance = this;
50 
51  m_lrcAnalysis = new MusicLrcAnalysis(this);
53 
56  connect(m_settingWidget, SIGNAL(parameterSettingChanged()), parent, SLOT(applyParameter()));
57 }
58 
60 {
61  delete m_settingWidget;
63  delete m_lrcForDesktop;
64  delete m_lrcForWallpaper;
65 
67  {
68  m_videoPlayerWidget->setVisible(false); //Fix bug on linux
69  delete m_videoPlayerWidget;
70  }
71 }
72 
74 {
75  return m_instance;
76 }
77 
78 void MusicRightAreaWidget::setupUi(Ui::MusicApplication *ui)
79 {
80  m_ui = ui;
81  //
82  m_lrcForInterior = ui->musiclrccontainerforinterior;
84  m_lrcForInterior->resize(ui->functionsContainer->size());
85 
86  ui->musicBackButton->setStyleSheet(TTK::UI::BtnBackBack);
87  ui->musicRefreshButton->setStyleSheet(TTK::UI::BtnBackFresh);
88 
89  ui->lrcDisplayAllButton->setCursor(QCursor(Qt::PointingHandCursor));
90  ui->lrcDisplayAllButton->setIconSize(QSize(15, 56));
91  connect(ui->lrcDisplayAllButton, SIGNAL(clicked()), SLOT(lrcDisplayAllClicked()));
92  //
93  QButtonGroup *buttonGroup = new QButtonGroup(this);
94  buttonGroup->addButton(ui->musicSearchButton, MusicRightAreaWidget::SearchWidget);
95  buttonGroup->addButton(ui->musicWindowIdentify, MusicRightAreaWidget::IndentifyWidget);
96  QtButtonGroupConnect(buttonGroup, this, functionClicked, TTK_SLOT);
97  //
98  connect(m_lrcForInterior, SIGNAL(showCurrentLrcColorSetting()), m_settingWidget, SLOT(changeInteriorLrcWidget()));
99  connect(m_lrcForInterior, SIGNAL(currentLrcUpdated()), MusicApplication::instance(), SLOT(currentLrcUpdated()));
100  connect(m_lrcForInterior, SIGNAL(backgroundChanged()), SIGNAL(updateBackgroundThemeDownload()));
101  connect(m_lrcForInterior, SIGNAL(showCurrentLrcSetting()), MusicApplication::instance(), SLOT(showSettingWidget()));
102  connect(m_lrcForInterior, SIGNAL(updateCurrentTime(qint64)), MusicApplication::instance(), SLOT(updateCurrentTime(qint64)));
103  connect(ui->musicBackButton, SIGNAL(clicked()), SLOT(functionGoBack()));
104  connect(ui->functionOptionWidget, SIGNAL(buttonClicked(int)), SLOT(functionClicked(int)));
105  connect(ui->musicSongSearchEdit, SIGNAL(enterFinished(QString)), SLOT(showSongSearchedFound(QString)));
106 }
107 
109 {
113  {
115  }
116 }
117 
119 {
123  {
125  }
126 }
127 
129 {
131 }
132 
134 {
135  return m_lrcForDesktop->isVisible();
136 }
137 
139 {
140  m_lrcForInterior->setVisible(status);
141 }
142 
144 {
145  return m_lrcForInterior->isVisible();
146 }
147 
148 void MusicRightAreaWidget::updateCurrentLrc(qint64 current, qint64 total, bool playState) const
149 {
150  m_lrcForInterior->setCurrentTime(current, total);
151  QString currentLrc, laterLrc;
152  qint64 intervalTime;
153  if(m_lrcAnalysis->findText(current, total, currentLrc, laterLrc, intervalTime))
154  {
155  //If this is a new line of the lyrics, then restart lyrics display mask
156  if(currentLrc != m_lrcForInterior->text())
157  {
158  if(playState)
159  {
160  m_lrcForInterior->updateCurrentLrc(intervalTime);
161  }
162 
163  {
164  m_lrcForDesktop->setCurrentTime(current, total);
165  m_lrcForDesktop->updateCurrentLrc(currentLrc, laterLrc, intervalTime);
166  }
167 
169  {
170  m_lrcForWallpaper->setCurrentTime(current, total);
171  m_lrcForWallpaper->updateCurrentLrc(intervalTime);
172  }
173  }
174  }
175 }
176 
177 void MusicRightAreaWidget::loadCurrentSongLrc(const QString &name, const QString &path) const
178 {
181 
183  if(TTK_FILE_SUFFIX(QFileInfo(path)) == KRC_FILE_SUFFIX)
184  {
185  TTK_INFO_STREAM("Current in krc parser mode");
186  state = m_lrcAnalysis->loadFromKrcFile(path);
187  }
188  else
189  {
190  TTK_INFO_STREAM("Current in lrc parser mode");
191  state = m_lrcAnalysis->loadFromLrcFile(path);
192  }
193 
197 
199  {
200  m_lrcForDesktop->updateCurrentLrc(tr("No lrc data file found"), {}, 0);
201  }
202 
204  {
207  m_lrcForWallpaper->start(true);
208 
210  {
211  m_lrcForWallpaper->updateCurrentLrc(tr("No lrc data file found"));
212  }
213  }
214 }
215 
217 {
219 }
220 
222 {
224 }
225 
227 {
230 }
231 
233 {
234  m_rawData = id;
236 }
237 
239 {
240  m_rawData = id;
242 }
243 
245 {
246  m_rawData = id;
248 }
249 
251 {
252  m_rawData = data;
254 }
255 
257 {
258  m_ui->songSearchWidget->resizeWindow();
260 
262  if(stackedWidget)
263  {
264  stackedWidget->resizeWidget();
265  }
266 
268  if(stackedStandWidget)
269  {
270  stackedStandWidget->resizeWidget();
271  }
272 
274  {
276  }
277 }
278 
280 {
284  {
286  }
287 
289  m_lrcForDesktop->setVisible(config);
290  m_ui->musicDesktopLrc->setChecked(config);
291 
292  config = G_SETTING_PTR->value(MusicSettingManager::RippleLowPowerMode).toBool();
293  if(config != m_lowPowerMode)
294  {
297  {
299  }
300  }
301 
303  {
305  }
306 }
307 
309 {
310  // TODO
311 // if(m_ui->functionsContainer->count() < 4)
312 // {
313 // return;
314 // }
315 
316 // const int index = m_ui->functionsContainer->currentIndex() - 1;
317 // m_ui->functionsContainer->setCurrentIndex(index);
318 }
319 
320 void MusicRightAreaWidget::functionClicked(int index, QWidget *widget)
321 {
324 
325  if(widget)
326  {
327  m_stackedStandWidget = widget;
328  m_ui->functionsContainer->addWidget(m_stackedStandWidget);
329  m_ui->functionsContainer->setCurrentWidget(m_stackedStandWidget);
330  Q_EMIT updateBackgroundTheme();
331  return;
332  }
333 
334  if(0 <= index && index < LrcWidget)
335  {
336  m_ui->functionOptionWidget->buttonStyleSwitch(index);
337  }
338 
339  switch(m_funcIndex)
340  {
341  case KugGouSongWidget: //insert kugou song widget
342  {
344  Q_EMIT updateBackgroundTheme();
345  break;
346  }
347  case KugGouRadioWidget: //insert kugou radio widget
348  {
350  Q_EMIT updateBackgroundTheme();
351  break;
352  }
353  case kugouListWidget: //insert kugou list widget
354  {
356  Q_EMIT updateBackgroundTheme();
357  break;
358  }
359  case VideoWidget: //insert video widget
360  {
362  {
364  connect(m_videoPlayerWidget, SIGNAL(popupButtonClicked(bool)), SLOT(videoSetPopup(bool)));
365  connect(m_videoPlayerWidget, SIGNAL(fullscreenButtonClicked(bool)), SLOT(videoFullscreen(bool)));
366  }
368 
369 // QWidget *widget = new QWidget(this);
370 // widget->setStyleSheet(TTK::UI::BackgroundStyle10);
371 // m_stackedWidget = widget;
372  m_ui->functionsContainer->addWidget(m_videoPlayerWidget);
373  m_ui->functionsContainer->setCurrentWidget(m_videoPlayerWidget);
374  Q_EMIT updateBackgroundTheme();
375  break;
376  }
377  case kugouLiveWidget: //insert kugou live widget
378  {
380  Q_EMIT updateBackgroundTheme();
381  break;
382  }
383  case LrcWidget: //insert lrc display widget
384  {
385  m_ui->functionsContainer->setCurrentIndex(MUSIC_LRC_PAGE);
386  m_ui->lrcDisplayAllButton->setStyleSheet(TTK::UI::TinyBtnLrcCollapse);
387  m_ui->lrcDisplayAllButton->setVisible(true);
389  break;
390  }
391  case SearchWidget: //insert search display widget
392  {
393  QString searchedString = m_ui->musicSongSearchEdit->text().trimmed();
394  searchedString = searchedString.isEmpty() ? m_ui->musicSongSearchEdit->placeholderText() : searchedString;
395  //The string searched wouldn't allow to be none
396  if(!searchedString.isEmpty() && searchedString != tr("Please input search words"))
397  {
398  m_ui->musicSongSearchEdit->setText(searchedString);
399  m_ui->songSearchWidget->startToSearchByText(searchedString);
400  }
401  else
402  {
404  MusicToastLabel::popup(tr("Please enter input search text first"));
405  break;
406  }
407 
408  m_ui->functionsContainer->setCurrentIndex(MUSIC_SEARCH_PAGE);
409  Q_EMIT updateBackgroundTheme();
410  break;
411  }
412  case SearchSingleWidget: //insert search display widget
413  {
414  m_ui->functionsContainer->setCurrentIndex(MUSIC_SEARCH_PAGE);
415  Q_EMIT updateBackgroundTheme();
416  break;
417  }
418  case SimilarWidget: //insert similar found widget
419  {
421  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
422  m_ui->functionsContainer->setCurrentWidget(widget);
423  Q_EMIT updateBackgroundTheme();
424  break;
425  }
426  case AlbumWidget: //insert album found widget
427  {
428  MusicAlbumQueryWidget *widget = new MusicAlbumQueryWidget(this);
429  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
430  m_ui->functionsContainer->setCurrentWidget(widget);
431  Q_EMIT updateBackgroundTheme();
432  break;
433  }
434  case ArtistWidget: //insert artist found widget
435  {
437  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
438  m_ui->functionsContainer->setCurrentWidget(widget);
439  Q_EMIT updateBackgroundTheme();
440  break;
441  }
442  case ArtistCategoryWidget: //insert artist category found widget
443  {
445  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
446  m_ui->functionsContainer->setCurrentWidget(widget);
447  Q_EMIT updateBackgroundTheme();
448  break;
449  }
450  case ToplistWidget: //insert toplist found widget
451  {
453  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
454  m_ui->functionsContainer->setCurrentWidget(widget);
455  Q_EMIT updateBackgroundTheme();
456  break;
457  }
458  case PlaylistWidget: //insert playlist found widget
459  {
461  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
462  m_ui->functionsContainer->setCurrentWidget(widget);
463  Q_EMIT updateBackgroundTheme();
464  break;
465  }
466  case RecommendWidget: //insert recommend found widget
467  {
469  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
470  m_ui->functionsContainer->setCurrentWidget(widget);
471  Q_EMIT updateBackgroundTheme();
472  break;
473  }
474  case AdvancedSearchWidget: //insert advanced search widget
475  {
477  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
478  m_ui->functionsContainer->setCurrentWidget(widget);
479  Q_EMIT updateBackgroundTheme();
480  break;
481  }
482  case IndentifyWidget: //insert indentify songs widget
483  {
485  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
486  m_ui->functionsContainer->setCurrentWidget(widget);
487  widget->queryIdentifyKey();
488  Q_EMIT updateBackgroundTheme();
489  break;
490  }
491  case KuiSheWidget: //insert kugou kuishe widget
492  {
494  Q_EMIT updateBackgroundTheme();
495  break;
496  }
497  case WebDJRadioWidget: //insert web dj radio widget
498  {
499  MusicWebDJRadioWidget *widget = new MusicWebDJRadioWidget(this);
500  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
501  m_ui->functionsContainer->setCurrentWidget(widget);
502  widget->initialize();
503  Q_EMIT updateBackgroundTheme();
504  break;
505  }
506  case WebMVRadioWidget: //insert web mv radio widget
507  {
509  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
510  m_ui->functionsContainer->setCurrentWidget(widget);
511  widget->setCurrentValue({});
512  Q_EMIT updateBackgroundTheme();
513  break;
514  }
515  case ScreenSaverWidget: //insert screen saver widget
516  {
518  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
519  m_ui->functionsContainer->setCurrentWidget(widget);
520  Q_EMIT updateBackgroundTheme();
521  break;
522  }
523  case PlaylistBackupWidget: //insert playlist backup widget
524  {
526  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
527  m_ui->functionsContainer->setCurrentWidget(widget);
528  Q_EMIT updateBackgroundTheme();
529  break;
530  }
531  default: break;
532  }
533 }
534 
536 {
538  {
540  }
541 
542  if(m_ui->functionsContainer->currentIndex() != MUSIC_LRC_PAGE)
543  {
545  }
546 
548 }
549 
550 void MusicRightAreaWidget::showSimilarFound(const QString &text)
551 {
553  TTKObjectCast(MusicSimilarQueryWidget*, m_stackedWidget)->setCurrentValue(text);
554 }
555 
556 void MusicRightAreaWidget::showAlbumFound(const QString &text, const QString &id)
557 {
560  id.isEmpty() ? w->setCurrentValue(text) : w->setCurrentID(id);
561 }
562 
564 {
567 }
568 
570 {
571  showArtistFound({}, m_rawData.toString());
572 }
573 
575 {
576  showAlbumFound({}, m_rawData.toString());
577 }
578 
580 {
581  showVideoSearchedFound({}, m_rawData.toString());
582 }
583 
585 {
587  {
588  m_videoPlayerWidget->raise();
589  }
590  else
591  {
593  }
594 
596 }
597 
598 void MusicRightAreaWidget::showArtistFound(const QString &text, const QString &id)
599 {
602  id.isEmpty() ? w->setCurrentValue(text) : w->setCurrentID(id);
603 }
604 
606 {
608  TTKObjectCast(MusicToplistQueryWidget*, m_stackedWidget)->setCurrentValue({});
609 }
610 
612 {
615  id.isEmpty() ? w->setCurrentValue({}) : w->setCurrentID(id);
616 }
617 
619 {
622 }
623 
625 {
627 }
628 
630 {
631  m_ui->musicSongSearchEdit->setText(text.trimmed());
633 }
634 
636 {
638  m_ui->songSearchWidget->startToSearchByID(id);
639 }
640 
641 void MusicRightAreaWidget::showVideoSearchedFound(const QString &name, const QString &id)
642 {
644  {
645  m_videoPlayerWidget->raise();
646  }
647  else
648  {
650  }
651 
653 }
654 
656 {
658  const bool pre = G_SETTING_PTR->value(MusicSettingManager::WindowConciseMode).toBool();
662 }
663 
665 {
666  m_ui->musicDesktopLrc->setChecked(visible);
667  m_lrcForDesktop->setVisible(visible);
670 }
671 
673 {
675 }
676 
678 {
681 
683  if(type)
684  {
686  }
687  else
688  {
690  }
692 
693  if(desktop)
694  {
696  desktop->deleteLater();
697  }
698 
702 
703  connect(m_lrcForDesktop, SIGNAL(currentLrcUpdated()), MusicApplication::instance(), SLOT(currentLrcUpdated()));
704  connect(m_lrcForDesktop, SIGNAL(showCurrentLrcSetting()), MusicApplication::instance(), SLOT(showSettingWidget()));
705  connect(m_lrcForDesktop, SIGNAL(showCurrentLrcColorSetting()), m_settingWidget, SLOT(changeDesktopLrcWidget()));
706 
708 }
709 
711 {
713  {
714  return;
715  }
716 
718  if(popup)
719  {
720  m_ui->functionsContainer->addWidget(m_stackedWidget);
721  m_ui->functionsContainer->setCurrentWidget(m_stackedWidget);
722 #ifdef Q_OS_WIN
723  MusicPlatformManager manager;
724  manager.windowsEnableLeftMode();
725 #endif
727  }
728  else
729  {
731  }
732 }
733 
735 {
737  {
738  MusicApplication::instance()->activateWindow();
739  m_videoPlayerWidget->activateWindow();
740  }
741 }
742 
744 {
746  m_ui->functionOptionWidget->switchToSelectedItemStyle(MusicRightAreaWidget::LrcWidget);
747 
748  delete m_videoPlayerWidget;
749  m_videoPlayerWidget = nullptr;
750 }
751 
753 {
755  {
758  }
759 }
760 
762 {
763  const bool lrcDisplayAll = !m_lrcForInterior->lrcDisplayExpand();
764  m_lrcForInterior->setLrcDisplayExpand(lrcDisplayAll);
765  m_ui->centerLeftWidget->setVisible(!lrcDisplayAll);
766 
767  const int height = m_lrcForInterior->height() - m_ui->lrcDisplayAllButton->height() - 40;
768  QPropertyAnimation *lrcDisplayAllAnimation = new QPropertyAnimation(m_ui->lrcDisplayAllButton, "pos", this);
769  lrcDisplayAllAnimation->setDuration(100);
770  lrcDisplayAllAnimation->setStartValue(QPoint(lrcDisplayAll ? LEFT_SIDE_WIDTH_MIN - 20 : -LEFT_SIDE_WIDTH_MIN, height / 2));
771  lrcDisplayAllAnimation->setEndValue(QPoint(0, height / 2));
772  lrcDisplayAllAnimation->start();
773 
774  m_ui->lrcDisplayAllButton->setStyleSheet(lrcDisplayAll ? TTK::UI::TinyBtnLrcExpand : TTK::UI::TinyBtnLrcCollapse);
775  m_ui->musicWindowConcise->setEnabled(!lrcDisplayAll);
776 }
777 
779 {
781  {
783  delete m_lrcForWallpaper;
784  m_lrcForWallpaper = nullptr;
785  }
786  else
787  {
788 #ifdef Q_OS_WIN
789  MusicPlatformManager manager;
790  manager.windowsEnableLeftMode();
791 #endif
795  m_lrcForWallpaper->showFullScreen();
796  connect(m_lrcForInterior, SIGNAL(linearGradientColorChanged()), m_lrcForWallpaper, SLOT(changeCurrentLrcColor()));
797 
798  MusicApplication::instance()->activateWindow();
799  MusicApplication::instance()->showMinimized();
801  }
802 }
803 
805 {
807 }
808 
810 {
814 }
815 
817 {
819  {
821  }
822 
823  if(m_funcIndex == LrcWidget)
824  {
825  m_ui->functionOptionWidget->buttonStyleClear(false);
826  m_ui->stackedFunctionWidget->transparent(true);
827  }
828  else
829  {
830  m_ui->functionOptionWidget->buttonStyleClear(true);
831  m_ui->stackedFunctionWidget->transparent(false);
832  }
833 
834  m_stackedStandWidget = nullptr;
835 
836  m_ui->lrcDisplayAllButton->setVisible(false);
838  {
840  }
841 }
842 
844 {
845  QWidget *widget = nullptr;
847  {
848  QLabel *label = new QLabel(this);
849  label->setAlignment(Qt::AlignCenter);
850  label->setStyleSheet(TTK::UI::BackgroundStyle10);
851  label->setPixmap(QPixmap(":/image/lb_no_power_mode"));
852  widget = label;
853  }
854  else
855  {
856  widget = new QKugouWindow(TTKStaticCast(QKugouWindow::Module, type), this);
857  connect(m_ui->musicRefreshButton, SIGNAL(clicked()), widget, SLOT(refresh()));
858  }
859 
860  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
861  m_ui->functionsContainer->setCurrentWidget(widget);
862 }
void showSingleSearchedFound(const QString &id)
static MusicRightAreaWidget * instance()
void updateBackgroundThemeDownload()
#define TTKStaticCast(x, y)
Definition: ttkglobal.h:159
The class of the playlist music query widget.
static MusicApplication * instance()
MusicDownloadStatusModule * m_downloadStatusObject
struct config_s config
void setLineMax(int max)
The class of the platform system manager.
#define MUSIC_SEARCH_PAGE
virtual void applyParameter() overridefinal
The class of the album music query widget.
The class of the playlist backup widget.
void setCurrentTime(qint64 time, qint64 total)
MusicSettingWidget * m_settingWidget
The class of the desktop vertical lrc container.
virtual void applyParameter() overridefinal
virtual void setCurrentID(const QString &id) overridefinal
static constexpr const char * TinyBtnLrcCollapse
void setWindowLockedChanged(bool lock)
void setCurrentPlayState(bool state) const
#define MUSIC_LRC_PAGE
void setLrcAnalysisModel(MusicLrcAnalysis *analysis)
void startToSearchByID(const QString &name)
The class of the song identify widget.
MusicLrcContainerForInterior * m_lrcForInterior
void showSimilarFound(const QString &text)
void statusCopyFrom(MusicLrcContainerForDesktop *other)
MusicRightAreaWidget(QWidget *parent=nullptr)
virtual void setCurrentID(const QString &id) overridefinal
void setCurrentPlayState(bool state) const
void movieRadioSearchByID(const QVariant &data)
void videoResearchButtonSearched(const QString &name)
void showSongSearchedFound(const QString &text)
MusicLrcContainerForDesktop * m_lrcForDesktop
void setInteriorLrcVisible(bool status) const
virtual void setCurrentID(const QString &id) overridefinal
virtual void setCurrentValue(const QString &value) overridefinal
static void popup(const QString &text)
void setCurrentSongName(const QString &name)
The class of the music dj radio widget.
The class of the advance search widget.
void loadCurrentSongLrc(const QString &name, const QString &path) const
MusicLrcContainerForWallpaper * m_lrcForWallpaper
virtual void setCurrentValue(const QString &value) overridefinal
virtual void startDrawLrc() overridefinal
static constexpr const char * TinyBtnLrcExpand
The class of the similar music query widget.
const char * name
Definition: http_parser.c:458
virtual void setCurrentValue(const QString &value) overridefinal
The class of the kugou window widget.
Definition: qkugouwindow.h:30
bool findText(qint64 current, qint64 total, QString &pre, QString &last, qint64 &interval) const
The class of the core lrc analysis.
#define TTK_INFO_STREAM(msg)
Definition: ttklogger.h:67
#define TTK_SIGNLE_SHOT(...)
Definition: ttkqtglobal.h:177
The class of the screen saver widget.
The class of the video play widget.
The class of the show download state object.
void showArtistFound(const QString &text, const QString &id)
void setupUi(Ui::MusicApplication *ui)
The class of the music mv query widget.
void resizeGeometry(bool resize)
State loadFromLrcFile(const QString &path)
virtual void startDrawLrc() overridefinal
static constexpr const char * BtnBackFresh
MusicLrcAnalysis * m_lrcAnalysis
MusicVideoPlayWidget * m_videoPlayerWidget
#define TTK_SLOT
Definition: ttkqtglobal.h:165
State loadFromKrcFile(const QString &path)
The class of the setting parameters widget.
void showAlbumFound(const QString &text, const QString &id)
void setDestopLrcVisible(bool visible) const
void videoSetPopup(bool popup)
static constexpr int MUSIC_LRC_INTERIOR_MAX_LINE
The class of the wall paper lrc container.
#define QtButtonGroupConnect(p, q, f, s)
Button group connect.
Definition: ttkqtcompat.h:101
static const QString BackgroundStyle10
The class of the widget resize interface.
void showPlaylistFound(const QString &id)
void movieSearchByID(const QString &id)
The class of the desktop horizontal lrc container.
void blockMoveOption(bool block)
virtual void startDrawLrc() overridefinal
The class of the artist music query widget.
#define KRC_FILE_SUFFIX
Definition: musicobject.h:34
void showWallpaperRemote(bool create)
virtual void applyParameter() overridefinal
void artistSearchByID(const QString &id)
void setLrcAnalysisModel(MusicLrcAnalysis *analysis)
virtual void setCurrentValue(const QString &value) overridefinal
virtual void stopDrawLrc() overridefinal
void checkMetaDataValid(bool mode) const
const char int mode
Definition: ioapi.h:135
#define TTK_FILE_SUFFIX(fin)
Definition: ttkqtglobal.h:173
Ui::MusicApplication * m_ui
virtual void resizeWidget()=0
The class of the artist list music query widget.
static constexpr const char * BtnBackBack
The class of the desktop lrc container.
void setSongTimeSpeed(qint64 time) const
virtual void stopDrawLrc() overridefinal
The class of the recommend music query widget.
The class of the app right area widget.
void showVideoSearchedFound(const QString &name, const QString &id)
void updateCurrentLrc(qint64 current, qint64 total, bool playState) const
static MusicRightAreaWidget * m_instance
static MusicTopAreaWidget * instance()
state
Definition: http_parser.c:279
void updateCurrentLrc(const QString &first, const QString &second, qint64 time)
#define TTKDynamicCast(x, y)
Definition: ttkglobal.h:147
void albumSearchByID(const QString &id)
void functionClicked(int index, QWidget *widget=nullptr)
The class of the toplist music query widget.
#define G_SETTING_PTR
#define TTKObjectCast(x, y)
Definition: ttkqtglobal.h:60
#define LEFT_SIDE_WIDTH_MIN
Definition: musicobject.h:155
virtual void stopDrawLrc() overridefinal