updated on Wed Jan 25 00:20:47 UTC 2012
[aur-mirror.git] / rtorrent-extended / ui_show_idle_times.patch
blob2499339313be69cc9af186f3be238f62fb4086e4
1 diff --git a/src/command_peer.cc b/src/command_peer.cc
2 index c17bed2..4bedc43 100644
3 --- a/src/command_peer.cc
4 +++ b/src/command_peer.cc
5 @@ -146,6 +146,11 @@ initialize_command_peer() {
7 ADD_CP_VALUE_UNI("completed_percent", std::ptr_fun(&retrieve_p_completed_percent));
9 + ADD_CP_VALUE_MEM_UNI("last_connection", &torrent::Peer::peer_info, &torrent::PeerInfo::last_connection);
10 + ADD_CP_VALUE_MEM_UNI("last_transfer", &torrent::Peer::peer_info, &torrent::PeerInfo::last_transfer);
11 + ADD_CP_VALUE_MEM_UNI("last_transfer_up", &torrent::Peer::peer_info, &torrent::PeerInfo::last_transfer_up);
12 + ADD_CP_VALUE_MEM_UNI("last_transfer_down", &torrent::Peer::peer_info, &torrent::PeerInfo::last_transfer_down);
14 ADD_CP_VALUE_MEM_UNI("up_rate", &torrent::Peer::up_rate, &torrent::Rate::rate);
15 ADD_CP_VALUE_MEM_UNI("up_total", &torrent::Peer::up_rate, &torrent::Rate::total);
16 ADD_CP_VALUE_MEM_UNI("down_rate", &torrent::Peer::down_rate, &torrent::Rate::rate);
17 diff --git a/src/command_ui.cc b/src/command_ui.cc
18 index 9d39360..915c2f0 100644
19 --- a/src/command_ui.cc
20 +++ b/src/command_ui.cc
21 @@ -274,6 +274,9 @@ apply_to_time(int flags, const torrent::Object& rawArgs) {
23 torrent::Object
24 apply_to_elapsed_time(const torrent::Object& rawArgs) {
25 + if (rawArgs.as_value() == 0)
26 + return "--:--:--";
28 uint64_t arg = cachedTime.seconds() - rawArgs.as_value();
30 char buffer[48];
31 diff --git a/src/display/text_element_value.cc b/src/display/text_element_value.cc
32 index 403046c..61cf217 100644
33 --- a/src/display/text_element_value.cc
34 +++ b/src/display/text_element_value.cc
35 @@ -68,7 +68,9 @@ TextElementValueBase::print(char* first, char* last, Canvas::attributes_list* at
36 int64_t val = value(target.second);
38 // Transform the value if needed.
39 - if (m_flags & flag_elapsed)
40 + if (m_flags & (flag_elapsed | flag_remaining) && val == 0)
41 + val = -1;
42 + else if (m_flags & flag_elapsed)
43 val = cachedTime.seconds() - val;
44 else if (m_flags & flag_remaining)
45 val = val - cachedTime.seconds();
46 @@ -100,7 +102,7 @@ TextElementValueBase::print(char* first, char* last, Canvas::attributes_list* at
47 first += std::min<ptrdiff_t>(std::max(snprintf(first, last - first + 1, "%5.1f TB", (double)val / (int64_t(1) << 40)), 0), last - first + 1);
49 } else if (m_flags & flag_timer) {
50 - if (val == 0)
51 + if (val < 0)
52 first += std::min<ptrdiff_t>(std::max(snprintf(first, last - first + 1, "--:--:--"), 0), last - first + 1);
53 else
54 first += std::min<ptrdiff_t>(std::max(snprintf(first, last - first + 1, "%2d:%02d:%02d", (int)(val / 3600), (int)((val / 60) % 60), (int)(val % 60)), 0), last - first + 1);
55 diff --git a/src/ui/element_peer_list.cc b/src/ui/element_peer_list.cc
56 index c5ad738..da08e15 100644
57 --- a/src/ui/element_peer_list.cc
58 +++ b/src/ui/element_peer_list.cc
59 @@ -109,6 +109,7 @@ ElementPeerList::create_info() {
60 element->push_column("Options:", te_command("p.get_options_str="));
61 element->push_column("Connected:", te_command("if=$p.is_incoming=,incoming,outgoing"));
62 element->push_column("Encrypted:", te_command("if=$p.is_encrypted=,yes,$p.is_obfuscated=,handshake,no"));
63 + element->push_column("Time:", te_command("cat=Connected\\ ,$to_elapsed_time=$p.get_last_connection=,\\ \\ Idle\\ ,$to_elapsed_time=$p.get_last_transfer_up=,\\ up\\ \\ ,$to_elapsed_time=$p.get_last_transfer_down=,\\ down"));
65 element->push_back("");
66 element->push_column("Snubbed:", te_command("if=$p.is_snubbed=,yes,no"));