aboutsummaryrefslogtreecommitdiffstats
path: root/ui/qt/packet_list.cpp
diff options
context:
space:
mode:
authorRoland Knall <rknall@gmail.com>2019-11-03 17:12:12 +0000
committerPeter Wu <peter@lekensteyn.nl>2019-11-04 11:39:48 +0000
commit013e87a8fda9ca37a5786498423070068aed9b6d (patch)
tree03d041cc94770e01d46335da9f689f3b265a3fa5 /ui/qt/packet_list.cpp
parent05e37a386ee68a0decd48c03f4aad39ead6bc341 (diff)
Qt: Remove DisplayFilterMimeData
Make the mimetype for the display filter more generic, so that external programs can attach to Wireshark and users can drag and drop display filters to the program Change-Id: Id78b4dff7883e3dab879a31aad07f577d8cc4ee3 Reviewed-on: https://code.wireshark.org/review/34936 Reviewed-by: Roland Knall <rknall@gmail.com> Petri-Dish: Roland Knall <rknall@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Diffstat (limited to 'ui/qt/packet_list.cpp')
-rw-r--r--ui/qt/packet_list.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/ui/qt/packet_list.cpp b/ui/qt/packet_list.cpp
index 304c10619e..ad7c44d984 100644
--- a/ui/qt/packet_list.cpp
+++ b/ui/qt/packet_list.cpp
@@ -71,6 +71,8 @@
#include <QTimerEvent>
#include <QTreeWidget>
#include <QWindow>
+#include <QJsonObject>
+#include <QJsonDocument>
#ifdef Q_OS_WIN
#include "wsutil/file_util.h"
@@ -669,7 +671,7 @@ void PacketList::mouseMoveEvent (QMouseEvent *event)
if ( event->buttons() & Qt::LeftButton && curIndex.isValid() && curIndex == mouse_pressed_at_ )
{
ctx_column_ = curIndex.column();
- QMimeData * mimeData = nullptr;
+ QMimeData * mimeData = new QMimeData();
QWidget * content = nullptr;
QString filter = getFilterFromRowAndColumn(curIndex);
@@ -688,18 +690,22 @@ void PacketList::mouseMoveEvent (QMouseEvent *event)
abbrev = filter;
}
- mimeData = new DisplayFilterMimeData(name, abbrev, filter);
- ((DisplayFilterMimeData *)mimeData)->allowPlainText();
- content = new DragLabel(((DisplayFilterMimeData *)mimeData)->labelText(), this);
+ mimeData->setText(filter);
+
+ QJsonObject filterData;
+ filterData["filter"] = filter;
+ filterData["name"] = abbrev;
+ filterData["description"] = name;
+ QMimeData * mimeData = new QMimeData();
+
+ mimeData->setData(WiresharkMimeData::DisplayFilterMimeType, QJsonDocument(filterData).toJson());
+ content = new DragLabel(QString("%1\n%2").arg(name, abbrev), this);
}
else
{
QString text = model()->data(curIndex).toString();
if ( ! text.isEmpty() )
- {
- mimeData = new QMimeData();
mimeData->setText(text);
- }
}
if ( mimeData )