TTKMusicPlayer  4.1.3.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
ttkabstractmovedialog.cpp
Go to the documentation of this file.
2 #include "ttkglobalwrapper.h"
3 
5  : TTKAbstractMoveDialog(true, parent)
6 {
7 
8 }
9 
10 TTKAbstractMoveDialog::TTKAbstractMoveDialog(bool transparent, QWidget *parent)
11  : QDialog(parent),
12  m_blockOption(false),
13  m_shadowOption(true),
14  m_mouseLeftPressed(false)
15 {
16  setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
17  setAttribute(Qt::WA_TranslucentBackground, transparent);
18 }
19 
20 void TTKAbstractMoveDialog::paintEvent(QPaintEvent *event)
21 {
22  QDialog::paintEvent(event);
23  if(m_shadowOption)
24  {
25  QPainter painter(this);
26  TTK::setBorderShadow(this, &painter);
27  }
28 }
29 
31 {
32  QDialog::mousePressEvent(event);
33  if(event->button() == Qt::LeftButton && !m_blockOption)
34  {
35  m_mouseLeftPressed = true;
36  }
37 
39 }
40 
41 void TTKAbstractMoveDialog::mouseMoveEvent(QMouseEvent *event)
42 {
43  QDialog::mouseMoveEvent(event);
45  {
46  event->ignore();
47  return;
48  }
49 
50  const int xpos = QtMouseGlobalX(event) - m_mousePressedAt.x();
51  const int ypos = QtMouseGlobalY(event) - m_mousePressedAt.y();
53  move(x() + xpos, y() + ypos);
54 }
55 
57 {
58  QDialog::mouseReleaseEvent(event);
60  m_mouseLeftPressed = false;
61 }
#define QtMouseGlobalY(p)
Definition: ttkqtcompat.h:147
#define QtMouseGlobalX(p)
Definition: ttkqtcompat.h:146
TTK_MODULE_EXPORT void setBorderShadow(QWidget *widget, QPainter *painter)
virtual void mouseMoveEvent(QMouseEvent *event) override
#define QtMouseGlobalPos(p)
Definition: ttkqtcompat.h:148
virtual void mouseReleaseEvent(QMouseEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void paintEvent(QPaintEvent *event) override
TTKAbstractMoveDialog(QWidget *parent=nullptr)
The class of the ttk moving dialog base.