diff --git a/src/qtlibtorrent/torrentmodel.cpp b/src/qtlibtorrent/torrentmodel.cpp index 3630a27b4..cbb11e686 100644 --- a/src/qtlibtorrent/torrentmodel.cpp +++ b/src/qtlibtorrent/torrentmodel.cpp @@ -9,6 +9,7 @@ using namespace libtorrent; TorrentModelItem::TorrentModelItem(const QTorrentHandle &h) { m_torrent = h; + m_hash = h.hash(); m_name = TorrentPersistentData::getName(h.hash()); if(m_name.isEmpty()) m_name = h.name(); m_addedTime = TorrentPersistentData::getAddedDate(h.hash()); @@ -277,11 +278,9 @@ bool TorrentModel::setData(const QModelIndex &index, const QVariant &value, int int TorrentModel::torrentRow(const QString &hash) const { QList::const_iterator it; - int row; + int row = 0; for(it = m_torrents.constBegin(); it != m_torrents.constEnd(); it++) { - try { if((*it)->hash() == hash) return row; - }catch(invalid_handle&) {} ++row; } return -1; diff --git a/src/qtlibtorrent/torrentmodel.h b/src/qtlibtorrent/torrentmodel.h index d5d4c0757..bd85d7f13 100644 --- a/src/qtlibtorrent/torrentmodel.h +++ b/src/qtlibtorrent/torrentmodel.h @@ -26,7 +26,7 @@ public: inline int columnCount() const { return NB_COLUMNS; } QVariant data(int column, int role = Qt::DisplayRole) const; bool setData(int column, const QVariant &value, int role = Qt::DisplayRole); - inline QString hash() const { return m_torrent.hash(); } + inline QString hash() const { return m_hash; } signals: void labelChanged(QString previous, QString current); @@ -42,6 +42,7 @@ private: QString m_name; mutable QIcon m_icon; mutable QColor m_fgColor; + QString m_hash; }; class TorrentModel : public QAbstractListModel