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;