From 3e36cd3c46444088fb2a92aacfb39ffd59cce1b4 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Fri, 27 Jul 2007 14:43:42 +0000 Subject: [PATCH] - Update trackers edition code - current tracker is now updated regularly when properties are displayed --- TODO | 1 - src/misc.h | 10 ++++++++++ src/properties_imp.cpp | 32 ++++++++++++++++++++++++-------- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/TODO b/TODO index f54f56a35..3252830d0 100644 --- a/TODO +++ b/TODO @@ -43,7 +43,6 @@ - Translations update - Optimize and cleanup code - document url seeds - - Improve trackers edition code - check painting problems in dl list - Wait for some bug fixes in libtorrent : - upload/download limit per torrent diff --git a/src/misc.h b/src/misc.h index 2b36e318a..160bf71bb 100644 --- a/src/misc.h +++ b/src/misc.h @@ -31,6 +31,9 @@ #include #include +#include +using namespace libtorrent; + #define MAX_CHAR_TMP 128 /* Miscellaneaous functions that can be useful */ @@ -144,6 +147,13 @@ class misc : public QObject{ return QString(); } + static void fixTrackersTiers(std::vector trackers){ + unsigned int nbTrackers = trackers.size(); + for(unsigned int i=0; i static void insertSort(QList > &list, const QPair& value, Qt::SortOrder sortOrder){ diff --git a/src/properties_imp.cpp b/src/properties_imp.cpp index 718660e6d..ec11b9e0b 100644 --- a/src/properties_imp.cpp +++ b/src/properties_imp.cpp @@ -264,7 +264,8 @@ void properties::loadTrackers(){ //Trackers std::vector trackers = h.trackers(); trackersURLS->clear(); - for(unsigned int i=0; iaddItem(QString(trackers[i].url.c_str())); } torrent_status torrentStatus = h.status(); @@ -311,8 +312,9 @@ void properties::askForTracker(){ // Add the tracker to the list std::vector trackers = h.trackers(); announce_entry new_tracker(trackerUrl.toStdString()); - new_tracker.tier = trackersURLS->count(); + new_tracker.tier = 0; // Will be fixed a bit later trackers.push_back(new_tracker); + misc::fixTrackersTiers(trackers); h.replace_trackers(trackers); h.force_reannounce(); // Reload Trackers @@ -379,12 +381,14 @@ void properties::riseSelectedTracker(){ selectedItems = trackersURLS->selectedItems(); QListWidgetItem *item; bool change = false; + unsigned int nbTrackers = trackers.size(); foreach(item, selectedItems){ QString url = item->text(); - for(i=0; i0 && i != 0){ - trackers[i].tier -= 1; + qDebug("Asked to rise %s", trackers.at(i).url.c_str()); + qDebug("its tier was %d and will become %d", trackers[i].tier, trackers[i].tier-1); + if(i > 0){ announce_entry tmp = trackers[i]; trackers[i] = trackers[i-1]; trackers[i-1] = tmp; @@ -395,6 +399,7 @@ void properties::riseSelectedTracker(){ } } if(change){ + misc::fixTrackersTiers(trackers); h.replace_trackers(trackers); h.force_reannounce(); // Reload Trackers @@ -410,12 +415,14 @@ void properties::lowerSelectedTracker(){ selectedItems = trackersURLS->selectedItems(); QListWidgetItem *item; bool change = false; + unsigned int nbTrackers = trackers.size(); foreach(item, selectedItems){ QString url = item->text(); - for(i=0; isetText(tracker); + }else{ + trackerURL->setText(tr("None - Unreachable?")); + } } // Set the color of a row in data model