tab_widget.h
Go to the documentation of this file.
1 #ifndef TAB_BAR_H
2 #define TAB_BAR_H
3 
4 #include <QTabBar>
5 #include <QLabel>
6 #include <QPixmap>
7 #include <QDebug>
8 #include <QTabWidget>
9 #include <QMimeData>
10 #include <QDragEnterEvent>
11 #include <QDragLeaveEvent>
12 #include <QApplication>
13 
14 class TabWidget : public QTabWidget
15 {
16  Q_OBJECT
17 public:
18  TabWidget(QWidget* parent) : QTabWidget(parent)
19  {
20  this->tabBar()->setFixedHeight(40);
21  setAcceptDrops(true);
22  }
23 
24  void dragEnterEvent(QDragEnterEvent* ev) override
25  {
26  if (ev->pos().y() > 43)
27  {
28  ev->ignore();
29  return;
30  }
31  const QMimeData* mimeData = ev->mimeData();
32  QStringList mimeFormats = mimeData->formats();
33  for (const QString& format : mimeFormats)
34  {
35  QByteArray encoded = mimeData->data(format);
36  QDataStream stream(&encoded, QIODevice::ReadOnly);
37 
38  QStringList curves;
39 
40  while (!stream.atEnd())
41  {
42  QString curve_name;
43  stream >> curve_name;
44  if (!curve_name.isEmpty())
45  {
46  curves.push_back(curve_name);
47  }
48  }
49  }
50  ev->ignore();
51  }
52 
53  void dragMoveEvent(QDragMoveEvent* ev) override
54  {
55  if (ev->pos().y() > 43)
56  {
57  ev->ignore();
58  return;
59  }
60  ev->accept();
61  }
62 
63  void dragLeaveEvent(QDragLeaveEvent* ev) override
64  {
65  _plot_to_move = "";
66  QApplication::restoreOverrideCursor();
67  }
68 
69  void dropEvent(QDropEvent* ev) override
70  {
72  _plot_to_move = "";
73  QApplication::restoreOverrideCursor();
74  }
75 
76 private:
77  QString _plot_to_move;
78 
79 signals:
80 
81  void movingPlotWidgetToTab(QString plot_name);
82 };
83 
84 #endif // TAB_BAR_H
TabWidget(QWidget *parent)
Definition: tab_widget.h:18
void dragLeaveEvent(QDragLeaveEvent *ev) override
Definition: tab_widget.h:63
FMT_INLINE std::basic_string< Char > format(const S &format_str, Args &&...args)
Definition: core.h:2081
QString _plot_to_move
Definition: tab_widget.h:77
void movingPlotWidgetToTab(QString plot_name)
void dragEnterEvent(QDragEnterEvent *ev) override
Definition: tab_widget.h:24
void dragMoveEvent(QDragMoveEvent *ev) override
Definition: tab_widget.h:53
void dropEvent(QDropEvent *ev) override
Definition: tab_widget.h:69


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 04:02:48