TTKMusicPlayer  4.2.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"
30 #include "musicsongdailywidget.h"
31 
32 #ifdef Q_OS_WIN
33 # include "musicplatformmanager.h"
34 #endif
35 #include "qkugou/qkugouwindow.h"
36 
37 #include <QPropertyAnimation>
38 
40 
42  : QWidget(parent),
43  m_lowPowerMode(false),
44  m_funcIndex(KugGouSongWidget),
45  m_stackedWidget(nullptr),
46  m_stackedStandWidget(nullptr),
47  m_videoPlayerWidget(nullptr),
48  m_lrcForInterior(nullptr),
49  m_lrcForDesktop(nullptr),
50  m_lrcForWallpaper(nullptr)
51 {
52  m_instance = this;
53 
54  m_lrcAnalysis = new MusicLrcAnalysis(this);
56 
59  connect(m_settingWidget, SIGNAL(parameterSettingChanged()), parent, SLOT(applyParameter()));
60 }
61 
63 {
64  delete m_settingWidget;
66  delete m_lrcForDesktop;
67  delete m_lrcForWallpaper;
68 
70  {
71  m_videoPlayerWidget->setVisible(false); //Fix bug on linux
72  delete m_videoPlayerWidget;
73  }
74 }
75 
77 {
78  return m_instance;
79 }
80 
81 void MusicRightAreaWidget::setupUi(Ui::MusicApplication *ui)
82 {
83  m_ui = ui;
84  //
85  m_lrcForInterior = ui->musiclrccontainerforinterior;
87  m_lrcForInterior->resize(ui->functionsContainer->size());
88 
89  ui->musicBackButton->setStyleSheet(TTK::UI::BtnBackBack);
90  ui->musicRefreshButton->setStyleSheet(TTK::UI::BtnBackFresh);
91 
92  ui->lrcDisplayAllButton->setCursor(QCursor(Qt::PointingHandCursor));
93  ui->lrcDisplayAllButton->setIconSize(QSize(15, 56));
94  connect(ui->lrcDisplayAllButton, SIGNAL(clicked()), SLOT(lrcDisplayAllClicked()));
95  //
96  QButtonGroup *buttonGroup = new QButtonGroup(this);
97  buttonGroup->addButton(ui->musicSearchButton, MusicRightAreaWidget::SearchWidget);
98  buttonGroup->addButton(ui->musicWindowIdentify, MusicRightAreaWidget::IndentifyWidget);
99  QtButtonGroupConnect(buttonGroup, this, functionClicked, TTK_SLOT);
100  //
101  connect(m_lrcForInterior, SIGNAL(showCurrentLrcColorSetting()), m_settingWidget, SLOT(changeInteriorLrcWidget()));
102  connect(m_lrcForInterior, SIGNAL(currentLrcUpdated()), MusicApplication::instance(), SLOT(currentLrcUpdated()));
103  connect(m_lrcForInterior, SIGNAL(backgroundChanged()), SIGNAL(updateBackgroundThemeDownload()));
104  connect(m_lrcForInterior, SIGNAL(showCurrentLrcSetting()), MusicApplication::instance(), SLOT(showSettingWidget()));
105  connect(m_lrcForInterior, SIGNAL(updateCurrentTime(qint64)), MusicApplication::instance(), SLOT(updateCurrentTime(qint64)));
106  connect(ui->musicBackButton, SIGNAL(clicked()), SLOT(functionGoBack()));
107  connect(ui->functionOptionWidget, SIGNAL(buttonClicked(int)), SLOT(functionClicked(int)));
108  connect(ui->musicSongSearchEdit, SIGNAL(enterFinished(QString)), SLOT(showSongSearchedFound(QString)));
109 }
110 
112 {
116  {
118  }
119 }
120 
122 {
126  {
128  }
129 }
130 
132 {
134 }
135 
137 {
138  return m_lrcForDesktop->isVisible();
139 }
140 
142 {
143  m_lrcForInterior->setVisible(status);
144 }
145 
147 {
148  return m_lrcForInterior->isVisible();
149 }
150 
151 void MusicRightAreaWidget::updateCurrentLrc(qint64 current, qint64 total, bool playState) const
152 {
153  m_lrcForInterior->setCurrentTime(current, total);
154  QString currentLrc, laterLrc;
155  qint64 intervalTime;
156  if(m_lrcAnalysis->findText(current, total, currentLrc, laterLrc, intervalTime))
157  {
158  //If this is a new line of the lyrics, then restart lyrics display mask
159  if(currentLrc != m_lrcForInterior->text())
160  {
161  if(playState)
162  {
163  m_lrcForInterior->updateCurrentLrc(intervalTime);
164  }
165 
166  {
167  m_lrcForDesktop->setCurrentTime(current, total);
168  m_lrcForDesktop->updateCurrentLrc(currentLrc, laterLrc, intervalTime);
169  }
170 
172  {
173  m_lrcForWallpaper->setCurrentTime(current, total);
174  m_lrcForWallpaper->updateCurrentLrc(intervalTime);
175  }
176  }
177  }
178 }
179 
180 void MusicRightAreaWidget::loadCurrentSongLrc(const QString &name, const QString &path) const
181 {
184 
186 
190 
192  {
193  m_lrcForDesktop->updateCurrentLrc(tr("No lrc data file found"), {}, 0);
194  }
195 
197  {
200  m_lrcForWallpaper->start(true);
201 
203  {
204  m_lrcForWallpaper->updateCurrentLrc(tr("No lrc data file found"));
205  }
206  }
207 }
208 
210 {
212 }
213 
215 {
217 }
218 
220 {
223 }
224 
226 {
227  m_rawData = id;
229 }
230 
232 {
233  m_rawData = id;
235 }
236 
238 {
239  m_rawData = id;
241 }
242 
244 {
245  m_rawData = data;
247 }
248 
250 {
251  m_ui->songSearchWidget->resizeWindow();
253 
255  if(stackedWidget)
256  {
257  stackedWidget->resizeWidget();
258  }
259 
261  if(stackedStandWidget)
262  {
263  stackedStandWidget->resizeWidget();
264  }
265 
267  {
269  }
270 }
271 
273 {
277  {
279  }
280 
282  m_lrcForDesktop->setVisible(config);
283  m_ui->musicDesktopLrc->setChecked(config);
284 
285  config = G_SETTING_PTR->value(MusicSettingManager::RippleLowPowerMode).toBool();
286  if(config != m_lowPowerMode)
287  {
290  {
292  }
293  }
294 
296  {
298  }
299 }
300 
302 {
303  // TODO
304 // if(m_ui->functionsContainer->count() < 4)
305 // {
306 // return;
307 // }
308 
309 // const int index = m_ui->functionsContainer->currentIndex() - 1;
310 // m_ui->functionsContainer->setCurrentIndex(index);
311 }
312 
313 void MusicRightAreaWidget::functionClicked(int index, QWidget *widget)
314 {
317 
318  if(widget)
319  {
320  m_stackedStandWidget = widget;
321  m_ui->functionsContainer->addWidget(m_stackedStandWidget);
322  m_ui->functionsContainer->setCurrentWidget(m_stackedStandWidget);
323  Q_EMIT updateBackgroundTheme();
324  return;
325  }
326 
327  if(0 <= index && index < LrcWidget)
328  {
329  m_ui->functionOptionWidget->buttonStyleSwitch(index);
330  }
331 
332  switch(m_funcIndex)
333  {
334  case KugGouSongWidget: //insert kugou song widget
335  {
337  Q_EMIT updateBackgroundTheme();
338  break;
339  }
340  case KugGouRadioWidget: //insert kugou radio widget
341  {
343  Q_EMIT updateBackgroundTheme();
344  break;
345  }
346  case kugouPlaylistWidget: //insert kugou playlist widget
347  {
349  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
350  m_ui->functionsContainer->setCurrentWidget(widget);
351  widget->setCurrentValue({});
352  Q_EMIT updateBackgroundTheme();
353  break;
354  }
355  case kugouMovieWidget: //insert kugou movie widget
356  {
358  Q_EMIT updateBackgroundTheme();
359  break;
360  }
361  case VideoWidget: //insert video widget
362  {
364  {
366  connect(m_videoPlayerWidget, SIGNAL(popupButtonClicked(bool)), SLOT(videoSetPopup(bool)));
367  connect(m_videoPlayerWidget, SIGNAL(fullscreenButtonClicked(bool)), SLOT(videoFullscreen(bool)));
368  }
369 
371  m_ui->functionsContainer->addWidget(m_videoPlayerWidget);
372  m_ui->functionsContainer->setCurrentWidget(m_videoPlayerWidget);
373  Q_EMIT updateBackgroundTheme();
374  break;
375  }
376  case LrcWidget: //insert lrc display widget
377  {
378  m_ui->functionsContainer->setCurrentIndex(MUSIC_LRC_PAGE);
379  m_ui->lrcDisplayAllButton->setStyleSheet(TTK::UI::TinyBtnLrcCollapse);
380  m_ui->lrcDisplayAllButton->setVisible(true);
382  break;
383  }
384  case RecommendWidget: //insert recommend found widget
385  {
387  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
388  m_ui->functionsContainer->setCurrentWidget(widget);
389  widget->setCurrentValue({});
390  Q_EMIT updateBackgroundTheme();
391  break;
392  }
393  case ToplistWidget: //insert toplist found widget
394  {
396  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
397  m_ui->functionsContainer->setCurrentWidget(widget);
398  widget->setCurrentValue({});
399  Q_EMIT updateBackgroundTheme();
400  break;
401  }
402  case ArtistCategoryWidget: //insert artist category found widget
403  {
405  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
406  m_ui->functionsContainer->setCurrentWidget(widget);
407  widget->setCurrentValue({});
408  Q_EMIT updateBackgroundTheme();
409  break;
410  }
411  case PlaylistCategoryWidget: //insert playlist category widget
412  {
414  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
415  m_ui->functionsContainer->setCurrentWidget(widget);
416  Q_EMIT updateBackgroundTheme();
417  break;
418  }
419  case SearchWidget: //insert search display widget
420  {
421  QString searchedString = m_ui->musicSongSearchEdit->text().trimmed();
422  searchedString = searchedString.isEmpty() ? m_ui->musicSongSearchEdit->placeholderText() : searchedString;
423  //The string searched wouldn't allow to be none
424  if(!searchedString.isEmpty() && searchedString != tr("Please input search words"))
425  {
426  m_ui->musicSongSearchEdit->setText(searchedString);
427  m_ui->songSearchWidget->startToSearchByText(searchedString);
428  }
429  else
430  {
432  MusicToastLabel::popup(tr("Please enter input search text first"));
433  break;
434  }
435 
436  m_ui->functionsContainer->setCurrentIndex(MUSIC_SEARCH_PAGE);
437  Q_EMIT updateBackgroundTheme();
438  break;
439  }
440  case SearchSingleWidget: //insert search display widget
441  {
442  m_ui->functionsContainer->setCurrentIndex(MUSIC_SEARCH_PAGE);
443  Q_EMIT updateBackgroundTheme();
444  break;
445  }
446  case SimilarWidget: //insert similar found widget
447  {
449  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
450  m_ui->functionsContainer->setCurrentWidget(widget);
451  Q_EMIT updateBackgroundTheme();
452  break;
453  }
454  case AlbumWidget: //insert album found widget
455  {
456  MusicAlbumQueryWidget *widget = new MusicAlbumQueryWidget(this);
457  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
458  m_ui->functionsContainer->setCurrentWidget(widget);
459  Q_EMIT updateBackgroundTheme();
460  break;
461  }
462  case ArtistWidget: //insert artist found widget
463  {
465  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
466  m_ui->functionsContainer->setCurrentWidget(widget);
467  Q_EMIT updateBackgroundTheme();
468  break;
469  }
470  case PlaylistWidget: //insert playlist found widget
471  {
473  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
474  m_ui->functionsContainer->setCurrentWidget(widget);
475  Q_EMIT updateBackgroundTheme();
476  break;
477  }
478  case SongDailyWidget: //insert song daily widget
479  {
480  MusicSongDailyWidget *widget = new MusicSongDailyWidget(this);
481  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
482  m_ui->functionsContainer->setCurrentWidget(widget);
483  Q_EMIT updateBackgroundTheme();
484  break;
485  }
486  case AdvancedSearchWidget: //insert advanced search widget
487  {
489  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
490  m_ui->functionsContainer->setCurrentWidget(widget);
491  Q_EMIT updateBackgroundTheme();
492  break;
493  }
494  case IndentifyWidget: //insert indentify songs widget
495  {
497  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
498  m_ui->functionsContainer->setCurrentWidget(widget);
499  widget->queryIdentifyKey();
500  Q_EMIT updateBackgroundTheme();
501  break;
502  }
503  case KuiSheWidget: //insert kugou kuishe widget
504  {
506  Q_EMIT updateBackgroundTheme();
507  break;
508  }
509  case WebDJRadioWidget: //insert web dj radio widget
510  {
511  MusicWebDJRadioWidget *widget = new MusicWebDJRadioWidget(this);
512  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
513  m_ui->functionsContainer->setCurrentWidget(widget);
514  widget->initialize();
515  Q_EMIT updateBackgroundTheme();
516  break;
517  }
518  case WebMVRadioWidget: //insert web mv radio widget
519  {
521  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
522  m_ui->functionsContainer->setCurrentWidget(widget);
523  widget->setCurrentValue({});
524  Q_EMIT updateBackgroundTheme();
525  break;
526  }
527  case WebPVRadioWidget: //insert web pv radio widget
528  {
530  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
531  m_ui->functionsContainer->setCurrentWidget(widget);
532  Q_EMIT updateBackgroundTheme();
533  break;
534  }
535  case ScreenSaverWidget: //insert screen saver widget
536  {
538  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
539  m_ui->functionsContainer->setCurrentWidget(widget);
540  Q_EMIT updateBackgroundTheme();
541  break;
542  }
543  case PlaylistBackupWidget: //insert playlist backup widget
544  {
546  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
547  m_ui->functionsContainer->setCurrentWidget(widget);
548  Q_EMIT updateBackgroundTheme();
549  break;
550  }
551  default: break;
552  }
553 }
554 
556 {
558  {
560  }
561 
562  if(m_ui->functionsContainer->currentIndex() != MUSIC_LRC_PAGE)
563  {
565  }
566 
568 }
569 
570 void MusicRightAreaWidget::showSimilarFound(const QString &text)
571 {
573  TTKObjectCast(MusicSimilarQueryWidget*, m_stackedWidget)->setCurrentValue(text);
574 }
575 
576 void MusicRightAreaWidget::showAlbumFound(const QString &text, const QString &id)
577 {
580  id.isEmpty() ? w->setCurrentValue(text) : w->setCurrentID(id);
581 }
582 
584 {
585  showArtistFound({}, m_rawData.toString());
586 }
587 
589 {
590  showAlbumFound({}, m_rawData.toString());
591 }
592 
594 {
595  showVideoSearchedFound({}, m_rawData.toString());
596 }
597 
599 {
601  {
602  m_videoPlayerWidget->raise();
603  }
604  else
605  {
607  }
608 
610 }
611 
613 {
616  w->setCurrentValue(id);
617 }
618 
619 void MusicRightAreaWidget::showArtistFound(const QString &text, const QString &id)
620 {
623  id.isEmpty() ? w->setCurrentValue(text) : w->setCurrentID(id);
624 }
625 
627 {
630  w->setCurrentID(id);
631 }
632 
633 void MusicRightAreaWidget::showPlaylistCategoryFound(const QString &id, const QString &value)
634 {
637  w->setCurrentCategory({id, value});
638 }
639 
641 {
642  m_ui->musicSongSearchEdit->setText(text.trimmed());
644 }
645 
647 {
649  m_ui->songSearchWidget->startToSearchByID(id);
650 }
651 
652 void MusicRightAreaWidget::showVideoSearchedFound(const QString &name, const QString &id)
653 {
655  {
656  m_videoPlayerWidget->raise();
657  }
658  else
659  {
661  }
662 
664 }
665 
667 {
669  const bool pre = G_SETTING_PTR->value(MusicSettingManager::WindowConciseMode).toBool();
671 #ifdef Q_OS_UNIX
672  m_ui->functionsContainer->setCurrentIndex(MUSIC_LRC_PAGE);
673 #endif
676 }
677 
679 {
680  m_ui->musicDesktopLrc->setChecked(visible);
681  m_lrcForDesktop->setVisible(visible);
684 }
685 
687 {
689 }
690 
692 {
695 
697  if(type)
698  {
700  }
701  else
702  {
704  }
706 
707  if(desktop)
708  {
710  desktop->deleteLater();
711  }
712 
716 
717  connect(m_lrcForDesktop, SIGNAL(currentLrcUpdated()), MusicApplication::instance(), SLOT(currentLrcUpdated()));
718  connect(m_lrcForDesktop, SIGNAL(showCurrentLrcSetting()), MusicApplication::instance(), SLOT(showSettingWidget()));
719  connect(m_lrcForDesktop, SIGNAL(showCurrentLrcColorSetting()), m_settingWidget, SLOT(changeDesktopLrcWidget()));
720 
722 }
723 
725 {
727  {
728  return;
729  }
730 
732  if(popup)
733  {
734  m_ui->functionsContainer->addWidget(m_stackedWidget);
735  m_ui->functionsContainer->setCurrentWidget(m_stackedWidget);
736 #ifdef Q_OS_WIN
737  MusicPlatformManager manager;
738  manager.windowsEnableLeftMode();
739 #endif
741  }
742  else
743  {
745  }
746 }
747 
749 {
751  {
752  MusicApplication::instance()->activateWindow();
753  m_videoPlayerWidget->activateWindow();
754  }
755 }
756 
758 {
760  m_ui->functionOptionWidget->switchToSelectedItemStyle(MusicRightAreaWidget::LrcWidget);
761 
762  delete m_videoPlayerWidget;
763  m_videoPlayerWidget = nullptr;
764 }
765 
767 {
769  {
772  }
773 }
774 
776 {
777  const bool lrcDisplayAll = !m_lrcForInterior->lrcDisplayExpand();
778  m_lrcForInterior->setLrcDisplayExpand(lrcDisplayAll);
779  m_ui->centerLeftWidget->setVisible(!lrcDisplayAll);
780 
781  const int height = m_lrcForInterior->height() - m_ui->lrcDisplayAllButton->height() - 40;
782  QPropertyAnimation *lrcDisplayAllAnimation = new QPropertyAnimation(m_ui->lrcDisplayAllButton, "pos", this);
783  lrcDisplayAllAnimation->setDuration(100);
784  lrcDisplayAllAnimation->setStartValue(QPoint(lrcDisplayAll ? LEFT_SIDE_WIDTH_MIN - 20 : -LEFT_SIDE_WIDTH_MIN, height / 2));
785  lrcDisplayAllAnimation->setEndValue(QPoint(0, height / 2));
786  lrcDisplayAllAnimation->start();
787 
788  m_ui->lrcDisplayAllButton->setStyleSheet(lrcDisplayAll ? TTK::UI::TinyBtnLrcExpand : TTK::UI::TinyBtnLrcCollapse);
789  m_ui->musicWindowConcise->setEnabled(!lrcDisplayAll);
790 }
791 
793 {
795  {
797  delete m_lrcForWallpaper;
798  m_lrcForWallpaper = nullptr;
799  }
800  else
801  {
802 #ifdef Q_OS_WIN
803  MusicPlatformManager manager;
804  manager.windowsEnableLeftMode();
805 #endif
809  m_lrcForWallpaper->showFullScreen();
810  connect(m_lrcForInterior, SIGNAL(linearGradientColorChanged()), m_lrcForWallpaper, SLOT(changeCurrentLrcColor()));
811 
812  MusicApplication::instance()->activateWindow();
813  MusicApplication::instance()->showMinimized();
815  }
816 }
817 
819 {
821 }
822 
824 {
828 }
829 
831 {
833  {
835  }
836 
837  if(m_funcIndex == LrcWidget)
838  {
839  m_ui->functionOptionWidget->buttonStyleClear(false);
840  m_ui->stackedFunctionWidget->transparent(true);
841  }
842  else
843  {
844  m_ui->functionOptionWidget->buttonStyleClear(true);
845  m_ui->stackedFunctionWidget->transparent(false);
846  }
847 
848  m_stackedStandWidget = nullptr;
849 
850  m_ui->lrcDisplayAllButton->setVisible(false);
852  {
854  }
855 }
856 
858 {
860 
862  {
863  module = QKugouWindow::None;
864  }
865 
866  QWidget *widget = new QKugouWindow(module, this);
867  connect(m_ui->musicRefreshButton, SIGNAL(clicked()), widget, SLOT(refresh()));
868  connect(widget, SIGNAL(buttonClicked(int)), this, SLOT(functionClicked(int)));
869 
870  m_ui->functionsContainer->addWidget(m_stackedWidget = widget);
871  m_ui->functionsContainer->setCurrentWidget(widget);
872 }
void showSingleSearchedFound(const QString &id)
static MusicRightAreaWidget * instance()
void updateBackgroundThemeDownload()
#define TTKStaticCast(x, y)
Definition: ttkglobal.h:231
virtual void setCurrentValue(const QString &value) overridefinal
The class of the playlist music query widget.
static MusicApplication * instance()
MusicDownloadStatusModule * m_downloadStatusObject
void setLrcDisplayExpand(bool expand) noexcept
struct config_s config
bool isVerticalWindowType() const noexcept
The class of the platform system manager.
#define MUSIC_SEARCH_PAGE
void setLineMax(int max) noexcept
virtual void applyParameter() overridefinal
The class of the album music query widget.
The class of the playlist backup widget.
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 setCurrentTime(qint64 time, qint64 total) noexcept
void setCurrentPlayState(bool state) const
#define MUSIC_LRC_PAGE
void startToSearchByID(const QString &name)
The class of the song daily widget.
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
The class of the personal radio query widget.
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)
The class of the music dj radio widget.
The class of the advance search widget.
void blockOption(bool block) noexcept
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_SIGNLE_SHOT(...)
Definition: ttkqtglobal.h:189
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)
virtual void startDrawLrc() overridefinal
static constexpr const char * BtnBackFresh
MusicLrcAnalysis * m_lrcAnalysis
MusicVideoPlayWidget * m_videoPlayerWidget
void setCurrentCategory(const MusicResultsCategoryItem &category)
#define TTK_SLOT
Definition: ttkqtglobal.h:177
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
The class of the widget resize interface.
void showPersonalRadioFound(const QString &id)
void showPlaylistFound(const QString &id)
void movieSearchByID(const QString &id)
The class of the playlist music category widget.
virtual void setCurrentValue(const QString &value) overridefinal
The class of the desktop horizontal lrc container.
virtual void setCurrentValue(const QString &value) overridefinal
virtual void startDrawLrc() overridefinal
The class of the artist music query widget.
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 setCurrentValue(const QString &value) overridefinal
virtual void stopDrawLrc() overridefinal
void checkMetaDataValid(bool mode) const
State loadFromFile(const QString &path)
const char int mode
Definition: ioapi.h:135
Ui::MusicApplication * m_ui
virtual void resizeWidget()=0
The class of the artist list music query widget.
static constexpr const char * BtnBackBack
void showPlaylistCategoryFound(const QString &id, const QString &value)
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
void setLrcAnalysisModel(MusicLrcAnalysis *analysis) noexcept
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:219
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:82
void setCurrentSongName(const QString &name) noexcept
#define LEFT_SIDE_WIDTH_MIN
Definition: musicobject.h:169
virtual void stopDrawLrc() overridefinal