aboutsummaryrefslogtreecommitdiffstats
path: root/ui/qt/widgets/drag_drop_toolbar.cpp
diff options
context:
space:
mode:
authorRoland Knall <rknall@gmail.com>2017-11-07 15:51:43 +0000
committerRoland Knall <rknall@gmail.com>2017-11-08 07:26:03 +0000
commit96735846beb4d067eac220c48f5d8c18f178e4c1 (patch)
tree9b12576b2ece6ab358084d8f191f1937bc83dca5 /ui/qt/widgets/drag_drop_toolbar.cpp
parent4d6454e18027a7265138e16ef95b52000825aa47 (diff)
Qt: Clean Drag-n-Drop Mimetype for toolbar
Cleans up the mime type to use a class instead of a mimetype string Change-Id: I122ba9b39de86d8e263f2204715911a2b0ac75cd Reviewed-on: https://code.wireshark.org/review/24286 Petri-Dish: Roland Knall <rknall@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
Diffstat (limited to 'ui/qt/widgets/drag_drop_toolbar.cpp')
-rw-r--r--ui/qt/widgets/drag_drop_toolbar.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/ui/qt/widgets/drag_drop_toolbar.cpp b/ui/qt/widgets/drag_drop_toolbar.cpp
index aa2f0f9aeb..526e2c48db 100644
--- a/ui/qt/widgets/drag_drop_toolbar.cpp
+++ b/ui/qt/widgets/drag_drop_toolbar.cpp
@@ -108,10 +108,7 @@ bool DragDropToolBar::eventFilter(QObject * obj, QEvent * event)
> QApplication::startDragDistance())
{
QDrag * drag = new QDrag(this);
- QMimeData *mimeData = new QMimeData;
- mimeData->setData("application/x-wireshark-toolbar-entry",
- elem->property(drag_drop_toolbar_action_).toByteArray());
- drag->setMimeData(mimeData);
+ drag->setMimeData(new ToolbarEntryMimeData(elem->property(drag_drop_toolbar_action_).toInt()));
#if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0)
qreal dpr = window()->windowHandle()->devicePixelRatio();
@@ -134,7 +131,7 @@ bool DragDropToolBar::eventFilter(QObject * obj, QEvent * event)
void DragDropToolBar::dragEnterEvent(QDragEnterEvent *event)
{
- if (event->mimeData()->hasFormat("application/x-wireshark-toolbar-entry"))
+ if (qobject_cast<const ToolbarEntryMimeData *>(event->mimeData()))
{
if (event->source() == this) {
event->setDropAction(Qt::MoveAction);
@@ -150,6 +147,14 @@ void DragDropToolBar::dragEnterEvent(QDragEnterEvent *event)
} else {
event->acceptProposedAction();
}
+ } else if (qobject_cast<const DisplayFilterMimeData *>(event->mimeData())) {
+ if ( event->source() != this )
+ {
+ event->setDropAction(Qt::CopyAction);
+ event->accept();
+ } else {
+ event->acceptProposedAction();
+ }
} else {
event->ignore();
}
@@ -157,7 +162,7 @@ void DragDropToolBar::dragEnterEvent(QDragEnterEvent *event)
void DragDropToolBar::dragMoveEvent(QDragMoveEvent *event)
{
- if (event->mimeData()->hasFormat("application/x-wireshark-toolbar-entry"))
+ if (qobject_cast<const ToolbarEntryMimeData *>(event->mimeData()))
{
if (event->source() == this) {
event->setDropAction(Qt::MoveAction);
@@ -192,9 +197,11 @@ void DragDropToolBar::dragMoveEvent(QDragMoveEvent *event)
void DragDropToolBar::dropEvent(QDropEvent *event)
{
/* Moving items around */
- if (event->mimeData()->hasFormat("application/x-wireshark-toolbar-entry"))
+ if (qobject_cast<const ToolbarEntryMimeData *>(event->mimeData()))
{
- int oldPos = event->mimeData()->data("application/x-wireshark-toolbar-entry").toInt();
+ const ToolbarEntryMimeData * data = qobject_cast<const ToolbarEntryMimeData *>(event->mimeData());
+
+ int oldPos = data->position();
int newPos = -1;
QAction * action = actionAt(event->pos());
if ( action && actions().at(oldPos) )