@ -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,9 +115,15 @@ 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
{
{