Fixed bug in display code for peer percentage progress.

git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@325 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2005-03-05 02:20:45 +00:00
parent c15d840962
commit 2dc7ffdb8f
7 changed files with 25 additions and 17 deletions
+1 -4
View File
@@ -6,7 +6,4 @@ normal timeout.
Make clear distinction of upload/download throttle. Make clear distinction of upload/download throttle.
"Caught exception: "Tried to add an existing DownloadMain to DownloadManager"" Consider basing WindowPeer* on a common base class.
Properly handle duplicate torrents.
Add log message for failed http requests.
+1 -1
View File
@@ -32,7 +32,7 @@ DownloadList::erase(iterator itr) {
void void
DownloadList::clear() { DownloadList::clear() {
std::for_each(begin(), end(), func::call_delete()); std::for_each(begin(), end(), func::call_delete<Download>());
Base::clear(); Base::clear();
} }
+8 -1
View File
@@ -43,7 +43,7 @@ WindowPeerInfo::redraw() {
m_canvas->print(0, y++, "Id: %s" , utils::escape_string((*m_focus)->get_id()).c_str()); m_canvas->print(0, y++, "Id: %s" , utils::escape_string((*m_focus)->get_id()).c_str());
m_canvas->print(0, y++, "Snubbed: %s", (*m_focus)->get_snubbed() ? "Yes" : "No"); m_canvas->print(0, y++, "Snubbed: %s", (*m_focus)->get_snubbed() ? "Yes" : "No");
m_canvas->print(0, y++, "Done: %i%", d.get_chunks_total() ? (*m_focus)->get_chunks_done() / d.get_chunks_total() : 0); m_canvas->print(0, y++, "Done: %i%", done_percentage(**m_focus));
m_canvas->print(0, y++, "Rate: %5.1f/%5.1f KB Total: %.1f/%.1f MB", m_canvas->print(0, y++, "Rate: %5.1f/%5.1f KB Total: %.1f/%.1f MB",
(double)(*m_focus)->get_rate_up() / (double)(1 << 10), (double)(*m_focus)->get_rate_up() / (double)(1 << 10),
@@ -52,4 +52,11 @@ WindowPeerInfo::redraw() {
(double)(*m_focus)->get_transfered_down() / (double)(1 << 20)); (double)(*m_focus)->get_transfered_down() / (double)(1 << 20));
} }
int
WindowPeerInfo::done_percentage(torrent::Peer& p) {
int chunks = m_download->get_download().get_chunks_total();
return chunks ? (100 * p.get_chunks_done()) / chunks : 0;
}
} }
+2
View File
@@ -21,6 +21,8 @@ public:
virtual void redraw(); virtual void redraw();
private: private:
int done_percentage(torrent::Peer& p);
core::Download* m_download; core::Download* m_download;
PList* m_list; PList* m_list;
+8 -1
View File
@@ -98,7 +98,7 @@ WindowPeerList::redraw() {
itr->get_incoming_queue_size()); itr->get_incoming_queue_size());
x += 6; x += 6;
m_canvas->print(x, y, "%3i", (itr->get_chunks_done() * 100) / m_download->get_download().get_chunks_total()); m_canvas->print(x, y, "%3i", done_percentage(*itr));
x += 6; x += 6;
if (itr->get_incoming_queue_size()) if (itr->get_incoming_queue_size())
@@ -115,4 +115,11 @@ WindowPeerList::redraw() {
} }
} }
int
WindowPeerList::done_percentage(torrent::Peer& p) {
int chunks = m_download->get_download().get_chunks_total();
return chunks ? (100 * p.get_chunks_done()) / chunks : 0;
}
} }
+2
View File
@@ -21,6 +21,8 @@ public:
virtual void redraw(); virtual void redraw();
private: private:
int done_percentage(torrent::Peer& p);
core::Download* m_download; core::Download* m_download;
PList* m_list; PList* m_list;
+3 -10
View File
@@ -108,20 +108,13 @@ if_then(Cond c, Then t) {
return _if_then<Cond, Then>(c, t); return _if_then<Cond, Then>(c, t);
} }
struct _call_delete template <typename T>
: public std::unary_function<void, void> { struct call_delete : public std::unary_function<T*, void> {
void operator () (T* t) {
template <typename Type>
void operator () (Type* t) {
delete t; delete t;
} }
}; };
inline _call_delete
call_delete() {
return _call_delete();
}
} }
#endif #endif