Source

gentoo-overlay / net-p2p / rtorrent / files / rtorrent-0.8.6-canvas-fix.patch

diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/command_network.cc ./src/command_network.cc
*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/command_network.cc	2009-11-12 09:19:40.000000000 +0100
--- ./src/command_network.cc	2009-12-17 19:27:05.783955715 +0100
***************
*** 495,498 ****
--- 495,502 ----
    // Not really network stuff:
    ADD_VARIABLE_BOOL  ("handshake_log", false);
    ADD_VARIABLE_STRING("log.tracker", "");
+   ADD_COMMAND_VALUE_TRI("done_fg_color",     rak::make_mem_fun(control->ui(), &ui::Root::set_done_fg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_done_fg_color));
+   ADD_COMMAND_VALUE_TRI("done_bg_color",     rak::make_mem_fun(control->ui(), &ui::Root::set_done_bg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_done_bg_color));
+   ADD_COMMAND_VALUE_TRI("active_fg_color",     rak::make_mem_fun(control->ui(), &ui::Root::set_active_fg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_active_fg_color));
+   ADD_COMMAND_VALUE_TRI("active_bg_color",     rak::make_mem_fun(control->ui(), &ui::Root::set_active_bg_color), rak::make_mem_fun(control->ui(), &ui::Root::get_active_bg_color));
  }
diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/canvas.cc ./src/display/canvas.cc
*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/canvas.cc	2009-11-12 09:03:47.000000000 +0100
--- ./src/display/canvas.cc	2009-12-17 19:27:05.783955715 +0100
***************
*** 92,97 ****
--- 92,101 ----
    m_isInitialized = true;
  
    initscr();
+   start_color();
+   use_default_colors();
+   init_pair(2, -1, -1);
+   init_pair(1, -1, -1);
    raw();
    noecho();
    nodelay(stdscr, TRUE);
Only in ./src/display: canvas.cc.orig
diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.cc ./src/display/window_download_list.cc
*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.cc	2009-11-12 09:03:47.000000000 +0100
--- ./src/display/window_download_list.cc	2009-12-17 19:27:05.783955715 +0100
***************
*** 37,42 ****
--- 37,43 ----
  #include "config.h"
  
  #include <rak/algorithm.h>
+ #include <torrent/rate.h>
  
  #include "core/download.h"
  #include "core/view.h"
***************
*** 96,107 ****
      char* position;
      char* last = buffer + m_canvas->width() - 2 + 1;
  
      position = print_download_title(buffer, last, *range.first);
!     m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
      
      position = print_download_info(buffer, last, *range.first);
      m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
  
      position = print_download_status(buffer, last, *range.first);
      m_canvas->print(0, pos++, "%c %s", range.first == m_view->focus() ? '*' : ' ', buffer);
  
--- 97,126 ----
      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);
!     if( (*range.first)->is_done() ) {
!       if( (*range.first)->download()->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)->download()->is_active() ) {
!       if( (*range.first)->download()->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,112 ****
--- 128,167 ----
    }    
  }
  
+ 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);
+ }
+ 
  }
diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.h ./src/display/window_download_list.h
*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/display/window_download_list.h	2009-11-12 09:03:47.000000000 +0100
--- ./src/display/window_download_list.h	2009-12-17 19:27:05.783955715 +0100
***************
*** 59,64 ****
--- 59,68 ----
    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;
diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.cc ./src/ui/download_list.cc
*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.cc	2009-11-12 09:03:48.000000000 +0100
--- ./src/ui/download_list.cc	2009-12-17 19:27:05.783955715 +0100
***************
*** 137,142 ****
--- 137,147 ----
    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())
Only in ./src/ui: download_list.cc.orig
diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.h ./src/ui/download_list.h
*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/download_list.h	2009-11-12 09:03:48.000000000 +0100
--- ./src/ui/download_list.h	2009-12-17 19:27:05.783955715 +0100
***************
*** 101,106 ****
--- 101,107 ----
    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; }
diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/element_download_list.h ./src/ui/element_download_list.h
*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/element_download_list.h	2009-11-12 09:03:48.000000000 +0100
--- ./src/ui/element_download_list.h	2009-12-17 19:27:05.783955715 +0100
***************
*** 60,65 ****
--- 60,66 ----
    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);
Only in ./src/ui: element_download_list.h.orig
diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.cc ./src/ui/root.cc
*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.cc	2009-11-12 09:03:48.000000000 +0100
--- ./src/ui/root.cc	2009-12-17 19:27:05.783955715 +0100
***************
*** 44,49 ****
--- 44,50 ----
  
  #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,71 ****
    m_windowTitle(NULL),
    m_windowHttpQueue(NULL),
    m_windowInput(NULL),
!   m_windowStatusbar(NULL) {
  }
  
  void
--- 66,76 ----
    m_windowTitle(NULL),
    m_windowHttpQueue(NULL),
    m_windowInput(NULL),
!   m_windowStatusbar(NULL),
!   done_fg_color(-1),
!   done_bg_color(-1),
!   active_fg_color(-1),
!   active_bg_color(-1) {
  }
  
  void
***************
*** 97,102 ****
--- 102,111 ----
    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,224 ****
--- 228,273 ----
      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));
Only in ./src/ui: root.cc.orig
diff -crB /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.h ./src/ui/root.h
*** /home/regj/misc/rtorrent-color-orig/src/rtorrent-0.8.6/src/ui/root.h	2009-11-12 09:03:48.000000000 +0100
--- ./src/ui/root.h	2009-12-17 19:27:05.783955715 +0100
***************
*** 82,87 ****
--- 82,95 ----
    // 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);
***************
*** 105,110 ****
--- 113,122 ----
    WStatusbar*         m_windowStatusbar;
  
    input::Bindings     m_bindings;
+   int64_t                done_fg_color;
+   int64_t                done_bg_color;
+   int64_t                active_fg_color;
+   int64_t                active_bg_color;
  };
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.