mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-12-15 08:01:05 +08:00
Apply download priority immediately in torrent content view
Apply the new priority after picking it via drop-down menu. Fixes #14667, #15238. PR #15739. Co-authored-by: a-sum-duma <68896601+a-sum-duma@users.noreply.github.com> Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
This commit is contained in:
parent
fa1d49add5
commit
b063042988
@ -68,7 +68,8 @@ void PropListDelegate::setEditorData(QWidget *editor, const QModelIndex &index)
|
||||
|
||||
QWidget *PropListDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &index) const
|
||||
{
|
||||
if (index.column() != PRIORITY) return nullptr;
|
||||
if (index.column() != PRIORITY)
|
||||
return nullptr;
|
||||
|
||||
if (m_properties)
|
||||
{
|
||||
@ -87,16 +88,21 @@ QWidget *PropListDelegate::createEditor(QWidget *parent, const QStyleOptionViewI
|
||||
editor->addItem(tr("Normal", "Normal (priority)"));
|
||||
editor->addItem(tr("High", "High (priority)"));
|
||||
editor->addItem(tr("Maximum", "Maximum (priority)"));
|
||||
|
||||
connect(editor, qOverload<int>(&QComboBox::currentIndexChanged), this, [this, editor]()
|
||||
{
|
||||
emit const_cast<PropListDelegate *>(this)->commitData(editor);
|
||||
});
|
||||
|
||||
return editor;
|
||||
}
|
||||
|
||||
void PropListDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
|
||||
{
|
||||
const auto *combobox = static_cast<QComboBox *>(editor);
|
||||
const int value = combobox->currentIndex();
|
||||
|
||||
BitTorrent::DownloadPriority prio = BitTorrent::DownloadPriority::Normal; // NORMAL
|
||||
switch (value)
|
||||
switch (combobox->currentIndex())
|
||||
{
|
||||
case 0:
|
||||
prio = BitTorrent::DownloadPriority::Ignored; // IGNORED
|
||||
@ -109,9 +115,15 @@ void PropListDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
|
||||
break;
|
||||
}
|
||||
|
||||
model->setData(index, static_cast<int>(prio));
|
||||
const int newPriority = static_cast<int>(prio);
|
||||
const int previousPriority = index.data(TorrentContentModel::UnderlyingDataRole).toInt();
|
||||
|
||||
if (newPriority != previousPriority)
|
||||
{
|
||||
model->setData(index, newPriority);
|
||||
emit filteredFilesChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void PropListDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &) const
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user