TorrentContentWidget drag selection fix

(hold Alt to drag)
This commit is contained in:
loop-nop 2025-06-10 14:40:49 +00:00
parent ff07591a87
commit a5187e5604
2 changed files with 13 additions and 1 deletions

View file

@ -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))

View file

@ -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;