TTKMusicPlayer  4.1.3.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"
11 #include "musicrightareawidget.h"
12 
14 
16  : QWidget(parent),
17  m_currentIndex(0),
18  m_stackedWidget(nullptr),
19  m_localSharedSongWidget(nullptr),
20  m_cloudSharedSongWidget(nullptr)
21 {
22  m_instance = this;
23 }
24 
26 {
29  delete m_stackedWidget;
30 }
31 
33 {
34  return m_instance;
35 }
36 
37 void MusicLeftAreaWidget::setupUi(Ui::MusicApplication *ui)
38 {
39  m_ui = ui;
40  //
42 
43  ui->musicPrevious->setStyleSheet(TTK::UI::BtnPrevious);
44  ui->musicNext->setStyleSheet(TTK::UI::BtnNext);
45  ui->musicKey->setStyleSheet(TTK::UI::BtnPlay);
46 
47  ui->musicBestLove->setStyleSheet(TTK::UI::BtnUnLove);
48  ui->musicDesktopLrc->setStyleSheet(TTK::UI::BtnDKLrc);
49  ui->musicDownload->setStyleSheet(TTK::UI::BtnUnDownload);
50  ui->musicMoreFunction->setStyleSheet(TTK::UI::BtnMore);
51 
52  ui->musicPrevious->setCursor(QCursor(Qt::PointingHandCursor));
53  ui->musicKey->setCursor(QCursor(Qt::PointingHandCursor));
54  ui->musicNext->setCursor(QCursor(Qt::PointingHandCursor));
55  ui->musicSound->setCursor(QCursor(Qt::PointingHandCursor));
56  ui->musicBestLove->setCursor(QCursor(Qt::PointingHandCursor));
57  ui->musicDesktopLrc->setCursor(QCursor(Qt::PointingHandCursor));
58  ui->musicPlayMode->setCursor(QCursor(Qt::PointingHandCursor));
59  ui->musicDownload->setCursor(QCursor(Qt::PointingHandCursor));
60  ui->musicMoreFunction->setCursor(QCursor(Qt::PointingHandCursor));
61 
62  ui->windowClose->setToolTip(tr("Close"));
63  ui->musicKey->setToolTip(tr("Play"));
64  ui->musicPrevious->setToolTip(tr("Previous"));
65  ui->musicNext->setToolTip(tr("Next"));
66  ui->musicBestLove->setToolTip(tr("Best Love"));
67  ui->musicDownload->setToolTip(tr("Download"));
68  ui->musicMoreFunction->setToolTip(tr("More"));
69  ui->musicDesktopLrc->setToolTip(tr("Show Desktop Lrc"));
70  ui->musicPlayMode->setToolTip(tr("Play Mode"));
71 
72  connect(ui->musicKey, SIGNAL(clicked()), MusicApplication::instance(), SLOT(switchToPlayState()));
73  connect(ui->musicPrevious, SIGNAL(clicked()), MusicApplication::instance(), SLOT(playPrevious()));
74  connect(ui->musicNext, SIGNAL(clicked()), MusicApplication::instance(), SLOT(playNext()));
75  connect(ui->musicSound, SIGNAL(clicked()), MusicApplication::instance(), SLOT(volumeMute()));
76  connect(ui->musicSound, SIGNAL(volumeChanged(int)), MusicApplication::instance(), SLOT(volumeChanged(int)));
77  connect(ui->musicBestLove, SIGNAL(clicked()), MusicApplication::instance(), SLOT(addSongToLovestList()));
78  connect(ui->musicDownload, SIGNAL(clicked()), this, SLOT(downloadSongToLocal()));
79  connect(ui->musicEnhancedButton, SIGNAL(enhancedSongChanged(int)), MusicApplication::instance(), SLOT(enhancedSongChanged(int)));
80  connect(ui->musicEnhancedButton, SIGNAL(enhancedSongChanged(int)), ui->musicTimeWidget, SLOT(setSliderStyleByType(int)));
81  connect(ui->userOptionWidget, SIGNAL(buttonClicked(int)), SLOT(switchToSelectedItemStyle(int)));
82 }
83 
85 {
86  m_ui->musicBestLove->setStyleSheet(state ? TTK::UI::BtnLove : TTK::UI::BtnUnLove);
87  Q_EMIT currentLoveStateChanged();
88 }
89 
91 {
92  MusicDownloadMgmtWidget mgmt(this);
93  mgmt.initialize(m_ui->musicSongTitle->text());
94 }
95 
97 {
98  bool exist = false;
100  m_ui->musicDownload->setStyleSheet(exist ? TTK::UI::BtnDownload : TTK::UI::BtnUnDownload);
102 }
103 
105 {
106  if(m_currentIndex == 0)
107  {
108  return;
109  }
110 
111  delete m_stackedWidget;
112  m_stackedWidget = nullptr;
113 
114  m_ui->songsContainer->setIndex(0, 0);
115  m_ui->songsContainer->start(0);
116  m_currentIndex = 0;
117 }
118 
120 {
121  if(m_currentIndex == 1)
122  {
123  return;
124  }
125 
126  delete m_stackedWidget;
127  m_stackedWidget = new QWidget(this);
128  m_stackedWidget->hide();
129 
131  {
132  m_ui->songsContainer->removeWidget(m_cloudSharedSongWidget);
133  m_cloudSharedSongWidget->hide();
134  }
135 
137  {
139  }
140 
141  m_ui->songsContainer->addWidget(m_localSharedSongWidget);
142  m_ui->songsContainer->setIndex(0, 0);
143  m_ui->songsContainer->start(1);
144  m_currentIndex = 1;
145 }
146 
148 {
149  if(m_currentIndex == 2)
150  {
151  return;
152  }
153 
154  delete m_stackedWidget;
155  m_stackedWidget = new QWidget(this);
156  m_stackedWidget->hide();
157 
159  {
160  m_ui->songsContainer->removeWidget(m_localSharedSongWidget);
161  m_localSharedSongWidget->hide();
162  }
163 
165  {
167  }
168 
169  m_ui->songsContainer->addWidget(m_cloudSharedSongWidget);
171  m_ui->songsContainer->setIndex(0, 0);
172  m_ui->songsContainer->start(1);
173  m_currentIndex = 2;
174 }
175 
177 {
178  if(m_currentIndex == 3)
179  {
180  return;
181  }
182 
183  delete m_stackedWidget;
185 
186  m_ui->songsContainer->insertWidget(1, m_stackedWidget);
187  m_ui->songsContainer->setIndex(0, 0);
188  m_ui->songsContainer->start(1);
189  m_currentIndex = 3;
190 }
191 
193 {
194  if(m_currentIndex == 4)
195  {
196  return;
197  }
198 
199  delete m_stackedWidget;
201 
202  m_ui->songsContainer->insertWidget(1, m_stackedWidget);
203  m_ui->songsContainer->setIndex(0, 0);
204  m_ui->songsContainer->start(1);
205  m_currentIndex = 4;
206 }
207 
209 {
210  switch(index)
211  {
212  case 0: stackedSongListWidgetChanged(); break;
213  case 1: stackedLocalWidgetChanged(); break;
214  case 2: stackedCloudWidgetChanged(); break;
215  case 3: stackedRadioWidgetChanged(); break;
216  case 4: stackedMyDownWidgetChanged(); break;
217  default: break;
218  }
219 
220  if(m_ui->musiclrccontainerforinterior->lrcDisplayExpand())
221  {
223  }
224 }
static MusicRightAreaWidget * instance()
static MusicApplication * instance()
void currentDownloadStateChanged()
MusicConnectLocalWidget * m_localSharedSongWidget
static constexpr const char * BtnUnDownload
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
void initialize(const QString &name)
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.
The class of the connect local widget.
void setSongLoveState(bool state)
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:157