Qt 5.10 Book Examples
WidgetDrag.h
Go to the documentation of this file.
1 // ======================================================================
2 // WidgetDrag.h
3 // ======================================================================
4 // This file is a part of the book
5 // "Qt 5.10 Professional programming with C++"
6 // http://qt-book.com
7 // ======================================================================
8 // Copyright (c) 2017 by Max Schlee
9 // ======================================================================
10 
11 #pragma once
12 
13 #include <QDrag>
14 
15 // ======================================================================
16 class WidgetMimeData : public QMimeData {
17 private:
18  QWidget* m_pwgt;
19 
20 public:
21  WidgetMimeData() : QMimeData()
22  {
23  }
24 
25  virtual ~WidgetMimeData()
26  {
27  }
28 
29  static QString mimeType()
30  {
31  return "application/widget";
32  }
33 
34  void setWidget(QWidget* pwgt)
35  {
36  m_pwgt = pwgt;
37  setData(mimeType(), QByteArray());
38  }
39 
40  QWidget* widget() const
41  {
42  return m_pwgt;
43  }
44 };
45 
46 // ======================================================================
47 class WidgetDrag : public QDrag {
48 public:
49  WidgetDrag(QWidget* pwgtDragSource = 0) : QDrag(pwgtDragSource)
50  {
51  }
52 
53  void setWidget(QWidget* pwgt)
54  {
55  WidgetMimeData* pmd = new WidgetMimeData;
56  pmd->setWidget(pwgt);
57  setMimeData(pmd);
58  }
59 };
60 
WidgetDrag(QWidget *pwgtDragSource=0)
Definition: WidgetDrag.h:49
virtual ~WidgetMimeData()
Definition: WidgetDrag.h:25
QWidget * widget() const
Definition: WidgetDrag.h:40
void setWidget(QWidget *pwgt)
Definition: WidgetDrag.h:34
void setWidget(QWidget *pwgt)
Definition: WidgetDrag.h:53
static QString mimeType()
Definition: WidgetDrag.h:29