TTKMusicPlayer  4.2.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
ttkapplication.cpp
Go to the documentation of this file.
1 #include "ttkapplication.h"
2 #include "ttklocalpeer.h"
3 
4 #include <QWidget>
5 
9 class TTKApplicationPrivate : public TTKPrivate<TTKApplication>
10 {
11 public:
12  TTKApplicationPrivate() noexcept;
13  ~TTKApplicationPrivate() noexcept;
14 
16  QWidget *m_activeWindow;
17 };
18 
20  : m_peer(nullptr),
21  m_activeWindow(nullptr)
22 {
23 
24 }
25 
27 {
28  delete m_peer;
29 }
30 
31 
32 
33 TTKApplication::TTKApplication(int &argc, char **argv)
34  : QApplication(argc, argv)
35 {
37  initialize();
38 }
39 
40 TTKApplication::TTKApplication(const QString &id, int &argc, char **argv)
41  : QApplication(argc, argv)
42 {
44  initialize(id);
45 }
46 
48 {
49  TTK_D(const TTKApplication);
50  return d->m_peer->isClient();
51 }
52 
53 QString TTKApplication::id() const noexcept
54 {
55  TTK_D(const TTKApplication);
56  return d->m_peer->applicationId();
57 }
58 
59 void TTKApplication::setActivationWindow(QWidget* aw, bool activateOnMessage) const noexcept
60 {
62  d->m_activeWindow = aw;
63 
64  if(activateOnMessage)
65  {
66  connect(d->m_peer, SIGNAL(messageReceived(QString)), this, SLOT(activateWindow()));
67  }
68  else
69  {
70  disconnect(d->m_peer, SIGNAL(messageReceived(QString)), this, SLOT(activateWindow()));
71  }
72 }
73 
75 {
76  TTK_D(const TTKApplication);
77  return d->m_activeWindow;
78 }
79 
80 bool TTKApplication::sendMessage(const QString &message, int timeout)
81 {
82  TTK_D(const TTKApplication);
83  return d->m_peer->sendMessage(message, timeout);
84 }
85 
87 {
89  if(d->m_activeWindow)
90  {
91  d->m_activeWindow->setWindowState(d->m_activeWindow->windowState() & ~Qt::WindowMinimized);
92  d->m_activeWindow->raise();
93  d->m_activeWindow->activateWindow();
94  }
95 }
96 
97 void TTKApplication::initialize(const QString &id)
98 {
100  d->m_peer = new TTKLocalPeer(this, id);
101  connect(d->m_peer, SIGNAL(messageReceived(QString)), SIGNAL(messageReceived(QString)));
102 }
The class of the ttk application private.
bool isRunning() const
The namespace of the string literals.
QString id() const noexcept
The class of the ttk local peer.
Definition: ttklocalpeer.h:29
The class of the ttk application.
~TTKApplicationPrivate() noexcept
QWidget * activationWindow() const noexcept
void messageReceived(const QString &message)
TTKApplication(int &argc, char **argv)
void setActivationWindow(QWidget *aw, bool activateOnMessage=true) const noexcept
void initialize(const QString &id={})
TTKApplicationPrivate() noexcept
bool sendMessage(const QString &message, int timeout=5000)
#define TTK_INIT_PRIVATE(Class)
Definition: ttkprivate.h:33
#define const
Definition: zconf.h:233
The class of the ttk private base.
Definition: ttkprivate.h:48
#define TTK_D(Class)
Definition: ttkprivate.h:41