summarylogtreecommitdiffstats
path: root/ps-dl-ui-find_all.patch
blob: 03b30e5a7da6a40783ef64a27c4c32fd3fc9f8b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
--- a/src/ui/download_list.cc
+++ b/src/ui/download_list.cc
@@ -280,6 +280,10 @@ DownloadList::receive_view_input(Input t
     }
     break;
 
+  case INPUT_FIND:
+    title = "find";
+    break;
+
   default:
     throw torrent::internal_error("DownloadList::receive_view_input(...) Invalid input type.");
   }
@@ -375,6 +379,11 @@ DownloadList::receive_exit_input(Input t
       }
       break;
 
+    case INPUT_FIND:
+      rpc::call_command("ui.find.term.set", rak::trim(input->str()), rpc::make_target());
+      rpc::call_command("ui.find.next", torrent::Object(), rpc::make_target());
+      break;
+
     default:
       throw torrent::internal_error("DownloadList::receive_exit_input(...) Invalid input type.");
     }
@@ -405,6 +414,9 @@ DownloadList::setup_keys() {
   m_uiArray[DISPLAY_DOWNLOAD_LIST]->bindings()[KEY_RIGHT] =
     m_uiArray[DISPLAY_DOWNLOAD_LIST]->bindings()['F' - '@'] = std::bind(&DownloadList::activate_display, this, DISPLAY_DOWNLOAD);
   m_uiArray[DISPLAY_DOWNLOAD_LIST]->bindings()['l'] = std::bind(&DownloadList::activate_display, this, DISPLAY_LOG);
+ 
+  // Replace Ctrl-F binding for setting 'ui.find.term'
+  m_uiArray[DISPLAY_DOWNLOAD_LIST]->bindings()['F' - '@'] = std::bind(&DownloadList::receive_view_input, this, INPUT_FIND);
 }
 
 }
--- a/src/ui/download_list.h
+++ b/src/ui/download_list.h
@@ -88,6 +88,7 @@ public:
     INPUT_CHANGE_DIRECTORY,
     INPUT_COMMAND,
     INPUT_FILTER,
+    INPUT_FIND,
     INPUT_EOI
   } Input;