Browse Source

Don't show availability bar for magnet links

This commit fixes an exception in PropertiesWidget:

"Caught exception in PropertiesWidget::loadDynamicData():  invalid
torrent handle used"

This exception occurs when an user clicks on a torrent that doesn't have
a metadata (when a magnet link is not resolved yet). One should not call
torrent_handle::get_torrent_info when torrent doesn't have a metadata.
adaptive-webui-19844
Ivan Sorokin 11 years ago
parent
commit
765253234c
  1. 4
      src/properties/propertieswidget.cpp

4
src/properties/propertieswidget.cpp

@ -337,7 +337,7 @@ void PropertiesWidget::loadDynamicData() {
// Update ratio info // Update ratio info
const qreal ratio = QBtSession::instance()->getRealRatio(h.hash()); const qreal ratio = QBtSession::instance()->getRealRatio(h.hash());
shareRatio->setText(ratio > QBtSession::MAX_RATIO ? QString::fromUtf8("") : misc::accurateDoubleToString(ratio, 2)); shareRatio->setText(ratio > QBtSession::MAX_RATIO ? QString::fromUtf8("") : misc::accurateDoubleToString(ratio, 2));
if (!h.is_seed()) { if (!h.is_seed() && h.has_metadata()) {
showPiecesDownloaded(true); showPiecesDownloaded(true);
// Downloaded pieces // Downloaded pieces
#if LIBTORRENT_VERSION_NUM < 10000 #if LIBTORRENT_VERSION_NUM < 10000
@ -348,7 +348,7 @@ void PropertiesWidget::loadDynamicData() {
h.downloading_pieces(bf); h.downloading_pieces(bf);
downloaded_pieces->setProgress(h.pieces(), bf); downloaded_pieces->setProgress(h.pieces(), bf);
// Pieces availability // Pieces availability
if (h.has_metadata() && !h.is_paused() && !h.is_queued() && !h.is_checking()) { if (!h.is_paused() && !h.is_queued() && !h.is_checking()) {
showPiecesAvailability(true); showPiecesAvailability(true);
std::vector<int> avail; std::vector<int> avail;
h.piece_availability(avail); h.piece_availability(avail);

Loading…
Cancel
Save