From f3066b07b5be01787a74db19e29b603fb00e7ae1 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sun, 25 Jul 2010 15:08:54 +0000 Subject: [PATCH] Use a proper error icon for seeding torrents whose files have been removed from hard drive (manually) --- src/bittorrent.cpp | 2 +- src/transferlistwidget.cpp | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp index 949402dab..575e14a39 100644 --- a/src/bittorrent.cpp +++ b/src/bittorrent.cpp @@ -2286,8 +2286,8 @@ void Bittorrent::addConsoleMessage(QString msg, QString) { const QString hash = h.hash(); // Mismatching file size (files were probably moved addConsoleMessage(tr("File sizes mismatch for torrent %1, pausing it.").arg(h.name())); - pauseTorrent(hash); TorrentPersistentData::setErrorState(hash, true); + pauseTorrent(hash); } else { addConsoleMessage(tr("Fast resume data was rejected for torrent %1, checking again...").arg(h.name()), QString::fromUtf8("red")); addConsoleMessage(tr("Reason: %1").arg(misc::toQString(p->message()))); diff --git a/src/transferlistwidget.cpp b/src/transferlistwidget.cpp index 371b20e2e..d13293abf 100644 --- a/src/transferlistwidget.cpp +++ b/src/transferlistwidget.cpp @@ -191,7 +191,10 @@ void TransferListWidget::addTorrent(QTorrentHandle& h) { } else { listModel->setData(listModel->index(row, TR_STATUS), STATE_PAUSED_DL); } - listModel->setData(listModel->index(row, TR_NAME), QVariant(QIcon(QString::fromUtf8(":/Icons/skin/paused.png"))), Qt::DecorationRole); + if(TorrentPersistentData::hasError(h.hash())) + listModel->setData(listModel->index(row, TR_NAME), QVariant(QIcon(QString::fromUtf8(":/Icons/skin/error.png"))), Qt::DecorationRole); + else + listModel->setData(listModel->index(row, TR_NAME), QVariant(QIcon(QString::fromUtf8(":/Icons/skin/paused.png"))), Qt::DecorationRole); setRowColor(row, QString::fromUtf8("red")); }else{ if(h.is_seed()) { @@ -250,7 +253,7 @@ void TransferListWidget::pauseTorrent(int row, bool refresh_list) { listModel->setData(listModel->index(row, TR_UPSPEED), QVariant((double)0.0)); if(h.is_seed()) { listModel->setData(listModel->index(row, TR_STATUS), STATE_PAUSED_UP); - if(h.has_error()) { + if(h.has_error() || TorrentPersistentData::hasError(h.hash())) { listModel->setData(listModel->index(row, TR_NAME), h.error(), Qt::ToolTipRole); listModel->setData(listModel->index(row, TR_NAME), QIcon(QString::fromUtf8(":/Icons/skin/error.png")), Qt::DecorationRole); } else { @@ -258,7 +261,7 @@ void TransferListWidget::pauseTorrent(int row, bool refresh_list) { } } else { listModel->setData(listModel->index(row, TR_STATUS), STATE_PAUSED_DL); - if(h.has_error()) { + if(h.has_error() || TorrentPersistentData::hasError(h.hash())) { listModel->setData(listModel->index(row, TR_NAME), h.error(), Qt::ToolTipRole); listModel->setData(listModel->index(row, TR_NAME), QIcon(QString::fromUtf8(":/Icons/skin/error.png")), Qt::DecorationRole); } else {