Qt: Fix ghost drag-and-drop in PacketList on empty fields
If you start dragging on an empty field, you pick up the value of a field you drag over. This is fixed Change-Id: I7e1c5e353dbc79ee1193b305729fb44d62d98470 Reviewed-on: https://code.wireshark.org/review/33629 Petri-Dish: Roland Knall <rknall@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
This commit is contained in:
parent
d95262bf74
commit
c288574842
|
@ -230,6 +230,7 @@ PacketList::PacketList(QWidget *parent) :
|
||||||
overlay_timer_id_(0),
|
overlay_timer_id_(0),
|
||||||
create_near_overlay_(true),
|
create_near_overlay_(true),
|
||||||
create_far_overlay_(true),
|
create_far_overlay_(true),
|
||||||
|
mouse_pressed_at_(QModelIndex()),
|
||||||
capture_in_progress_(false),
|
capture_in_progress_(false),
|
||||||
tail_timer_id_(0),
|
tail_timer_id_(0),
|
||||||
rows_inserted_(false),
|
rows_inserted_(false),
|
||||||
|
@ -651,14 +652,22 @@ void PacketList::mousePressEvent (QMouseEvent *event)
|
||||||
setAutoScroll(false);
|
setAutoScroll(false);
|
||||||
QTreeView::mousePressEvent(event);
|
QTreeView::mousePressEvent(event);
|
||||||
setAutoScroll(true);
|
setAutoScroll(true);
|
||||||
|
|
||||||
|
QModelIndex curIndex = indexAt(event->pos());
|
||||||
|
mouse_pressed_at_ = curIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PacketList::mouseReleaseEvent(QMouseEvent *event) {
|
||||||
|
QTreeView::mouseReleaseEvent(event);
|
||||||
|
|
||||||
|
mouse_pressed_at_ = QModelIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PacketList::mouseMoveEvent (QMouseEvent *event)
|
void PacketList::mouseMoveEvent (QMouseEvent *event)
|
||||||
{
|
{
|
||||||
if ( event->buttons() & Qt::LeftButton )
|
QModelIndex curIndex = indexAt(event->pos());
|
||||||
|
if ( event->buttons() & Qt::LeftButton && curIndex == mouse_pressed_at_ )
|
||||||
{
|
{
|
||||||
QModelIndex curIndex = indexAt(event->pos());
|
|
||||||
|
|
||||||
ctx_column_ = curIndex.column();
|
ctx_column_ = curIndex.column();
|
||||||
QMimeData * mimeData = nullptr;
|
QMimeData * mimeData = nullptr;
|
||||||
QWidget * content = nullptr;
|
QWidget * content = nullptr;
|
||||||
|
|
|
@ -74,6 +74,7 @@ protected:
|
||||||
void timerEvent(QTimerEvent *event);
|
void timerEvent(QTimerEvent *event);
|
||||||
void paintEvent(QPaintEvent *event);
|
void paintEvent(QPaintEvent *event);
|
||||||
virtual void mousePressEvent (QMouseEvent *event);
|
virtual void mousePressEvent (QMouseEvent *event);
|
||||||
|
virtual void mouseReleaseEvent (QMouseEvent *event);
|
||||||
virtual void mouseMoveEvent (QMouseEvent *event);
|
virtual void mouseMoveEvent (QMouseEvent *event);
|
||||||
virtual void resizeEvent(QResizeEvent *event);
|
virtual void resizeEvent(QResizeEvent *event);
|
||||||
|
|
||||||
|
@ -99,6 +100,8 @@ private:
|
||||||
bool create_far_overlay_;
|
bool create_far_overlay_;
|
||||||
QVector<QRgb> overlay_colors_;
|
QVector<QRgb> overlay_colors_;
|
||||||
|
|
||||||
|
QModelIndex mouse_pressed_at_;
|
||||||
|
|
||||||
RelatedPacketDelegate related_packet_delegate_;
|
RelatedPacketDelegate related_packet_delegate_;
|
||||||
QAction *show_hide_separator_;
|
QAction *show_hide_separator_;
|
||||||
QList<QAction *>show_hide_actions_;
|
QList<QAction *>show_hide_actions_;
|
||||||
|
|
Loading…
Reference in New Issue