File indexing completed on 2024-06-23 05:14:15
0001 /* -*- mode: c++; c-basic-offset:4 -*- 0002 utils/dragqueen.h 0003 0004 This file is part of Kleopatra, the KDE keymanager 0005 SPDX-FileCopyrightText: 2007 Klarälvdalens Datakonsult AB 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #pragma once 0011 0012 #include <QLabel> 0013 #include <QMimeData> 0014 #include <QPoint> 0015 #include <QPointer> 0016 0017 namespace Kleo 0018 { 0019 0020 class DragQueen : public QLabel 0021 { 0022 Q_OBJECT 0023 Q_PROPERTY(QString url READ url WRITE setUrl) 0024 public: 0025 explicit DragQueen(QWidget *widget = nullptr, Qt::WindowFlags f = {}); 0026 explicit DragQueen(const QString &text, QWidget *widget = nullptr, Qt::WindowFlags f = {}); 0027 ~DragQueen() override; 0028 0029 void setUrl(const QString &url); 0030 QString url() const; 0031 0032 void setMimeData(QMimeData *md); 0033 QMimeData *mimeData() const; 0034 0035 protected: 0036 void mousePressEvent(QMouseEvent *) override; 0037 void mouseMoveEvent(QMouseEvent *) override; 0038 0039 private: 0040 QPointer<QMimeData> m_data; 0041 QPoint m_dragStartPosition; 0042 QString m_dataFormat; 0043 }; 0044 0045 }