Adding tracker group cycle.

Adding creation date display.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@468 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2005-06-19 20:44:56 +00:00
parent 7b1e0ec085
commit 9a3d75490f
9 changed files with 52 additions and 19 deletions
+1 -10
View File
@@ -8,9 +8,6 @@ allowed since the tracker set a min interval.
Make accumulate return the value, no refs please...
> - listing the total upload / download bandwidth at the bottom of the
> screen;
> - seeing the number of seeds / leechers of a torrent on the main
> screen (and the level of distribution between leechers);
@@ -19,12 +16,6 @@ Make accumulate return the value, no refs please...
> slow or broken or for various reasons you don't want to download it.
Show torrent creation date?
Recheck hash key.
Seperate download management from core::management.
Allow switching/cycling of tracker.
Remember to add virtual dtor to OptionHandlerBase
Recheck hash key.
+2
View File
@@ -67,6 +67,8 @@ public:
void start(Download* d);
void stop(Download* d);
void check_hash(Download* d);
void set_port_range(int a, int b) { m_portFirst = a; m_portLast = b; }
void debug_tracker() { m_debugTracker = 0; }
+17 -1
View File
@@ -22,7 +22,6 @@
#include "config.h"
#include <ctime>
#include <sstream>
#include <iomanip>
@@ -68,4 +67,21 @@ print_hhmmss(utils::Timer t) {
return str.str();
}
std::string
print_ddmmyyyy(time_t t) {
std::tm *u = std::gmtime(&t);
if (u == NULL)
return "inv_time";
std::stringstream str;
str.fill('0');
str << std::setw(2) << u->tm_mday << '/'
<< std::setw(2) << u->tm_mon << '/'
<< std::setw(4) << (1900 + u->tm_year);
return str.str();
}
}
+2
View File
@@ -23,6 +23,7 @@
#ifndef RTORRENT_DISPLAY_UTILS_H
#define RTORRENT_DISPLAY_UTILS_H
#include <ctime>
#include <string>
namespace core {
@@ -38,6 +39,7 @@ namespace display {
std::string print_download_status(core::Download* d);
std::string print_hhmmss(utils::Timer t);
std::string print_ddmmyyyy(time_t t);
}
+6 -3
View File
@@ -28,6 +28,7 @@
#include "utils/parse.h"
#include "canvas.h"
#include "utils.h"
#include "window_peer_info.h"
namespace display {
@@ -47,12 +48,14 @@ WindowPeerInfo::redraw() {
int y = 0;
torrent::Download d = m_download->get_download();
m_canvas->print(0, y++, "Hash: %s", utils::string_to_hex(d.get_hash()).c_str());
m_canvas->print(0, y++, "Id: %s", utils::escape_string(d.get_id()).c_str());
m_canvas->print(0, y++, "Chunks: %u / %u * %u",
m_canvas->print(0, y++, "Hash: %s", utils::string_to_hex(d.get_hash()).c_str());
m_canvas->print(0, y++, "Id: %s", utils::escape_string(d.get_id()).c_str());
m_canvas->print(0, y++, "Chunks: %u / %u * %u",
d.get_chunks_done(),
d.get_chunks_total(),
d.get_chunks_size());
m_canvas->print(0, y++, "Created: %s",
print_ddmmyyyy(static_cast<time_t>(d.get_creation_date())).c_str());
y++;
+2
View File
@@ -28,6 +28,8 @@
// No members with dtor's allowed.
struct OptionHandlerBase {
virtual ~OptionHandlerBase() {}
virtual void process(const std::string& key, const std::string& arg) = 0;
};
+5 -4
View File
@@ -267,11 +267,12 @@ Download::bind_keys() {
(*m_bindings)[KEY_DOWN] = sigc::mem_fun(*this, &Download::receive_next);
// Key bindings for sub-ui's.
m_uiArray[DISPLAY_PEER_LIST]->get_bindings()[KEY_RIGHT] = sigc::bind(sigc::mem_fun(*this, &Download::receive_change), DISPLAY_FILE_LIST);
m_uiArray[DISPLAY_PEER_INFO]->get_bindings()[' '] = sigc::bind(sigc::mem_fun(*this, &Download::receive_change), DISPLAY_PEER_LIST);
m_uiArray[DISPLAY_FILE_LIST]->get_bindings()[KEY_LEFT] = sigc::bind(sigc::mem_fun(*this, &Download::receive_change), DISPLAY_PEER_LIST);
m_uiArray[DISPLAY_TRACKER_LIST]->get_bindings()[' '] = sigc::bind(sigc::mem_fun(*this, &Download::receive_change), DISPLAY_PEER_LIST);
m_uiArray[DISPLAY_PEER_LIST]->get_bindings()[KEY_RIGHT] = sigc::bind(sigc::mem_fun(*this, &Download::receive_change), DISPLAY_FILE_LIST);
m_uiArray[DISPLAY_PEER_INFO]->get_bindings()[KEY_LEFT] = sigc::bind(sigc::mem_fun(*this, &Download::receive_change), DISPLAY_PEER_LIST);
m_uiArray[DISPLAY_FILE_LIST]->get_bindings()[KEY_LEFT] = sigc::bind(sigc::mem_fun(*this, &Download::receive_change), DISPLAY_PEER_LIST);
m_uiArray[DISPLAY_TRACKER_LIST]->get_bindings()[KEY_LEFT] = sigc::bind(sigc::mem_fun(*this, &Download::receive_change), DISPLAY_PEER_LIST);
// Doesn't belong here.
m_uiArray[DISPLAY_PEER_LIST]->get_bindings()['*'] = sigc::mem_fun(*this, &Download::receive_snub_peer);
m_uiArray[DISPLAY_PEER_INFO]->get_bindings()['*'] = sigc::mem_fun(*this, &Download::receive_snub_peer);
}
+15 -1
View File
@@ -37,7 +37,8 @@ ElementTrackerList::ElementTrackerList(core::Download* d) :
m_focus(0) {
m_bindings[KEY_DOWN] = sigc::mem_fun(*this, &ElementTrackerList::receive_next);
m_bindings[KEY_UP] = sigc::mem_fun(*this, &ElementTrackerList::receive_prev);
m_bindings[KEY_UP] = sigc::mem_fun(*this, &ElementTrackerList::receive_prev);
m_bindings[' '] = sigc::mem_fun(*this, &ElementTrackerList::receive_cycle_group);
}
void
@@ -88,4 +89,17 @@ ElementTrackerList::receive_prev() {
m_window->mark_dirty();
}
void
ElementTrackerList::receive_cycle_group() {
if (m_window == NULL)
throw std::logic_error("ui::ElementTrackerList::receive_group_cycle(...) called on a disabled object");
if (m_focus >= m_download->get_download().get_tracker_size())
throw std::logic_error("ui::ElementTrackerList::receive_group_cycle(...) called with an invalid focus");
m_download->get_download().cycle_tracker_group(m_download->get_download().get_tracker(m_focus).get_group());
m_window->mark_dirty();
}
}
+2
View File
@@ -48,6 +48,8 @@ private:
void receive_next();
void receive_prev();
void receive_cycle_group();
core::Download* m_download;
WTrackerList* m_window;