[Bf-blender-cvs] [f38c8b84b74] soc-2019-outliner: Outliner: Cleanup merge search menu

Nathan Craddock noreply at git.blender.org
Wed Jul 24 04:00:27 CEST 2019


Commit: f38c8b84b74d5ef66bc1aad01af5ef5dbe3330a7
Author: Nathan Craddock
Date:   Tue Jul 23 19:59:02 2019 -0600
Branches: soc-2019-outliner
https://developer.blender.org/rBf38c8b84b74d5ef66bc1aad01af5ef5dbe3330a7

Outliner: Cleanup merge search menu

Moved the struct out of the intern file to simplify and group
related code better. It was easily possible to move all the
menu code to `outliner_tools.c` so this makes more sense.
Also leads to a cleaner outliner element activate function.

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

M	source/blender/editors/space_outliner/outliner_intern.h
M	source/blender/editors/space_outliner/outliner_select.c
M	source/blender/editors/space_outliner/outliner_tools.c

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

diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h
index beb6edb8122..5a02361087c 100644
--- a/source/blender/editors/space_outliner/outliner_intern.h
+++ b/source/blender/editors/space_outliner/outliner_intern.h
@@ -88,11 +88,6 @@ typedef struct TreeElementIcon {
   int icon;
 } TreeElementIcon;
 
-typedef struct MergedSearchData {
-  TreeElement *parent_element;
-  TreeElement *select_element;
-} MergedSearchData;
-
 #define TREESTORE_ID_TYPE(_id) \
   (ELEM(GS((_id)->name), \
         ID_SCE, \
@@ -399,8 +394,9 @@ void OUTLINER_OT_orphans_purge(struct wmOperatorType *ot);
 
 /* outliner_tools.c ---------------------------------------------- */
 
-struct uiBlock *merged_element_search_menu(struct bContext *C, struct ARegion *ar, void *element);
-void merged_element_search_free_cb(void *arg);
+void merged_element_search_menu_invoke(struct bContext *C,
+                                       TreeElement *parent_te,
+                                       TreeElement *activate_te);
 
 void OUTLINER_OT_operation(struct wmOperatorType *ot);
 void OUTLINER_OT_scene_operation(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c
index 6b4d02b38c3..bd19d4bbedf 100644
--- a/source/blender/editors/space_outliner/outliner_select.c
+++ b/source/blender/editors/space_outliner/outliner_select.c
@@ -1422,12 +1422,7 @@ static int outliner_item_do_activate_from_cursor(bContext *C,
 
     /* If the selected icon was an aggregate of multiple elements, run the search popup */
     if (merged_elements) {
-      MergedSearchData *select_data = MEM_callocN(sizeof(MergedSearchData), "merge_search_data");
-      select_data->parent_element = te;
-      select_data->select_element = activate_te;
-
-      UI_popup_block_invoke(
-          C, merged_element_search_menu, select_data, merged_element_search_free_cb);
+      merged_element_search_menu_invoke(C, te, activate_te);
       return OPERATOR_CANCELLED;
     }
 
diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c
index 925e18f058b..48aab6efcb4 100644
--- a/source/blender/editors/space_outliner/outliner_tools.c
+++ b/source/blender/editors/space_outliner/outliner_tools.c
@@ -478,7 +478,12 @@ void OUTLINER_OT_scene_operation(wmOperatorType *ot)
 }
 /* ******************************************** */
 
-void merged_element_search_free_cb(void *arg)
+typedef struct MergedSearchData {
+  TreeElement *parent_element;
+  TreeElement *select_element;
+} MergedSearchData;
+
+static void merged_element_search_free_cb(void *arg)
 {
   MEM_freeN(arg);
 }
@@ -532,7 +537,7 @@ static void merged_element_search_call_cb(struct bContext *C, void *UNUSED(arg1)
 /** Merged element search menu
  * Created on activation of a merged or aggregated iconrow icon.
  */
-uiBlock *merged_element_search_menu(bContext *C, ARegion *ar, void *data)
+static uiBlock *merged_element_search_menu(bContext *C, ARegion *ar, void *data)
 {
   static char search[64] = "";
   uiBlock *block;
@@ -574,6 +579,17 @@ uiBlock *merged_element_search_menu(bContext *C, ARegion *ar, void *data)
   return block;
 }
 
+void merged_element_search_menu_invoke(bContext *C,
+                                       TreeElement *parent_te,
+                                       TreeElement *activate_te)
+{
+  MergedSearchData *select_data = MEM_callocN(sizeof(MergedSearchData), "merge_search_data");
+  select_data->parent_element = parent_te;
+  select_data->select_element = activate_te;
+
+  UI_popup_block_invoke(C, merged_element_search_menu, select_data, merged_element_search_free_cb);
+}
+
 static void object_select_cb(bContext *C,
                              ReportList *UNUSED(reports),
                              Scene *UNUSED(scene),



More information about the Bf-blender-cvs mailing list