TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicleftareawidget.cpp
Go to the documentation of this file.
1 #include "musicleftareawidget.h"
2 #include "ui_musicapplication.h"
3 #include "musicapplication.h"
8 #include "musicwebradioview.h"
12 #include "musicrightareawidget.h"
13 
15 
17  : QWidget(parent),
18  m_currentIndex(0),
19  m_stackedWidget(nullptr),
20  m_localSharedSongWidget(nullptr),
21  m_cloudSharedSongWidget(nullptr)
22 {
23  m_instance = this;
24 }
25 
27 {
30  delete m_stackedWidget;
31 }
32 
34 {
35  return m_instance;
36 }
37 
38 void MusicLeftAreaWidget::setupUi(Ui::MusicApplication *ui)
39 {
40  m_ui = ui;
41  //
43 
44  ui->musicPrevious->setStyleSheet(TTK::UI::BtnPrevious);
45  ui->musicNext->setStyleSheet(TTK::UI::BtnNext);
46  ui->musicKey->setStyleSheet(TTK::UI::BtnPlay);
47 
48  ui->musicBestLove->setStyleSheet(TTK::UI::BtnUnLove);
49  ui->musicDesktopLrc->setStyleSheet(TTK::UI::BtnDKLrc);
50  ui->musicDownload->setStyleSheet(TTK::UI::BtnUnDownload);
51  ui->musicMoreFunction->setStyleSheet(TTK::UI::BtnMore);
52 
53  ui->musicPrevious->setCursor(QCursor(Qt::PointingHandCursor));
54  ui->musicKey->setCursor(QCursor(Qt::PointingHandCursor));
55  ui->musicNext->setCursor(QCursor(Qt::PointingHandCursor));
56  ui->musicSound->setCursor(QCursor(Qt::PointingHandCursor));
57  ui->musicBestLove->setCursor(QCursor(Qt::PointingHandCursor));
58  ui->musicDesktopLrc->setCursor(QCursor(Qt::PointingHandCursor));
59  ui->musicPlayMode->setCursor(QCursor(Qt::PointingHandCursor));
60  ui->musicDownload->setCursor(QCursor(Qt::PointingHandCursor));
61  ui->musicMoreFunction->setCursor(QCursor(Qt::PointingHandCursor));
62 
63  ui->windowClose->setToolTip(tr("Close"));
64  ui->musicKey->setToolTip(tr("Play"));
65  ui->musicPrevious->setToolTip(tr("Previous"));
66  ui->musicNext->setToolTip(tr("Next"));
67  ui->musicBestLove->setToolTip(tr("Best Love"));
68  ui->musicDownload->setToolTip(tr("Download"));
69  ui->musicMoreFunction->setToolTip(tr("More"));
70  ui->musicDesktopLrc->setToolTip(tr("Show Desktop Lrc"));
71  ui->musicPlayMode->setToolTip(tr("Play Mode"));
72 
73  connect(ui->musicKey, SIGNAL(clicked()), MusicApplication::instance(), SLOT(switchToPlayState()));
74  connect(ui->musicPrevious, SIGNAL(clicked()), MusicApplication::instance(), SLOT(playPrevious()));
75  connect(ui->musicNext, SIGNAL(clicked()), MusicApplication::instance(), SLOT(playNext()));
76  connect(ui->musicSound, SIGNAL(clicked()), MusicApplication::instance(), SLOT(volumeMute()));
77  connect(ui->musicSound, SIGNAL(volumeChanged(int)), MusicApplication::instance(), SLOT(volumeChanged(int)));
78  connect(ui->musicBestLove, SIGNAL(clicked()), MusicApplication::instance(), SLOT(addSongToLovestList()));
79  connect(ui->musicDownload, SIGNAL(clicked()), this, SLOT(downloadSongToLocal()));
80  connect(ui->musicEnhancedButton, SIGNAL(enhancedMusicChanged(int)), MusicApplication::instance(), SLOT(enhancedMusicChanged(int)));
81  connect(ui->musicEnhancedButton, SIGNAL(enhancedMusicChanged(int)), ui->musicTimeWidget, SLOT(setSliderStyleByType(int)));
82  connect(ui->userOptionWidget, SIGNAL(buttonClicked(int)), SLOT(switchToSelectedItemStyle(int)));
83 }
84 
86 {
87  m_ui->musicBestLove->setStyleSheet(state ? TTK::UI::BtnLove : TTK::UI::BtnUnLove);
88  Q_EMIT currentLoveStateChanged();
89 }
90 
92 {
93  MusicDownloadMgmtWidget mgmt(this);
94  mgmt.initialize(m_ui->musicSongTitle->text(), MusicAbstractQueryRequest::QueryType::Music);
95 }
96 
98 {
99  bool state = false;
101  m_ui->musicDownload->setStyleSheet(state ? TTK::UI::BtnDownload : TTK::UI::BtnUnDownload);
103 }
104 
106 {
107  if(m_currentIndex == 0)
108  {
109  return;
110  }
111 
112  delete m_stackedWidget;
113  m_stackedWidget = nullptr;
114 
115  m_ui->songsContainer->setIndex(0, 0);
116  m_ui->songsContainer->start(0);
117  m_currentIndex = 0;
118 }
119 
121 {
122  if(m_currentIndex == 1)
123  {
124  return;
125  }
126 
127  delete m_stackedWidget;
128  m_stackedWidget = new QWidget(this);
129  m_stackedWidget->hide();
130 
132  {
133  m_ui->songsContainer->removeWidget(m_cloudSharedSongWidget);
134  m_cloudSharedSongWidget->hide();
135  }
136 
138  {
140  }
141 
142  m_ui->songsContainer->addWidget(m_localSharedSongWidget);
143  m_ui->songsContainer->setIndex(0, 0);
144  m_ui->songsContainer->start(1);
145  m_currentIndex = 1;
146 }
147 
149 {
150  if(m_currentIndex == 2)
151  {
152  return;
153  }
154 
155  delete m_stackedWidget;
156  m_stackedWidget = new QWidget(this);
157  m_stackedWidget->hide();
158 
160  {
161  m_ui->songsContainer->removeWidget(m_localSharedSongWidget);
162  m_localSharedSongWidget->hide();
163  }
164 
166  {
168  }
169 
170  m_ui->songsContainer->addWidget(m_cloudSharedSongWidget);
172  m_ui->songsContainer->setIndex(0, 0);
173  m_ui->songsContainer->start(1);
174  m_currentIndex = 2;
175 }
176 
178 {
179  if(m_currentIndex == 3)
180  {
181  return;
182  }
183 
184  delete m_stackedWidget;
186 
187  m_ui->songsContainer->insertWidget(1, m_stackedWidget);
188  m_ui->songsContainer->setIndex(0, 0);
189  m_ui->songsContainer->start(1);
190  m_currentIndex = 3;
191 }
192 
194 {
195  if(m_currentIndex == 4)
196  {
197  return;
198  }
199 
200  delete m_stackedWidget;
202 
203  m_ui->songsContainer->insertWidget(1, m_stackedWidget);
204  m_ui->songsContainer->setIndex(0, 0);
205  m_ui->songsContainer->start(1);
206  m_currentIndex = 4;
207 }
208 
210 {
211  switch(index)
212  {
213  case 0: stackedSongListWidgetChanged(); break;
214  case 1: stackedLocalWidgetChanged(); break;
215  case 2: stackedCloudWidgetChanged(); break;
216  case 3: stackedRadioWidgetChanged(); break;
217  case 4: stackedMyDownWidgetChanged(); break;
218  default: break;
219  }
220 
221  if(m_ui->musiclrccontainerforinterior->lrcDisplayExpand())
222  {
224  }
225 }
static MusicRightAreaWidget * instance()
static MusicApplication * instance()
void currentDownloadStateChanged()
MusicConnectLocalWidget * m_localSharedSongWidget
static constexpr const char * BtnUnDownload
void setLoveState(bool state)
The class of the download tool box widget.
static constexpr const char * BtnPlay
void currentLoveStateChanged()
The class of the download manager widget.
static MusicLeftAreaWidget * m_instance
static constexpr const char * BtnMore
static constexpr const char * BtnDownload
MusicCloudSharedSongWidget * m_cloudSharedSongWidget
Ui::MusicApplication * m_ui
The class of the app left area widget.
static MusicLeftAreaWidget * instance()
static constexpr const char * BtnDKLrc
MusicLeftAreaWidget(QWidget *parent=nullptr)
static constexpr const char * BtnPrevious
static constexpr const char * BtnLove
void setupUi(Ui::MusicApplication *ui)
QString containsDownloadItem(bool &contains) const
The class of the cloud share song widget.
void initialize(const QString &name, MusicAbstractQueryRequest::QueryType type)
The class of the connect local widget.
state
Definition: http_parser.c:279
The class of the web music radio widget.
static constexpr const char * BtnNext
static constexpr const char * BtnUnLove
void switchToSelectedItemStyle(int index)
#define LEFT_SIDE_WIDTH_MIN
Definition: musicobject.h:155