mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-29 05:48:47 +03: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
1 changed files with 17 additions and 5 deletions
|
@ -68,7 +68,8 @@ void PropListDelegate::setEditorData(QWidget *editor, const QModelIndex &index)
|
||||||
|
|
||||||
QWidget *PropListDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &index) const
|
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)
|
if (m_properties)
|
||||||
{
|
{
|
||||||
|
@ -87,16 +88,21 @@ QWidget *PropListDelegate::createEditor(QWidget *parent, const QStyleOptionViewI
|
||||||
editor->addItem(tr("Normal", "Normal (priority)"));
|
editor->addItem(tr("Normal", "Normal (priority)"));
|
||||||
editor->addItem(tr("High", "High (priority)"));
|
editor->addItem(tr("High", "High (priority)"));
|
||||||
editor->addItem(tr("Maximum", "Maximum (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;
|
return editor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropListDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
|
void PropListDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
|
||||||
{
|
{
|
||||||
const auto *combobox = static_cast<QComboBox *>(editor);
|
const auto *combobox = static_cast<QComboBox *>(editor);
|
||||||
const int value = combobox->currentIndex();
|
|
||||||
|
|
||||||
BitTorrent::DownloadPriority prio = BitTorrent::DownloadPriority::Normal; // NORMAL
|
BitTorrent::DownloadPriority prio = BitTorrent::DownloadPriority::Normal; // NORMAL
|
||||||
switch (value)
|
switch (combobox->currentIndex())
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
prio = BitTorrent::DownloadPriority::Ignored; // IGNORED
|
prio = BitTorrent::DownloadPriority::Ignored; // IGNORED
|
||||||
|
@ -109,8 +115,14 @@ void PropListDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
|
||||||
break;
|
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();
|
emit filteredFilesChanged();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PropListDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &) const
|
void PropListDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &) const
|
||||||
|
|
Loading…
Reference in a new issue