diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp index feff3475f..59af9754a 100644 --- a/src/bittorrent.cpp +++ b/src/bittorrent.cpp @@ -1511,6 +1511,9 @@ void Bittorrent::readAlerts() { QHash trackers_data = trackersInfos.value(h.hash(), QHash()); TrackerInfos data = trackers_data.value(tracker_url, TrackerInfos(tracker_url)); data.last_message = misc::toQString(p->msg); + #ifndef LIBTORRENT_0_15 + data.simply_warning = false; +#endif trackers_data.insert(tracker_url, data); trackersInfos[h.hash()] = trackers_data; } else { @@ -1539,6 +1542,9 @@ void Bittorrent::readAlerts() { QString tracker_url = misc::toQString(p->url); TrackerInfos data = trackers_data.value(tracker_url, TrackerInfos(tracker_url)); data.last_message = misc::toQString(p->msg); // Store warning message +#ifndef LIBTORRENT_0_15 + data.simply_warning = true; +#endif trackers_data.insert(tracker_url, data); trackersInfos[h.hash()] = trackers_data; qDebug("Received a tracker warning from %s: %s", p->url.c_str(), p->msg.c_str()); diff --git a/src/bittorrent.h b/src/bittorrent.h index 39bd20080..5c262ee35 100644 --- a/src/bittorrent.h +++ b/src/bittorrent.h @@ -55,6 +55,9 @@ public: QString name_or_url; QString last_message; unsigned long num_peers; +#ifndef LIBTORRENT_0_15 + bool simply_warning; +#endif //TrackerInfos() {} TrackerInfos(const TrackerInfos &b) { @@ -62,8 +65,14 @@ public: Q_ASSERT(!name_or_url.isEmpty()); last_message = b.last_message; num_peers = b.num_peers; +#ifndef LIBTORRENT_0_15 + simply_warning = b.simply_warning; +#endif } TrackerInfos(QString name_or_url): name_or_url(name_or_url), last_message(""), num_peers(0) { +#ifndef LIBTORRENT_0_15 + simply_warning = false; +#endif } }; diff --git a/src/trackerlist.h b/src/trackerlist.h index 6d2a883ce..5bb499095 100644 --- a/src/trackerlist.h +++ b/src/trackerlist.h @@ -134,12 +134,12 @@ public slots: h.get_peer_info(peers); std::vector::iterator it; for(it=peers.begin(); it!=peers.end(); it++) { - if(it->source & peer_info::dht) - ++nb_dht; - if(it->source & peer_info::lsd) - ++nb_lsd; - if(it->source & peer_info::pex) - ++nb_pex; + if(it->source & peer_info::dht) + ++nb_dht; + if(it->source & peer_info::lsd) + ++nb_lsd; + if(it->source & peer_info::pex) + ++nb_pex; } // load DHT information if(properties->getBTSession()->isDHTEnabled() && !h.priv()) { @@ -184,6 +184,9 @@ public slots: } else { old_trackers_urls.removeOne(tracker_url); } + TrackerInfos data = trackers_data.value(tracker_url, TrackerInfos(tracker_url)); + QString error_message = data.last_message.trimmed(); +#ifdef LIBTORRENT_0_15 if((*it).verified) { item->setText(COL_STATUS, tr("Working")); } else { @@ -197,8 +200,15 @@ public slots: } } } +#else + if(error_message.isEmpty() || data.simply_warning) { + item->setText(COL_STATUS, tr("Working")); + } else { + item->setText(COL_STATUS, tr("Not working")); + } +#endif item->setText(COL_PEERS, QString::number(trackers_data.value(tracker_url, TrackerInfos(tracker_url)).num_peers)); - item->setText(COL_MSG, trackers_data.value(tracker_url, TrackerInfos(tracker_url)).last_message); + item->setText(COL_MSG, error_message); } // Remove old trackers foreach(const QString &tracker, old_trackers_urls) { diff --git a/src/transferlistwidget.cpp b/src/transferlistwidget.cpp index 885897994..fbfd8407f 100644 --- a/src/transferlistwidget.cpp +++ b/src/transferlistwidget.cpp @@ -819,8 +819,12 @@ void TransferListWidget::displayListMenu(const QPoint&) { // Enable/disable pause/start action given the DL state QModelIndexList selectedIndexes = selectionModel()->selectedRows(); bool has_pause = false, has_start = false, has_preview = false; - bool all_same_super_seeding = true, all_same_sequential_download_mode = true, all_same_prio_firstlast = true; - bool super_seeding_mode = false, sequential_download_mode = false, prioritize_first_last = false; +#ifdef LIBTORRENT_0_15 + bool all_same_super_seeding = true; + bool super_seeding_mode = false; +#endif + bool all_same_sequential_download_mode = true, all_same_prio_firstlast = true; + bool sequential_download_mode = false, prioritize_first_last = false; bool one_has_metadata = false, one_not_seed = false; bool first = true; QTorrentHandle h; @@ -846,7 +850,9 @@ void TransferListWidget::displayListMenu(const QPoint&) { all_same_prio_firstlast = false; } } - } else { + } +#ifdef LIBTORRENT_0_15 + else { if(!one_not_seed && all_same_super_seeding) { if(first) { super_seeding_mode = h.super_seeding(); @@ -857,6 +863,7 @@ void TransferListWidget::displayListMenu(const QPoint&) { } } } +#endif if(h.is_paused()) { if(!has_start) { listMenu.addAction(&actionStart); @@ -880,6 +887,7 @@ void TransferListWidget::displayListMenu(const QPoint&) { if(one_not_seed) listMenu.addAction(&actionSet_download_limit); listMenu.addAction(&actionSet_upload_limit); +#ifdef LIBTORRENT_0_15 if(!one_not_seed && all_same_super_seeding) { QIcon ico; if(super_seeding_mode) { @@ -890,6 +898,7 @@ void TransferListWidget::displayListMenu(const QPoint&) { actionSuper_seeding_mode.setIcon(ico); listMenu.addAction(&actionSuper_seeding_mode); } +#endif listMenu.addSeparator(); bool added_preview_action = false; if(has_preview) {