TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicbottomareawidget.cpp
Go to the documentation of this file.
2 #include "ui_musicapplication.h"
3 #include "musicapplication.h"
4 #include "musicsystemtraymenu.h"
5 #include "musicplatformextras.h"
7 #include "musictinyuiobject.h"
8 #include "musicrightareawidget.h"
10 
12 
14  : QWidget(parent),
15  m_systemCloseConfig(false),
16  m_lrcWidgetShowFullScreen(true)
17 {
18  m_instance = this;
19 
23 }
24 
26 {
27  delete m_systemTrayMenu;
28  delete m_systemTray;
29  delete m_platformExtras;
30  delete m_blurModule;
31 }
32 
34 {
35  return m_instance;
36 }
37 
38 void MusicBottomAreaWidget::setupUi(Ui::MusicApplication *ui)
39 {
40  m_ui = ui;
41  //
42  m_blurModule->initialize(ui->backgroundLayout, ui->bottomWidget);
43 
44  ui->resizeLabelWidget->setPixmap(QPixmap(":/tiny/lb_resize_normal"));
45  ui->musicSongTitle->setEffectOnResize(true);
46  connect(ui->musicDesktopLrc, SIGNAL(clicked()), m_systemTrayMenu, SLOT(showDesktopLrc()));
47 }
48 
49 void MusicBottomAreaWidget::iconActivated(QSystemTrayIcon::ActivationReason reason)
50 {
51  switch(reason)
52  {
53  case QSystemTrayIcon::DoubleClick: break;
54  case QSystemTrayIcon::Trigger:
55  {
57  if(w->isMinimized() || w->isHidden())
58  {
59  w->showNormal();
60  w->activateWindow();
61  }
62  break;
63  }
64  default: break;
65  }
66 }
67 
69 {
70  m_systemTray = new QSystemTrayIcon(MusicApplication::instance());
71  m_systemTray->setIcon(QIcon(":/image/lb_app_logo"));
72  m_systemTray->setToolTip(tr("TTKMusicPlayer"));
73 
75 
76  m_systemTray->setContextMenu(m_systemTrayMenu);
77  m_systemTray->show();
78  connect(m_systemTray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
79 }
80 
82 {
84 }
85 
87 {
90 }
91 
93 {
95 }
96 
97 void MusicBottomAreaWidget::setLabelText(const QString &name) const
98 {
100  m_systemTray->setToolTip(name);
101 }
102 
103 void MusicBottomAreaWidget::showMessage(const QString &title, const QString &text)
104 {
105  m_systemTray->showMessage(title, text);
106 }
107 
109 {
110  const bool con = m_platformExtras->isDisableBlurBehindWindow();
112 
113  m_ui->topRightWidget->setVisible(!con);
114  m_ui->centerRightWidget->setVisible(!con);
115  m_ui->bottomCenterWidget->setVisible(!con);
116  m_ui->bottomRightWidget->setVisible(!con);
117  m_ui->bottomLeftContainWidget->setMinimumWidth(con ? CONCISE_WIDTH_MIN : 220);
118 
119  m_ui->musicWindowConcise->setParent(con ? m_ui->background : m_ui->topRightWidget);
120  m_ui->musicWindowConcise->setStyleSheet(con ? TTK::UI::BtnConciseOut : TTK::UI::BtnConciseIn);
121  m_ui->minimization->setParent(con ? m_ui->background : m_ui->topRightWidget);
122  m_ui->windowClose->setParent(con ? m_ui->background : m_ui->topRightWidget);
123 
124  m_ui->musicBestLove->setParent(con ? m_ui->background : m_ui->bottomRightWidget);
125  m_ui->musicDownload->setParent(con ? m_ui->background : m_ui->bottomRightWidget);
126  m_ui->musicMoreFunction->setParent(con ? m_ui->background : m_ui->bottomRightWidget);
127  m_ui->musicSound->setParent(con ? m_ui->background : m_ui->bottomRightWidget);
128  m_ui->musicDesktopLrc->setParent(con ? m_ui->background : m_ui->bottomRightWidget);
129 
130  m_ui->musicTimeWidget->setParent(con ? m_ui->background : m_ui->bottomCenterWidget);
131 
132  if(con)
133  {
135  app->setMinimumSize(CONCISE_WIDTH_MIN, WINDOW_HEIGHT_MIN);
136  app->setMaximumSize(CONCISE_WIDTH_MIN, WINDOW_HEIGHT_MIN);
137 
138  m_ui->musicWindowConcise->move(245, 20);
139  m_ui->musicWindowConcise->show();
140  m_ui->minimization->move(270, 20);
141  m_ui->minimization->show();
142  m_ui->windowClose->move(295, 20);
143  m_ui->windowClose->show();
144 
145  m_ui->musicPrevious->setStyleSheet(TTK::UI::TinyBtnPrevious);
146  m_ui->musicKey->setStyleSheet(app->isPlaying() ? TTK::UI::TinyBtnPause : TTK::UI::TinyBtnPlay);
147  m_ui->musicNext->setStyleSheet(TTK::UI::TinyBtnNext);
148  m_ui->musicPrevious->setFixedSize(28, 28);
149  m_ui->musicKey->setFixedSize(28, 28);
150  m_ui->musicNext->setFixedSize(28, 28);
151 
152  m_ui->bottomLeftWidgetLayout->addWidget(m_ui->musicBestLove);
153  m_ui->bottomLeftWidgetLayout->addWidget(m_ui->musicDownload);
154  m_ui->bottomLeftWidgetLayout->addWidget(m_ui->musicMoreFunction);
155  m_ui->bottomLeftWidgetLayout->addWidget(m_ui->musicSound);
156  m_ui->bottomLeftWidgetLayout->addWidget(m_ui->musicDesktopLrc);
157 
158  m_ui->bottomLeftContainWidgetLayout->addWidget(m_ui->musicTimeWidget);
159  }
160  else
161  {
162  const QSize &size = G_SETTING_PTR->value(MusicSettingManager::ScreenSize).toSize();
164  app->setMinimumSize(WINDOW_WIDTH_MIN, WINDOW_HEIGHT_MIN);
165  app->setMaximumSize(size.width(), size.height());
166 
167  m_ui->musicPrevious->setStyleSheet(TTK::UI::BtnPrevious);
168  m_ui->musicKey->setStyleSheet(app->isPlaying() ? TTK::UI::BtnPause : TTK::UI::BtnPlay);
169  m_ui->musicNext->setStyleSheet(TTK::UI::BtnNext);
170  m_ui->musicPrevious->setFixedSize(44, 44);
171  m_ui->musicKey->setFixedSize(44, 44);
172  m_ui->musicNext->setFixedSize(44, 44);
173 
174  m_ui->topRightWidgetLayout->insertWidget(11, m_ui->musicWindowConcise);
175  m_ui->topRightWidgetLayout->addWidget(m_ui->minimization);
176  m_ui->topRightWidgetLayout->addWidget(m_ui->windowClose);
177 
178  m_ui->bottomRightWidgetLayout->insertWidget(0, m_ui->musicBestLove);
179  m_ui->bottomRightWidgetLayout->insertWidget(1, m_ui->musicDownload);
180  m_ui->bottomRightWidgetLayout->insertWidget(2, m_ui->musicMoreFunction);
181  m_ui->bottomRightWidgetLayout->insertWidget(4, m_ui->musicSound);
182  m_ui->bottomRightWidgetLayout->insertWidget(6, m_ui->musicDesktopLrc);
183 
184  m_ui->bottomCenterWidgetLayout->addWidget(m_ui->musicTimeWidget, 3, 0, 1, 6);
185  }
187 }
188 
190 {
192 }
193 
195 {
196  const int height = G_SETTING_PTR->value(MusicSettingManager::WidgetSize).toSize().height() - 155 - m_ui->lrcDisplayAllButton->height() - 40;
197  m_ui->lrcDisplayAllButton->move(m_ui->lrcDisplayAllButton->x(), height / 2);
198 }
199 
201 {
204 
206  {
208  }
209  else
210  {
211  m_blurModule->update(false);
212  }
213 }
214 
216 {
218  {
219  return;
220  }
221 
222  if(m_ui->musiclrccontainerforinterior->lrcDisplayExpand())
223  {
225  }
226 
229 
230  m_ui->topWidget->setVisible(m_lrcWidgetShowFullScreen);
231  m_ui->bottomWidget->setVisible(m_lrcWidgetShowFullScreen);
232  m_ui->centerLeftWidget->setVisible(m_lrcWidgetShowFullScreen);
233  m_ui->songsContainer->setVisible(m_lrcWidgetShowFullScreen);
234  m_ui->stackedFunctionWidget->setVisible(m_lrcWidgetShowFullScreen);
235  m_ui->lrcDisplayAllButton->setVisible(m_lrcWidgetShowFullScreen);
236 
237  m_ui->musiclrccontainerforinterior->createFloatPlayWidget();
239  m_ui->musiclrccontainerforinterior->lrcWidgetShowFullScreen();
240 }
241 
243 {
245 }
246 
248 {
249  m_ui->musicDesktopLrc->setChecked(false);
252 }
static MusicRightAreaWidget * instance()
void showDesktopLrc(bool show) const
static MusicApplication * instance()
void setCurrentPlayState(bool state) const
void iconActivated(QSystemTrayIcon::ActivationReason)
static MusicBottomAreaWidget * instance()
voidpf void uLong size
Definition: ioapi.h:136
static constexpr const char * TinyBtnPrevious
The class of the app main widget.
#define CONCISE_WIDTH_MIN
Definition: musicobject.h:156
MusicBottomAreaWidget(QWidget *parent=nullptr)
void setLabelText(const QString &name) const
void setLabelText(const QString &text) const
void setCurrentPlayState(bool state) const
The class of the blur spectrum object.
static constexpr const char * BtnPlay
bool isDisableBlurBehindWindow() const
The class of the platform extras.
static constexpr const char * TinyBtnPause
const char * name
Definition: http_parser.c:458
void setDestopLrcVisible(bool status) const
void setVolumeValue(int value) const
The class of the app bottom area widget.
The class of the system tray menu widget.
static constexpr const char * BtnPrevious
void setCurrentPlayState(bool state) const
static constexpr const char * TinyBtnPlay
void lockDesktopLrc(bool lock)
void setVolumeValue(int value) const
void initialize(QVBoxLayout *layout, QWidget *widget)
static constexpr const char * TinyBtnNext
static constexpr const char * BtnConciseOut
MusicSystemTrayMenu * m_systemTrayMenu
void setSystemCloseConfig(bool status)
bool isPlaying() const
#define WINDOW_WIDTH_MIN
Definition: musicobject.h:153
MusicBlurSpecturmModule * m_blurModule
static constexpr const char * BtnPause
void disableBlurBehindWindow(bool enabled)
void showMessage(const QString &title, const QString &text)
MusicPlatformExtras * m_platformExtras
static constexpr const char * BtnConciseIn
void setupUi(Ui::MusicApplication *ui)
QSystemTrayIcon * m_systemTray
Ui::MusicApplication * m_ui
static MusicBottomAreaWidget * m_instance
state
Definition: http_parser.c:279
#define WINDOW_HEIGHT_MIN
Definition: musicobject.h:154
static constexpr const char * BtnNext
#define G_SETTING_PTR