From 240c3508fee03f239617327aa09753e95fc9c163 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sun, 7 Feb 2010 18:37:26 +0000 Subject: [PATCH] Fix possible crash when changing torrents label --- src/transferlistwidget.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/transferlistwidget.cpp b/src/transferlistwidget.cpp index 0341f2ca3..8341b458f 100644 --- a/src/transferlistwidget.cpp +++ b/src/transferlistwidget.cpp @@ -972,11 +972,15 @@ void TransferListWidget::renameSelectedTorrent() { void TransferListWidget::setSelectionLabel(QString label) { QModelIndexList selectedIndexes = selectionModel()->selectedRows(); + QStringList hashes; foreach(const QModelIndex &index, selectedIndexes) { - QString hash = getHashFromRow(mapToSource(index).row()); + hashes << getHashFromRow(mapToSource(index).row()); + } + foreach(const QString& hash, hashes) { Q_ASSERT(!hash.isEmpty()); - QString old_label = proxyModel->data(proxyModel->index(index.row(), TR_LABEL)).toString(); - proxyModel->setData(proxyModel->index(index.row(), TR_LABEL), QVariant(label)); + int row = getRowFromHash(hash); + QString old_label = listModel->data(listModel->index(row, TR_LABEL)).toString(); + listModel->setData(listModel->index(row, TR_LABEL), QVariant(label)); TorrentPersistentData::saveLabel(hash, label); emit torrentChangedLabel(old_label, label); // Update save path if necessary