[Bf-blender-cvs] [e8ab0137f87] master: File Browser: Add Ctrl+F shortcut to activate filter textbox

Jacques Lucke noreply at git.blender.org
Fri Feb 28 14:35:50 CET 2020


Commit: e8ab0137f8766a8db82b051cec84c1bdc7b6ce19
Author: Jacques Lucke
Date:   Fri Feb 28 14:33:31 2020 +0100
Branches: master
https://developer.blender.org/rBe8ab0137f8766a8db82b051cec84c1bdc7b6ce19

File Browser: Add Ctrl+F shortcut to activate filter textbox

Reviewers: Severin, brecht

Differential Revision: https://developer.blender.org/D6941

===================================================================

M	release/scripts/presets/keyconfig/keymap_data/blender_default.py
M	source/blender/editors/interface/interface_handlers.c
M	source/blender/editors/space_file/file_intern.h
M	source/blender/editors/space_file/file_ops.c
M	source/blender/editors/space_file/space_file.c

===================================================================

diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 109e05ad6fb..bd381666eda 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -1846,6 +1846,7 @@ def km_file_browser(params):
         ("file.delete", {"type": 'DEL', "value": 'PRESS'}, None),
         ("file.smoothscroll", {"type": 'TIMER1', "value": 'ANY', "any": True}, None),
         ("file.bookmark_add", {"type": 'B', "value": 'PRESS', "ctrl": True}, None),
+        ("file.start_filter", {"type": 'F', "value": 'PRESS', "ctrl": True}, None),
         ("file.filenum", {"type": 'NUMPAD_PLUS', "value": 'PRESS'},
          {"properties": [("increment", 1)]}),
         ("file.filenum", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "shift": True},
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 7332f3ee776..8fc73327432 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -8432,7 +8432,10 @@ void ui_but_activate_event(bContext *C, ARegion *ar, uiBut *but)
   event.customdata = but;
   event.customdatafree = false;
 
+  ARegion *old_ar = CTX_wm_region(C);
+  CTX_wm_region_set(C, ar);
   ui_do_button(C, but->block, but, &event);
+  CTX_wm_region_set(C, old_ar);
 }
 
 /**
diff --git a/source/blender/editors/space_file/file_intern.h b/source/blender/editors/space_file/file_intern.h
index 30dff1362fa..730df53813c 100644
--- a/source/blender/editors/space_file/file_intern.h
+++ b/source/blender/editors/space_file/file_intern.h
@@ -80,6 +80,7 @@ void FILE_OT_delete(struct wmOperatorType *ot);
 void FILE_OT_rename(struct wmOperatorType *ot);
 void FILE_OT_smoothscroll(struct wmOperatorType *ot);
 void FILE_OT_filepath_drop(struct wmOperatorType *ot);
+void FILE_OT_start_filter(struct wmOperatorType *ot);
 
 int file_exec(bContext *C, struct wmOperator *exec_op);
 int file_cancel_exec(bContext *C, struct wmOperator *unused);
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index 61eb4db8300..32c5cdde0a3 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -2542,6 +2542,28 @@ void FILE_OT_delete(struct wmOperatorType *ot)
   ot->poll = file_delete_poll; /* <- important, handler is on window level */
 }
 
+static int file_start_filter_exec(bContext *C, wmOperator *UNUSED(op))
+{
+  ScrArea *sa = CTX_wm_area(C);
+  ARegion *ar = BKE_area_find_region_type(sa, RGN_TYPE_UI);
+  SpaceFile *sf = CTX_wm_space_file(C);
+
+  UI_textbutton_activate_rna(C, ar, sf->params, "filter_search");
+  return OPERATOR_FINISHED;
+}
+
+void FILE_OT_start_filter(struct wmOperatorType *ot)
+{
+  /* identifiers */
+  ot->name = "Filter";
+  ot->description = "Start entering filter text";
+  ot->idname = "FILE_OT_start_filter";
+
+  /* api callbacks */
+  ot->exec = file_start_filter_exec;
+  ot->poll = ED_operator_file_active;
+}
+
 void ED_operatormacros_file(void)
 {
   //  wmOperatorType *ot;
diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c
index 17f5a5f7fa0..79ccbf6542f 100644
--- a/source/blender/editors/space_file/space_file.c
+++ b/source/blender/editors/space_file/space_file.c
@@ -541,6 +541,7 @@ static void file_operatortypes(void)
   WM_operatortype_append(FILE_OT_rename);
   WM_operatortype_append(FILE_OT_smoothscroll);
   WM_operatortype_append(FILE_OT_filepath_drop);
+  WM_operatortype_append(FILE_OT_start_filter);
 }
 
 /* NOTE: do not add .blend file reading on this level */



More information about the Bf-blender-cvs mailing list