TTKMusicPlayer  3.7.0.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 "ttkglobalhelper.h"
3 
5  : TTKAbstractMoveDialog(true, parent)
6 {
7 
8 }
9 
10 TTKAbstractMoveDialog::TTKAbstractMoveDialog(bool transparent, QWidget *parent)
11  : QDialog(parent),
12  m_moveOption(false),
13  m_showShadow(true),
14  m_leftButtonPress(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_showShadow)
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_moveOption)
34  {
35  m_leftButtonPress = true;
36  }
37 
38  m_pressAt = QtMouseGlobalPos(event);
39 }
40 
41 void TTKAbstractMoveDialog::mouseMoveEvent(QMouseEvent *event)
42 {
43  QDialog::mouseMoveEvent(event);
44  if(!m_leftButtonPress )
45  {
46  event->ignore();
47  return;
48  }
49 
50  const int xpos = QtMouseGlobalX(event) - m_pressAt.x();
51  const int ypos = QtMouseGlobalY(event) - m_pressAt.y();
52  m_pressAt = QtMouseGlobalPos(event);
53  move(x() + xpos, y() + ypos);
54 }
55 
57 {
58  QDialog::mouseReleaseEvent(event);
59  m_pressAt = QtMouseGlobalPos(event);
60  m_leftButtonPress = 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.