TTKMusicPlayer  4.3.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
ttkabstractmovewidget.cpp
Go to the documentation of this file.
2 #include "ttkglobalinterface.h"
3 
5  : TTKAbstractMoveWidget(true, parent)
6 {
7 
8 }
9 
10 TTKAbstractMoveWidget::TTKAbstractMoveWidget(bool transparent, QWidget *parent)
11  : QWidget(parent),
12  m_mouseLeftPressed(false),
13  m_blockOption(false),
14  m_shadowOption(true)
15 {
16  setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
17  setAttribute(Qt::WA_TranslucentBackground, transparent);
18 }
19 
20 void TTKAbstractMoveWidget::paintEvent(QPaintEvent *event)
21 {
22  QWidget::paintEvent(event);
23 
24  if(m_shadowOption)
25  {
26  QPainter painter(this);
27  painter.setRenderHint(QPainter::SmoothPixmapTransform);
28  TTK::setBorderShadow(this, &painter);
29  }
30 }
31 
33 {
34  QWidget::mousePressEvent(event);
35  if(event->button() == Qt::LeftButton && !m_blockOption)
36  {
37  m_mouseLeftPressed = true;
38  m_windowPos = pos();
40  }
41 }
42 
43 void TTKAbstractMoveWidget::mouseMoveEvent(QMouseEvent *event)
44 {
45  QWidget::mouseMoveEvent(event);
47  {
48  event->ignore();
49  return;
50  }
51 
52  move(m_windowPos + QtGlobalPosition(event) - m_pressedPos);
53 }
54 
56 {
57  QWidget::mouseReleaseEvent(event);
58  m_mouseLeftPressed = false;
59 }
virtual void paintEvent(QPaintEvent *event) override
#define QtGlobalPosition(p)
Definition: ttkqtcompat.h:161
TTK_MODULE_EXPORT void setBorderShadow(QWidget *widget, QPainter *painter)
virtual void mouseReleaseEvent(QMouseEvent *event) override
The class of the ttk moving widget base.
TTKAbstractMoveWidget(QWidget *parent=nullptr)
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseMoveEvent(QMouseEvent *event) override