summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Ochotnicky <sochotnicky@gentoo.org>2011-04-18 20:03:52 +0000
committerStanislav Ochotnicky <sochotnicky@gentoo.org>2011-04-18 20:03:52 +0000
commitf55733e6950a1ba25e566b8da312bb6baa9c7a9e (patch)
tree18e40e59a99b316bcdd4b5c701d30d90e45617f8 /net-p2p/rtorrent
parentJust overwrite the previous value of QT_PLUGIN_PATH, qt-4.7.2 does not even s... (diff)
downloadgentoo-2-f55733e6950a1ba25e566b8da312bb6baa9c7a9e.tar.gz
gentoo-2-f55733e6950a1ba25e566b8da312bb6baa9c7a9e.tar.bz2
gentoo-2-f55733e6950a1ba25e566b8da312bb6baa9c7a9e.zip
Added optional support for color torrent listing
(Portage version: 2.1.9.42/cvs/Linux x86_64)
Diffstat (limited to 'net-p2p/rtorrent')
-rw-r--r--net-p2p/rtorrent/ChangeLog9
-rw-r--r--net-p2p/rtorrent/files/rtorrent-0.8.7-canvas-fix.patch301
-rw-r--r--net-p2p/rtorrent/metadata.xml1
-rw-r--r--net-p2p/rtorrent/rtorrent-0.8.7-r2.ebuild (renamed from net-p2p/rtorrent/rtorrent-0.8.7-r1.ebuild)26
4 files changed, 325 insertions, 12 deletions
diff --git a/net-p2p/rtorrent/ChangeLog b/net-p2p/rtorrent/ChangeLog
index 8948af64f35b..8301816196df 100644
--- a/net-p2p/rtorrent/ChangeLog
+++ b/net-p2p/rtorrent/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for net-p2p/rtorrent
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-p2p/rtorrent/ChangeLog,v 1.159 2011/04/11 21:24:18 sochotnicky Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-p2p/rtorrent/ChangeLog,v 1.160 2011/04/18 20:03:52 sochotnicky Exp $
+
+*rtorrent-0.8.7-r2 (18 Apr 2011)
+
+ 18 Apr 2011; Stanislav Ochotnicky <sochotnicky@gentoo.org>
+ -rtorrent-0.8.7-r1.ebuild, +rtorrent-0.8.7-r2.ebuild,
+ +files/rtorrent-0.8.7-canvas-fix.patch, metadata.xml:
+ Added optional support for color torrent listing
*rtorrent-0.8.7-r1 (11 Apr 2011)
*rtorrent-0.8.6-r3 (11 Apr 2011)
diff --git a/net-p2p/rtorrent/files/rtorrent-0.8.7-canvas-fix.patch b/net-p2p/rtorrent/files/rtorrent-0.8.7-canvas-fix.patch
new file mode 100644
index 000000000000..9fa32a4417ab
--- /dev/null
+++ b/net-p2p/rtorrent/files/rtorrent-0.8.7-canvas-fix.patch
@@ -0,0 +1,301 @@
+Index: rtorrent/src/display/window_download_list.h
+===================================================================
+--- rtorrent/src/display/window_download_list.h (revision 1163)
++++ rtorrent/src/display/window_download_list.h (working copy)
+@@ -59,6 +59,10 @@
+ virtual void redraw();
+
+ void set_view(core::View* l);
++ void set_done_fg_color(int64_t color);
++ void set_done_bg_color(int64_t color);
++ void set_active_fg_color(int64_t color);
++ void set_active_bg_color(int64_t color);
+
+ private:
+ core::View* m_view;
+Index: rtorrent/src/display/canvas.cc
+===================================================================
+--- rtorrent/src/display/canvas.cc (revision 1163)
++++ rtorrent/src/display/canvas.cc (working copy)
+@@ -92,6 +92,10 @@
+ m_isInitialized = true;
+
+ initscr();
++ start_color();
++ use_default_colors();
++ init_pair(2, -1, -1);
++ init_pair(1, -1, -1);
+ raw();
+ noecho();
+ nodelay(stdscr, TRUE);
+Index: rtorrent/src/display/window_download_list.cc
+===================================================================
+--- rtorrent/src/display/window_download_list.cc (revision 1163)
++++ rtorrent/src/display/window_download_list.cc (working copy)
+@@ -37,6 +37,7 @@
+ #include "config.h"
+
+ #include <rak/algorithm.h>
++#include <torrent/rate.h>
+
+ #include "core/download.h"
+ #include "core/view.h"
+@@ -96,12 +97,30 @@
+ char* position;
+ char* last = buffer + m_canvas->width() - 2 + 1;
+
++ if( pos >= m_canvas->height() ) break;
+ position = print_download_title(buffer, last, *range.first);
+- m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
++ m_canvas->print(0, pos, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
++ if( (*range.first)->is_done() ) {
++ if( (*range.first)->info()->up_rate()->rate() != 0 ) {
++ m_canvas->set_attr(0, pos, m_canvas->width()-1, A_BOLD, 2);
++ } else {
++ m_canvas->set_attr(0, pos, m_canvas->width()-1, A_NORMAL, 2);
++ }
++ } else if( (*range.first)->info()->is_active() ) {
++ if( (*range.first)->info()->down_rate()->rate() != 0 ) {
++ m_canvas->set_attr(0, pos, m_canvas->width()-1, A_BOLD, 1);
++ } else {
++ m_canvas->set_attr(0, pos, m_canvas->width()-1, A_NORMAL, 1);
++ }
++ }
++ pos++;
++
++ if( pos >= m_canvas->height() ) break;
+
+ position = print_download_info(buffer, last, *range.first);
+ m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
+
++ if( pos >= m_canvas->height() ) break;
+ position = print_download_status(buffer, last, *range.first);
+ m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
+
+@@ -109,4 +128,41 @@
+ }
+ }
+
++void
++WindowDownloadList::set_done_fg_color(int64_t color) {
++ short fg, bg;
++ pair_content(2, &fg, &bg);
++ if( color < 0 ) color = -1;
++ color = color % 8;
++ init_pair(2, (short)color, bg);
+ }
++
++void
++WindowDownloadList::set_done_bg_color(int64_t color) {
++ short fg, bg;
++ pair_content(2, &fg, &bg);
++ if( color < 0 ) color = -1;
++ color = color % 8;
++ init_pair(2, fg, (short)color);
++}
++
++void
++WindowDownloadList::set_active_fg_color(int64_t color) {
++ short fg, bg;
++ pair_content(1, &fg, &bg);
++ if( color < 0 ) color = -1;
++ color = color % 8;
++ init_pair(1, (short)color, bg);
++}
++
++void
++WindowDownloadList::set_active_bg_color(int64_t color) {
++ short fg, bg;
++ pair_content(1, &fg, &bg);
++ if( color < 0 ) color = -1;
++ color = color % 8;
++ init_pair(1, fg, (short)color);
++}
++
++}
++
+Index: rtorrent/src/command_network.cc
+===================================================================
+--- rtorrent/src/command_network.cc (revision 1163)
++++ rtorrent/src/command_network.cc (working copy)
+@@ -506,4 +506,15 @@
+ CMD2_ANY ("dht.statistics", std::tr1::bind(&core::DhtManager::dht_statistics, control->dht_manager()));
+ CMD2_ANY ("dht.throttle.name", std::tr1::bind(&core::DhtManager::throttle_name, control->dht_manager()));
+ CMD2_ANY_STRING_V("dht.throttle.name.set", std::tr1::bind(&core::DhtManager::set_throttle_name, control->dht_manager(), std::tr1::placeholders::_2));
++
++
++ CMD2_ANY ("set_done_fg_color", std::tr1::bind(&ui::Root::get_done_fg_color, control->ui()));
++ CMD2_ANY_VALUE_V ("done_fg_color", std::tr1::bind(&ui::Root::set_done_fg_color, control->ui(), std::tr1::placeholders::_2));
++ CMD2_ANY ("set_done_bg_color", std::tr1::bind(&ui::Root::get_done_bg_color, control->ui()));
++ CMD2_ANY_VALUE_V ("done_bg_color", std::tr1::bind(&ui::Root::set_done_bg_color, control->ui(), std::tr1::placeholders::_2));
++ CMD2_ANY ("set_active_fg_color", std::tr1::bind(&ui::Root::get_active_fg_color, control->ui()));
++ CMD2_ANY_VALUE_V ("active_fg_color", std::tr1::bind(&ui::Root::set_active_fg_color, control->ui(), std::tr1::placeholders::_2));
++ CMD2_ANY ("set_active_bg_color", std::tr1::bind(&ui::Root::get_active_bg_color, control->ui()));
++ CMD2_ANY_VALUE_V ("active_bg_color", std::tr1::bind(&ui::Root::set_active_bg_color, control->ui(), std::tr1::placeholders::_2));
++
+ }
+Index: rtorrent/src/ui/download_list.cc
+===================================================================
+--- rtorrent/src/ui/download_list.cc (revision 1163)
++++ rtorrent/src/ui/download_list.cc (working copy)
+@@ -137,6 +137,11 @@
+ current_view()->next_focus();
+ }
+
++display::WindowDownloadList*
++DownloadList::current_window_list() {
++ return dynamic_cast<ElementDownloadList*>(m_uiArray[DISPLAY_DOWNLOAD_LIST])->window();
++}
++
+ void
+ DownloadList::activate_display(Display displayType) {
+ if (!is_active())
+Index: rtorrent/src/ui/download_list.h
+===================================================================
+--- rtorrent/src/ui/download_list.h (revision 1163)
++++ rtorrent/src/ui/download_list.h (working copy)
+@@ -101,6 +101,7 @@
+ void activate_display(Display d);
+
+ core::View* current_view();
++ display::WindowDownloadList* current_window_list();
+ void set_current_view(const std::string& name);
+
+ void slot_open_uri(SlotOpenUri s) { m_slotOpenUri = s; }
+Index: rtorrent/src/ui/element_download_list.h
+===================================================================
+--- rtorrent/src/ui/element_download_list.h (revision 1163)
++++ rtorrent/src/ui/element_download_list.h (working copy)
+@@ -60,6 +60,7 @@
+ void disable();
+
+ core::View* view() { return m_view; }
++ WDownloadList* window() { return m_window; }
+ void set_view(core::View* l);
+
+ void receive_command(const char* cmd);
+Index: rtorrent/src/ui/root.cc
+===================================================================
+--- rtorrent/src/ui/root.cc (revision 1163)
++++ rtorrent/src/ui/root.cc (working copy)
+@@ -44,6 +44,7 @@
+
+ #include "core/manager.h"
+ #include "display/frame.h"
++#include "display/window_download_list.h"
+ #include "display/window_http_queue.h"
+ #include "display/window_title.h"
+ #include "display/window_input.h"
+@@ -65,7 +66,11 @@
+ m_windowTitle(NULL),
+ m_windowHttpQueue(NULL),
+ m_windowInput(NULL),
+- m_windowStatusbar(NULL) {
++ m_windowStatusbar(NULL),
++ done_fg_color(-1),
++ done_bg_color(-1),
++ active_fg_color(-1),
++ active_bg_color(-1) {
+ }
+
+ void
+@@ -97,6 +102,10 @@
+ setup_keys();
+
+ m_downloadList->activate(rootFrame->frame(1));
++ m_downloadList->current_window_list()->set_done_fg_color(done_fg_color);
++ m_downloadList->current_window_list()->set_done_bg_color(done_bg_color);
++ m_downloadList->current_window_list()->set_active_fg_color(active_fg_color);
++ m_downloadList->current_window_list()->set_active_bg_color(active_bg_color);
+ }
+
+ void
+@@ -219,7 +228,47 @@
+ torrent::set_max_unchoked(maxUnchoked);
+ }
+
++int
++Root::get_done_fg_color() {
++ return done_fg_color;
++}
++
+ void
++Root::set_done_fg_color(int64_t color) {
++ done_fg_color = color;
++}
++
++int
++Root::get_done_bg_color() {
++ return done_bg_color;
++}
++
++void
++Root::set_done_bg_color(int64_t color) {
++ done_bg_color = color;
++}
++
++int
++Root::get_active_fg_color() {
++ return active_fg_color;
++}
++
++void
++Root::set_active_fg_color(int64_t color) {
++ active_fg_color = color;
++}
++
++int
++Root::get_active_bg_color() {
++ return active_bg_color;
++}
++
++void
++Root::set_active_bg_color(int64_t color) {
++ active_bg_color = color;
++}
++
++void
+ Root::adjust_down_throttle(int throttle) {
+ set_down_throttle(std::max<int>(torrent::down_throttle_global()->max_rate() / 1024 + throttle, 0));
+ }
+Index: rtorrent/src/ui/root.h
+===================================================================
+--- rtorrent/src/ui/root.h (revision 1163)
++++ rtorrent/src/ui/root.h (working copy)
+@@ -82,7 +82,16 @@
+ // Rename to raw or something, make base function.
+ void set_down_throttle_i64(int64_t throttle) { set_down_throttle(throttle >> 10); }
+ void set_up_throttle_i64(int64_t throttle) { set_up_throttle(throttle >> 10); }
++ int get_done_fg_color();
++ void set_done_fg_color(int64_t color);
++ int get_done_bg_color();
++ void set_done_bg_color(int64_t color);
++ int get_active_fg_color();
++ void set_active_fg_color(int64_t color);
++ int get_active_bg_color();
++ void set_active_bg_color(int64_t color);
+
++
+ void adjust_down_throttle(int throttle);
+ void adjust_up_throttle(int throttle);
+
+@@ -93,6 +102,11 @@
+
+ input::TextInput* current_input();
+
++ int64_t done_fg_color;
++ int64_t done_bg_color;
++ int64_t active_fg_color;
++ int64_t active_bg_color;
++
+ private:
+ void setup_keys();
+
+@@ -105,6 +119,7 @@
+ WStatusbar* m_windowStatusbar;
+
+ input::Bindings m_bindings;
++
+ };
+
+ }
diff --git a/net-p2p/rtorrent/metadata.xml b/net-p2p/rtorrent/metadata.xml
index 7a0964ccbd38..dd9423df796b 100644
--- a/net-p2p/rtorrent/metadata.xml
+++ b/net-p2p/rtorrent/metadata.xml
@@ -9,6 +9,7 @@
<flag name='daemon'>Uses <pkg>app-misc/screen</pkg> to daemonize this
application
</flag>
+ <flag name='color'>Add custom color support for torrent list</flag>
</use>
</pkgmetadata>
diff --git a/net-p2p/rtorrent/rtorrent-0.8.7-r1.ebuild b/net-p2p/rtorrent/rtorrent-0.8.7-r2.ebuild
index 46de76cce941..f11c51190115 100644
--- a/net-p2p/rtorrent/rtorrent-0.8.7-r1.ebuild
+++ b/net-p2p/rtorrent/rtorrent-0.8.7-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-p2p/rtorrent/rtorrent-0.8.7-r1.ebuild,v 1.1 2011/04/11 21:24:18 sochotnicky Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-p2p/rtorrent/rtorrent-0.8.7-r2.ebuild,v 1.1 2011/04/18 20:03:52 sochotnicky Exp $
EAPI=2
@@ -13,7 +13,7 @@ SRC_URI="http://libtorrent.rakshasa.no/downloads/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
-IUSE="daemon debug ipv6 xmlrpc"
+IUSE="color daemon debug ipv6 xmlrpc"
COMMON_DEPEND=">=net-libs/libtorrent-0.12.${PV##*.}
>=dev-libs/libsigc++-2.2.2:2
@@ -23,11 +23,14 @@ COMMON_DEPEND=">=net-libs/libtorrent-0.12.${PV##*.}
RDEPEND="${COMMON_DEPEND}
daemon? ( app-misc/screen )"
DEPEND="${COMMON_DEPEND}
+ test? ( dev-util/cppunit )
dev-util/pkgconfig"
src_prepare() {
# bug #358271
epatch "${FILESDIR}"/${PN}-0.8.6-ncurses.patch
+
+ use color && EPATCH_OPTS="-p1" epatch "${FILESDIR}"/${P}-canvas-fix.patch
}
src_configure() {
@@ -48,12 +51,13 @@ src_install() {
fi
}
-# Need to fix patch to get that again
-#pkg_postinst() {
-# elog "rtorrent colors patch"
-# elog "Set colors using the options below in .rtorrent.rc:"
-# elog "Options: done_fg_color, done_bg_color, active_fg_color, active_bg_color"
-# elog "Colors: 0 = black, 1 = red, 2 = green, 3 = yellow, 4 = blue,"
-# elog "5 = magenta, 6 = cyan and 7 = white"
-# elog "Example: done_fg_color = 1"
-#}
+pkg_postinst() {
+ if use color; then
+ elog "rtorrent colors patch"
+ elog "Set colors using the options below in .rtorrent.rc:"
+ elog "Options: done_fg_color, done_bg_color, active_fg_color, active_bg_color"
+ elog "Colors: 0 = black, 1 = red, 2 = green, 3 = yellow, 4 = blue,"
+ elog "5 = magenta, 6 = cyan and 7 = white"
+ elog "Example: done_fg_color = 1"
+ fi
+}