dde-dock/frame/drag/quickdragcore.h
donghualin 1be68d06b2 fix: 修复移除蓝牙设备后任务栏插件不消失的问题
1、任务栏插件显示区域移除对配置变化的响应,该功能已经在DockPluginController中实现
2、在配置变化的时候,判断插件是否可以加载的条件增加了判断该插件是否被加载
3、修复拖动快捷面板的问题

Log: 修复移除蓝牙设备后任务栏插件不消失的问题
Influence: 插上蓝牙,从控制中心勾选该插件,在任务栏显示,然后移除蓝牙设备,观察任务栏的蓝牙图标是否消失
Bug: https://pms.uniontech.com/bug-view-181945.html
Change-Id: Ib207f4f0e2ceeb4b100c57b1f3e3899a802b8ed7
2023-01-16 17:08:59 +08:00

56 lines
1.1 KiB
C++

#ifndef QUICKDRAGCORE_H
#define QUICKDRAGCORE_H
#include <QMimeData>
#include <QDrag>
#include <QPixmap>
class PluginsItemInterface;
class QTimer;
class QuickPluginMimeData : public QMimeData
{
Q_OBJECT
public:
explicit QuickPluginMimeData(PluginsItemInterface *item, QDrag *drag);
~QuickPluginMimeData();
PluginsItemInterface *pluginItemInterface() const;
QDrag *drag() const;
private:
PluginsItemInterface *m_item;
QDrag *m_drag;
};
class QuickIconDrag : public QDrag
{
Q_OBJECT
public:
explicit QuickIconDrag(QObject *dragSource, const QPixmap &pixmap);
~QuickIconDrag();
void updatePixmap(QPixmap pixmap);
void useSourcePixmap();
void setDragHotPot(QPoint point);
protected:
bool eventFilter(QObject *watched, QEvent *event) override;
QPoint currentPoint() const;
private Q_SLOTS:
void onDragMove();
private:
QWidget *m_imageWidget;
QTimer *m_timer;
QPixmap m_sourcePixmap;
QPixmap m_pixmap;
QPoint m_hotPoint;
bool m_useSourcePixmap;
};
Q_DECLARE_INTERFACE(QuickIconDrag, "QuickIconDrag")
#endif // QUICKDRAGCORE_H