TTKMusicPlayer  4.3.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"
17 #if !TTK_QT_VERSION_CHECK(6,0,0) || TTK_QT_VERSION_CHECK(6,2,0)
18 # include "musicidentifysongwidget.h"
19 #endif
22 #include "musicalbumquerywidget.h"
23 #include "musicartistquerywidget.h"
33 #include "musicsongdailywidget.h"
34 
35 #ifdef Q_OS_WIN
36 # include "musicplatformmanager.h"
37 #endif
38 #include "qkugou/qkugouwindow.h"
39 
40 #include <QPropertyAnimation>
41 
42 static constexpr int MAX_CONTAINER_SIZE = 10;
43 static constexpr int DEFAULT_CONTAINER_SIZE = 3;
44 
46 
48  : QWidget(parent),
49  m_lowPowerMode(false),
50  m_modeIndex(MainRecommendWidget),
51  m_lastModeIndex(m_modeIndex),
52  m_lastWidgetIndex(0),
53  m_currentWidget(nullptr),
54  m_videoWidget(nullptr),
55  m_interiorLrc(nullptr),
56  m_desktopLrc(nullptr),
57  m_wallpaperLrc(nullptr)
58 {
59  m_instance = this;
60 
61  m_lrcAnalysis = new MusicLrcAnalysis(this);
63 
66  connect(m_settingWidget, SIGNAL(parameterSettingChanged()), parent, SLOT(applyParameter()));
67 }
68 
70 {
71  delete m_settingWidget;
72  delete m_downloadStatus;
73  delete m_desktopLrc;
74  delete m_wallpaperLrc;
75 
76  if(m_videoWidget)
77  {
78  m_videoWidget->setVisible(false); //Fix bug on linux
79  delete m_videoWidget;
80  }
81 }
82 
84 {
85  return m_instance;
86 }
87 
88 void MusicRightAreaWidget::setupUi(Ui::MusicApplication *ui)
89 {
90  m_ui = ui;
91  //
92  m_interiorLrc = ui->lrcForInterior;
94  m_interiorLrc->resize(ui->functionsContainer->size());
95 
96  ui->backButton->setStyleSheet(TTK::UI::BtnBackBack);
97  ui->refreshButton->setStyleSheet(TTK::UI::BtnBackFresh);
98 
99  ui->lrcDisplayAllButton->setCursor(QCursor(Qt::PointingHandCursor));
100  ui->lrcDisplayAllButton->setIconSize(QSize(15, 56));
101  connect(ui->lrcDisplayAllButton, SIGNAL(clicked()), SLOT(lrcDisplayAllClicked()));
102  //
103  QButtonGroup *buttonGroup = new QButtonGroup(this);
104  buttonGroup->addButton(ui->songSearchButton, MusicRightAreaWidget::SearchWidget);
105  buttonGroup->addButton(ui->windowIdentify, MusicRightAreaWidget::IndentifyWidget);
106  QtButtonGroupConnect(buttonGroup, this, functionClicked, TTK_SLOT);
107  //
108  connect(m_interiorLrc, SIGNAL(showCurrentLrcColorSetting()), m_settingWidget, SLOT(changeInteriorLrcWidget()));
109  connect(m_interiorLrc, SIGNAL(currentLrcUpdated()), MusicApplication::instance(), SLOT(currentLrcUpdated()));
110  connect(m_interiorLrc, SIGNAL(backgroundChanged()), MusicTopAreaWidget::instance(), SLOT(backgroundThemeDownloadFinished()));
111  connect(m_interiorLrc, SIGNAL(showCurrentLrcSetting()), MusicApplication::instance(), SLOT(showSettingWidget()));
112  connect(m_interiorLrc, SIGNAL(updateCurrentTime(qint64)), MusicApplication::instance(), SLOT(updateCurrentTime(qint64)));
113  connect(ui->backButton, SIGNAL(clicked()), SLOT(functionGoBack()));
114  connect(ui->functionOptionWidget, SIGNAL(buttonClicked(int)), SLOT(functionClicked(int)));
115  connect(ui->songSearchEdit, SIGNAL(enterFinished(QString)), SLOT(showSongSearchedFound(QString)));
116 }
117 
119 {
120  m_interiorLrc->start();
121  m_desktopLrc->start();
122  if(m_wallpaperLrc)
123  {
125  }
126 }
127 
129 {
130  m_interiorLrc->stop();
131  m_desktopLrc->stop();
132  if(m_wallpaperLrc)
133  {
134  m_wallpaperLrc->stop();
135  }
136 }
137 
139 {
141 }
142 
144 {
145  return m_desktopLrc->isVisible();
146 }
147 
149 {
150  m_interiorLrc->setVisible(status);
151 }
152 
154 {
155  return m_interiorLrc->isVisible();
156 }
157 
158 void MusicRightAreaWidget::updateCurrentLrc(qint64 current, qint64 total, bool playState) const
159 {
160  m_interiorLrc->setCurrentTime(current, total);
161  QString currentLrc, laterLrc;
162  qint64 intervalTime;
163  if(m_lrcAnalysis->findText(current, total, currentLrc, laterLrc, intervalTime))
164  {
165  //If this is a new line of the lyrics, then restart lyrics display mask
166  if(currentLrc != m_interiorLrc->text())
167  {
168  if(playState)
169  {
170  m_interiorLrc->updateCurrentLrc(intervalTime);
171  }
172 
173  {
174  m_desktopLrc->setCurrentTime(current, total);
175  m_desktopLrc->updateCurrentLrc(currentLrc, laterLrc, intervalTime);
176  }
177 
178  if(m_wallpaperLrc)
179  {
180  m_wallpaperLrc->setCurrentTime(current, total);
181  m_wallpaperLrc->updateCurrentLrc(intervalTime);
182  }
183  }
184  }
185 }
186 
187 void MusicRightAreaWidget::loadCurrentSongLrc(const QString &name, const QString &path) const
188 {
189  m_interiorLrc->stop();
191 
193 
195  m_desktopLrc->stop();
197 
199  {
200  m_desktopLrc->updateCurrentLrc(tr("No lrc data file found"), {}, 0);
201  }
202 
203  if(m_wallpaperLrc)
204  {
205  m_wallpaperLrc->stop();
207  m_wallpaperLrc->render(true);
208 
210  {
211  m_wallpaperLrc->updateCurrentLrc(tr("No lrc data file found"));
212  }
213  }
214 }
215 
217 {
219 }
220 
222 {
224 }
225 
227 {
230 }
231 
233 {
236  if(m_wallpaperLrc)
237  {
239  }
240 
242  m_desktopLrc->setVisible(config);
243  m_ui->desktopLrcButton->setChecked(config);
244 
245  config = G_SETTING_PTR->value(MusicSettingManager::RippleLowPowerMode).toBool();
246  if(config != m_lowPowerMode)
247  {
250  {
252  }
253  }
254 
256  {
258  }
259 }
260 
262 {
263  m_ui->songSearchWidget->resizeGeometry();
265 
267  if(currentWidget)
268  {
269  currentWidget->resizeGeometry();
270  }
271 
273  {
275  }
276 }
277 
279 {
280  if(m_ui->functionsContainer->count() <= DEFAULT_CONTAINER_SIZE)
281  {
282  return;
283  }
284 
286  const int index = TTKStaticCast(int, m_modeIndex);
287 
288  if(KugouRadioWidget <= index && index <= LrcWidget)
289  {
290  if(index != PlaylistWidget)
291  {
292  m_ui->functionOptionWidget->switchToSelectedItemStyle(index);
293  }
294  else
295  {
296  disconnect(m_ui->functionOptionWidget, SIGNAL(buttonClicked(int)), this, SLOT(functionClicked(int)));
297  m_ui->functionOptionWidget->switchToSelectedItemStyle(PlaylistWidget);
298  connect(m_ui->functionOptionWidget, SIGNAL(buttonClicked(int)), this, SLOT(functionClicked(int)));
299 
301  m_ui->functionOptionWidget->select(PlaylistWidget);
302  m_ui->functionsContainer->setCurrentIndex(m_lastWidgetIndex);
303  m_currentWidget = m_ui->functionsContainer->currentWidget();
305  }
306  }
307  else
308  {
310  m_ui->functionsContainer->setCurrentIndex(m_lastWidgetIndex);
311  m_currentWidget = m_ui->functionsContainer->currentWidget();
313  }
314 
315  m_ui->backButton->setEnabled(false);
316 }
317 
318 void MusicRightAreaWidget::functionClicked(int index, QWidget *widget)
319 {
321  m_lastWidgetIndex = m_ui->functionsContainer->currentIndex();
323 
324  functionCleanup();
326 
327  if(widget)
328  {
329  m_currentWidget = widget;
330  m_ui->functionsContainer->addWidget(m_currentWidget);
331  m_ui->functionsContainer->setCurrentWidget(m_currentWidget);
333  return;
334  }
335 
336  if(MainRecommendWidget <= index && index < LrcWidget)
337  {
338  m_ui->functionOptionWidget->select(index);
339  }
340 
341  switch(m_modeIndex)
342  {
343  case MainRecommendWidget: //insert main recommend widget
344  {
346  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
347  m_ui->functionsContainer->setCurrentWidget(widget);
349  break;
350  }
351  case KugouRadioWidget: //insert kugou radio widget
352  {
355  break;
356  }
357  case PlaylistWidget: //insert playlist widget
358  {
360  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
361  m_ui->functionsContainer->setCurrentWidget(widget);
362  widget->setCurrentValue({});
364  break;
365  }
366  case KugouMovieWidget: //insert kugou movie widget
367  {
370  break;
371  }
372  case VideoWidget: //insert video widget
373  {
374  if(!m_videoWidget)
375  {
377  connect(m_videoWidget, SIGNAL(popupButtonClicked(bool)), SLOT(videoSetPopup(bool)));
378  connect(m_videoWidget, SIGNAL(fullscreenButtonClicked(bool)), SLOT(videoFullscreen(bool)));
379  }
380 
381  m_videoWidget->popupMode(false);
382  m_ui->functionsContainer->addWidget(m_videoWidget);
383  m_ui->functionsContainer->setCurrentWidget(m_videoWidget);
385  break;
386  }
387  case LrcWidget: //insert lrc display widget
388  {
389  m_ui->functionsContainer->setCurrentIndex(MUSIC_LRC_PAGE);
390  m_ui->lrcDisplayAllButton->setStyleSheet(TTK::UI::TinyBtnLrcCollapse);
391  m_ui->lrcDisplayAllButton->setVisible(true);
393  break;
394  }
395  case SongRecommendWidget: //insert song recommend found widget
396  {
398  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
399  m_ui->functionsContainer->setCurrentWidget(widget);
400  widget->setCurrentValue({});
402  break;
403  }
404  case ToplistWidget: //insert toplist found widget
405  {
407  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
408  m_ui->functionsContainer->setCurrentWidget(widget);
409  widget->setCurrentValue({});
411  break;
412  }
413  case ArtistCategoryWidget: //insert artist category found widget
414  {
416  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
417  m_ui->functionsContainer->setCurrentWidget(widget);
418  widget->setCurrentValue({});
420  break;
421  }
422  case PlaylistCategoryWidget: //insert playlist category widget
423  {
425  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
426  m_ui->functionsContainer->setCurrentWidget(widget);
428  break;
429  }
430  case SearchWidget: //insert search display widget
431  {
432  QString searchedString = m_ui->songSearchEdit->text().trimmed();
433  searchedString = searchedString.isEmpty() ? m_ui->songSearchEdit->placeholderText() : searchedString;
434  //The string searched wouldn't allow to be none
435  if(!searchedString.isEmpty() && searchedString != tr("Please input search words"))
436  {
437  m_ui->songSearchEdit->setText(searchedString);
438  m_ui->songSearchWidget->startToSearchByValue(searchedString);
439  }
440  else
441  {
443  MusicToastLabel::popup(tr("Please enter input search text first"));
444  break;
445  }
446 
447  m_ui->functionsContainer->setCurrentIndex(MUSIC_SEARCH_PAGE);
449  break;
450  }
451  case SearchSingleWidget: //insert search display widget
452  {
453  m_ui->functionsContainer->setCurrentIndex(MUSIC_SEARCH_PAGE);
455  break;
456  }
457  case SimilarWidget: //insert similar found widget
458  {
460  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
461  m_ui->functionsContainer->setCurrentWidget(widget);
463  break;
464  }
465  case AlbumWidget: //insert album found widget
466  {
467  MusicAlbumQueryWidget *widget = new MusicAlbumQueryWidget(this);
468  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
469  m_ui->functionsContainer->setCurrentWidget(widget);
471  break;
472  }
473  case ArtistWidget: //insert artist found widget
474  {
476  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
477  m_ui->functionsContainer->setCurrentWidget(widget);
479  break;
480  }
481  case PlaylistInfoWidget: //insert playlist found widget
482  {
484  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
485  m_ui->functionsContainer->setCurrentWidget(widget);
487  break;
488  }
489  case SongDailyWidget: //insert song daily widget
490  {
491  MusicSongDailyWidget *widget = new MusicSongDailyWidget(this);
492  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
493  m_ui->functionsContainer->setCurrentWidget(widget);
495  break;
496  }
497  case AdvancedSearchWidget: //insert advanced search widget
498  {
500  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
501  m_ui->functionsContainer->setCurrentWidget(widget);
503  break;
504  }
505  case IndentifyWidget: //insert indentify songs widget
506  {
507 #if !TTK_QT_VERSION_CHECK(6,0,0) || TTK_QT_VERSION_CHECK(6,2,0)
509  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
510  m_ui->functionsContainer->setCurrentWidget(widget);
511  widget->initialize();
513 #else
514  MusicToastLabel::popup(tr("Unsupported identify song module"));
515 #endif
516  break;
517  }
518  case KugouKuiSheWidget: //insert kugou kuishe widget
519  {
522  break;
523  }
524  case WebDJRadioWidget: //insert web dj radio widget
525  {
526  MusicWebDJRadioWidget *widget = new MusicWebDJRadioWidget(this);
527  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
528  m_ui->functionsContainer->setCurrentWidget(widget);
529  widget->initialize();
531  break;
532  }
533  case WebMVRadioWidget: //insert web mv radio widget
534  {
536  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
537  m_ui->functionsContainer->setCurrentWidget(widget);
538  widget->setCurrentValue({});
540  break;
541  }
542  case WebPVRadioWidget: //insert web pv radio widget
543  {
545  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
546  m_ui->functionsContainer->setCurrentWidget(widget);
548  break;
549  }
550  case ScreenSaverWidget: //insert screen saver widget
551  {
553  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
554  m_ui->functionsContainer->setCurrentWidget(widget);
556  break;
557  }
558  case PlaylistBackupWidget: //insert playlist backup widget
559  {
561  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
562  m_ui->functionsContainer->setCurrentWidget(widget);
564  break;
565  }
566  default: break;
567  }
568 
569  m_ui->backButton->setEnabled(m_ui->functionsContainer->count() > DEFAULT_CONTAINER_SIZE);
570 }
571 
573 {
575  {
577  }
578 
579  if(m_ui->functionsContainer->currentIndex() != MUSIC_LRC_PAGE)
580  {
582  }
583 
585 }
586 
587 void MusicRightAreaWidget::showSimilarFound(const QString &text)
588 {
590  TTKObjectCast(MusicSimilarQueryWidget*, m_currentWidget)->setCurrentValue(text);
591 }
592 
593 void MusicRightAreaWidget::showAlbumFound(const QString &text, const QString &id)
594 {
597  id.isEmpty() ? w->setCurrentValue(text) : w->setCurrentKey(id);
598 }
599 
600 void MusicRightAreaWidget::showArtistFound(const QString &text, const QString &id)
601 {
604  id.isEmpty() ? w->setCurrentValue(text) : w->setCurrentKey(id);
605 }
606 
608 {
611  w->setCurrentKey(id);
612 }
613 
614 void MusicRightAreaWidget::showPlaylistCategoryFound(const QString &id, const QString &value)
615 {
618  w->setCurrentCategory({id, value});
619 }
620 
622 {
624  {
625  m_videoWidget->raise();
626  }
627  else
628  {
630  }
631 
633 }
634 
635 void MusicRightAreaWidget::showMovieSearchedFound(const QString &name, const QString &id)
636 {
638  {
639  m_videoWidget->raise();
640  }
641  else
642  {
644  }
645 
647 }
648 
650 {
653  w->setCurrentValue(id);
654 }
655 
657 {
658  m_ui->songSearchEdit->setText(text.trimmed());
660 }
661 
663 {
665  m_ui->songSearchWidget->startToSearchByID(id);
666 }
667 
669 {
671  const bool pre = G_SETTING_PTR->value(MusicSettingManager::WindowConciseMode).toBool();
673 #ifdef Q_OS_UNIX
674  m_ui->functionsContainer->setCurrentIndex(MUSIC_LRC_PAGE);
675 #endif
678 }
679 
681 {
682  m_ui->desktopLrcButton->setChecked(visible);
683  m_desktopLrc->setVisible(visible);
686 }
687 
689 {
691 }
692 
694 {
697 
699  if(type)
700  {
702  }
703  else
704  {
706  }
708 
709  if(desktop)
710  {
711  m_desktopLrc->statusCopyFrom(desktop);
712  desktop->deleteLater();
713  }
714 
718 
719  connect(m_desktopLrc, SIGNAL(currentLrcUpdated()), MusicApplication::instance(), SLOT(currentLrcUpdated()));
720  connect(m_desktopLrc, SIGNAL(showCurrentLrcSetting()), MusicApplication::instance(), SLOT(showSettingWidget()));
721  connect(m_desktopLrc, SIGNAL(showCurrentLrcColorSetting()), m_settingWidget, SLOT(changeDesktopLrcWidget()));
722 
724 }
725 
727 {
728  if(!m_videoWidget)
729  {
730  return;
731  }
732 
733  m_videoWidget->popupMode(popup);
734  if(popup)
735  {
736  m_ui->functionsContainer->addWidget(m_currentWidget);
737  m_ui->functionsContainer->setCurrentWidget(m_currentWidget);
738 #ifdef Q_OS_WIN
739  MusicPlatformManager manager;
740  manager.windowsEnableLeftMode();
741 #endif
743  }
744  else
745  {
747  }
748 }
749 
751 {
752  if(m_videoWidget)
753  {
754  MusicApplication::instance()->activateWindow();
755  m_videoWidget->activateWindow();
756  }
757 }
758 
760 {
762  m_ui->functionOptionWidget->switchToSelectedItemStyle(MusicRightAreaWidget::LrcWidget);
763 
764  delete m_videoWidget;
765  m_videoWidget = nullptr;
766 }
767 
769 {
770  if(m_videoWidget)
771  {
774  }
775 }
776 
778 {
779  const bool lrcDisplayAll = !m_interiorLrc->lrcDisplayExpand();
780  m_interiorLrc->setLrcDisplayExpand(lrcDisplayAll);
781  m_ui->centerLeftWidget->setVisible(!lrcDisplayAll);
782 
783  const int height = m_interiorLrc->height() - m_ui->lrcDisplayAllButton->height() - 40;
784  QPropertyAnimation *lrcDisplayAllAnimation = new QPropertyAnimation(m_ui->lrcDisplayAllButton, "pos", this);
785  lrcDisplayAllAnimation->setDuration(100);
786  lrcDisplayAllAnimation->setStartValue(QPoint(lrcDisplayAll ? LEFT_SIDE_WIDTH_MIN - 20 : -LEFT_SIDE_WIDTH_MIN, height / 2));
787  lrcDisplayAllAnimation->setEndValue(QPoint(0, height / 2));
788  lrcDisplayAllAnimation->start();
789 
790  m_ui->lrcDisplayAllButton->setStyleSheet(lrcDisplayAll ? TTK::UI::TinyBtnLrcExpand : TTK::UI::TinyBtnLrcCollapse);
791  m_ui->windowConcise->setEnabled(!lrcDisplayAll);
792 }
793 
795 {
796  if(m_wallpaperLrc)
797  {
799  delete m_wallpaperLrc;
800  m_wallpaperLrc = nullptr;
801  }
802  else
803  {
804 #ifdef Q_OS_WIN
805  MusicPlatformManager manager;
806  manager.windowsEnableLeftMode();
807 #endif
811  m_wallpaperLrc->showFullScreen();
812  connect(m_interiorLrc, SIGNAL(linearGradientColorChanged()), m_wallpaperLrc, SLOT(changeCurrentLrcColor()));
813 
814  MusicApplication::instance()->activateWindow();
815  MusicApplication::instance()->showMinimized();
817  }
818 }
819 
821 {
823 }
824 
826 {
830 }
831 
833 {
835  {
837  }
838 
839  if(m_modeIndex == LrcWidget)
840  {
841  m_ui->functionOptionWidget->reset(false);
842  m_ui->stackedFunctionWidget->transparent(true);
843  }
844  else
845  {
846  m_ui->functionOptionWidget->reset(true);
847  m_ui->stackedFunctionWidget->transparent(false);
848  }
849 
850  m_ui->lrcDisplayAllButton->setVisible(false);
852  {
854  }
855 }
856 
858 {
859  if(m_ui->functionsContainer->count() <= MAX_CONTAINER_SIZE) // max item size
860  {
861  return;
862  }
863 
864  /* 1.MusicSongSearchOnlineWidget
865  2.MusicLrcContainerForInterior
866  3.QKugouWindow
867  top 3 items reserved, remove from item index 3.
868  */
869  for(int index = DEFAULT_CONTAINER_SIZE; index < MAX_CONTAINER_SIZE; ++index)
870  {
871  QWidget *w = m_ui->functionsContainer->widget(index);
872  if(w->objectName() == "MusicCloudManagerWidget")
873  {
874  // permanent widget
875  continue;
876  }
877 
878  if(index < m_lastWidgetIndex)
879  {
881  }
882  else if(index == m_lastWidgetIndex)
883  {
884  continue;
885  }
886 
887  m_ui->functionsContainer->removeWidget(w);
888  delete w;
889  break;
890  }
891 }
892 
894 {
896 
898  {
899  module = QKugouWindow::None;
900  }
901 
902  QWidget *widget = new QKugouWindow(module, this);
903  connect(m_ui->refreshButton, SIGNAL(clicked()), widget, SLOT(refresh()));
904 
905  m_ui->functionsContainer->addWidget(m_currentWidget = widget);
906  m_ui->functionsContainer->setCurrentWidget(widget);
907 }
void showSingleSearchedFound(const QString &id)
static MusicRightAreaWidget * instance()
#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()
void setLrcDisplayExpand(bool expand) noexcept
struct config_s config
bool isVerticalWindowType() const noexcept
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.
MusicSettingWidget * m_settingWidget
The class of the desktop vertical lrc container.
virtual void setCurrentKey(const QString &id) overridefinal
virtual void applyParameter() overridefinal
static constexpr const char * TinyBtnLrcCollapse
void setWindowLockedChanged(bool lock)
void setCurrentTime(qint64 time, qint64 total) noexcept
void setCurrentPlayState(bool state) const
void setBlockOption(bool block) noexcept
#define MUSIC_LRC_PAGE
virtual void start() overridefinal
void startToSearchByID(const QString &name)
The class of the song daily widget.
The class of the song identify widget.
void showSimilarFound(const QString &text)
void statusCopyFrom(MusicLrcContainerForDesktop *other)
MusicLrcContainerForDesktop * m_desktopLrc
MusicRightAreaWidget(QWidget *parent=nullptr)
static constexpr int MAX_CONTAINER_SIZE
void setCurrentPlayState(bool state) const
The class of the personal radio query widget.
void videoResearchButtonSearched(const QString &name)
void showSongSearchedFound(const QString &text)
void setInteriorLrcVisible(bool status) const
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 loadCurrentSongLrc(const QString &name, const QString &path) const
MusicLrcContainerForWallpaper * m_wallpaperLrc
virtual void setCurrentValue(const QString &value) overridefinal
MusicDownloadStatusModule * m_downloadStatus
void showMovieRadioFound(const QVariant &data)
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 setMaximum(int max) noexcept
virtual void setCurrentKey(const QString &id) overridefinal
static constexpr const char * BtnBackFresh
MusicLrcAnalysis * m_lrcAnalysis
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:115
The class of the widget resize interface.
void showPersonalRadioFound(const QString &id)
void showPlaylistFound(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
The class of the artist music query widget.
void showWallpaperRemote(bool create)
virtual void applyParameter() overridefinal
The class of the main recommend widget.
MusicVideoPlayWidget * m_videoWidget
virtual void setCurrentKey(const QString &id) overridefinal
void setLrcAnalysisModel(MusicLrcAnalysis *analysis)
virtual void setCurrentValue(const QString &value) overridefinal
static constexpr int DEFAULT_CONTAINER_SIZE
virtual void setCurrentValue(const QString &value) overridefinal
MusicLrcContainerForInterior * m_interiorLrc
void checkMetaDataValid(bool mode) const
State loadFromFile(const QString &path)
const char int mode
Definition: ioapi.h:135
Ui::MusicApplication * m_ui
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.
The class of the recommend music query widget.
virtual void resizeGeometry()=0
The class of the app right area widget.
virtual void stop() overridefinal
void updateCurrentLrc(qint64 current, qint64 total, bool playState) const
void setLrcAnalysisModel(MusicLrcAnalysis *analysis) noexcept
void findTimePosition(qint64 time) 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:219
void showMovieSearchedFound(const QString &name, 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:174