From a5187e5604c08b9e60f6429209a73651a6c081eb Mon Sep 17 00:00:00 2001 From: loop-nop <86272232+loop-nop@users.noreply.github.com> Date: Tue, 10 Jun 2025 14:40:49 +0000 Subject: [PATCH] TorrentContentWidget drag selection fix (hold Alt to drag) --- src/gui/torrentcontentwidget.cpp | 13 ++++++++++++- src/gui/torrentcontentwidget.h | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/gui/torrentcontentwidget.cpp b/src/gui/torrentcontentwidget.cpp index 472537bf2..c0bc668c9 100644 --- a/src/gui/torrentcontentwidget.cpp +++ b/src/gui/torrentcontentwidget.cpp @@ -72,7 +72,8 @@ TorrentContentWidget::TorrentContentWidget(QWidget *parent) : QTreeView(parent) { setDragEnabled(true); - setDragDropMode(QAbstractItemView::DragOnly); + setDragDropMode(QAbstractItemView::NoDragDrop); + setSelectionMode(QAbstractItemView::MultiSelection); setExpandsOnDoubleClick(false); setSortingEnabled(true); setUniformRowHeights(true); @@ -224,6 +225,16 @@ void TorrentContentWidget::checkNone() model()->setData(model()->index(i, TorrentContentModelItem::COL_NAME), Qt::Unchecked, Qt::CheckStateRole); } +void TorrentContentWidget::mousePressEvent(QMouseEvent *event) +{ + if (event->modifiers() & Qt::AltModifier) + setDragDropMode(QAbstractItemView::DragOnly); + else + setDragDropMode(QAbstractItemView::NoDragDrop); + + QTreeView::mousePressEvent(event); +} + void TorrentContentWidget::keyPressEvent(QKeyEvent *event) { if ((event->key() != Qt::Key_Space) && (event->key() != Qt::Key_Select)) diff --git a/src/gui/torrentcontentwidget.h b/src/gui/torrentcontentwidget.h index 1e9f0835c..85b96214a 100644 --- a/src/gui/torrentcontentwidget.h +++ b/src/gui/torrentcontentwidget.h @@ -103,6 +103,7 @@ signals: private: void setModel(QAbstractItemModel *model) override; + void mousePressEvent(QMouseEvent *event) override; void keyPressEvent(QKeyEvent *event) override; void wheelEvent(QWheelEvent *event) override; QModelIndex currentNameCell() const;