From 38f0cdbce2084a072dd7654a55f670f2a2518a67 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Mon, 12 Jun 2006 19:20:51 +0000 Subject: [PATCH] * Added blocks to transfer list view. * Minor modifications to the Block API. git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@718 e378c898-3ddf-0310-93e7-cc216c733640 --- src/display/window_download_chunks_seen.cc | 2 +- src/display/window_download_list.cc | 6 +++--- src/display/window_download_transfer_list.cc | 19 +++++++++++++++---- src/display/window_download_transfer_list.h | 3 +++ 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/display/window_download_chunks_seen.cc b/src/display/window_download_chunks_seen.cc index 92dbbcc2..436be939 100644 --- a/src/display/window_download_chunks_seen.cc +++ b/src/display/window_download_chunks_seen.cc @@ -97,7 +97,7 @@ WindowDownloadChunksSeen::redraw() { std::vector::const_iterator itrTransfer = transferChunks.begin(); for (int y = 1; y < m_canvas->get_height() && chunk < last; ++y) { - m_canvas->print(0, y, "%5d ", (int)(chunk - seen)); + m_canvas->print(0, y, "%5u ", (int)(chunk - seen)); while (chunk < last) { chtype attr; diff --git a/src/display/window_download_list.cc b/src/display/window_download_list.cc index 562ed84e..6a4ebd07 100644 --- a/src/display/window_download_list.cc +++ b/src/display/window_download_list.cc @@ -79,9 +79,9 @@ WindowDownloadList::redraw() { typedef std::pair Range; Range range = rak::advance_bidirectional(m_view->begin_visible(), - m_view->focus() != m_view->end_visible() ? m_view->focus() : m_view->begin_visible(), - m_view->end_visible(), - m_canvas->get_height() / 3); + m_view->focus() != m_view->end_visible() ? m_view->focus() : m_view->begin_visible(), + m_view->end_visible(), + m_canvas->get_height() / 3); // Make sure we properly fill out the last lines so it looks like // there are more torrents, yet don't hide it if we got the last one diff --git a/src/display/window_download_transfer_list.cc b/src/display/window_download_transfer_list.cc index c4a46205..9922afc7 100644 --- a/src/display/window_download_transfer_list.cc +++ b/src/display/window_download_transfer_list.cc @@ -74,10 +74,21 @@ WindowDownloadTransferList::redraw() { // prettify this. (This is a very subtle hint) for (int y = 1; y < m_canvas->get_height() && itr != transfers->end(); ++y, ++itr) { - m_canvas->print(0, y, "%5u %3u %s", - (*itr)->index(), - (*itr)->finished(), - (*itr)->is_all_finished() ? "done" : " "); + m_canvas->print(0, y, "%5u ", (*itr)->index()); + + // Handle window size. + for (torrent::BlockList::const_iterator bItr = (*itr)->begin(), bLast = (*itr)->end(); bItr != bLast; ++bItr) { + chtype attr; + + // Add is_transfering. + + if (bItr->is_finished()) + attr = A_NORMAL; + else + attr = A_BOLD; + + m_canvas->print_char(attr | 'X'); + } } } diff --git a/src/display/window_download_transfer_list.h b/src/display/window_download_transfer_list.h index 5879fe10..d5b802d5 100644 --- a/src/display/window_download_transfer_list.h +++ b/src/display/window_download_transfer_list.h @@ -38,6 +38,7 @@ #define RTORRENT_DISPLAY_WINDOW_DOWNLOAD_TRANSFER_LIST_H #include +#include #include "window.h" @@ -58,6 +59,8 @@ public: unsigned int max_focus() const { return std::max(rows() - get_height() + 1, 0); } private: + char peer_id(torrent::BlockTransfer::key_type key); + core::Download* m_download; unsigned int* m_focus;