Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2016-08-23 22:48:16 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2016-08-23 22:48:16 +0300
commitfe8b197269fda1b6747c022eb93b2781353008d5 (patch)
treed74239b0f4679d3dc4c3141bc7d9ec5957006582 /release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
parent7dc328e8a1cea0f1ea0b8848a38ce7521401ca8b (diff)
Fix T49150: make new 'operator categories' in search menu i18n-aware.
Diffstat (limited to 'release/scripts/modules/bl_i18n_utils/bl_extract_messages.py')
-rw-r--r--release/scripts/modules/bl_i18n_utils/bl_extract_messages.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
index 5a3eda567be..dc1ddbfe057 100644
--- a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
+++ b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
@@ -375,6 +375,7 @@ def dump_rna_messages(msgs, reports, settings, verbose=False):
walk_keymap_hierarchy(lvl[3], msgsrc)
# Dump Messages
+ operator_categories = {}
def process_cls_list(cls_list):
if not cls_list:
return
@@ -391,6 +392,16 @@ def dump_rna_messages(msgs, reports, settings, verbose=False):
cls_id = bl_rna.identifier + "." + cls_id
bl_rna = bl_rna.base
return cls_id
+
+ def operator_category(cls):
+ """Extract operators' categories, as displayed in 'search' space menu."""
+ # NOTE: keep in sync with C code in ui_searchbox_region_draw_cb__operator().
+ if issubclass(cls, bpy.types.OperatorProperties) and "_OT_" in cls.__name__:
+ cat_id = cls.__name__.split("_OT_")[0]
+ if cat_id not in operator_categories:
+ cat_str = cat_id.capitalize() + ":"
+ operator_categories[cat_id] = cat_str
+
if verbose:
print(cls_list)
cls_list.sort(key=full_class_id)
@@ -402,6 +413,7 @@ def dump_rna_messages(msgs, reports, settings, verbose=False):
if (cls in blacklist_rna_class) or issubclass(cls, bpy.types.Operator):
reports["rna_structs_skipped"].append(cls)
else:
+ operator_category(cls)
walk_class(cls)
# Recursively process subclasses.
process_cls_list(cls.__subclasses__())
@@ -409,6 +421,11 @@ def dump_rna_messages(msgs, reports, settings, verbose=False):
# Parse everything (recursively parsing from bpy_struct "class"...).
process_cls_list(bpy.types.ID.__base__.__subclasses__())
+ # Finalize generated 'operator categories' messages.
+ for cat_str in operator_categories.values():
+ process_msg(msgs, bpy.app.translations.contexts.operator_default, cat_str, "Generated operator category",
+ reports, check_ctxt_rna, settings)
+
# And parse keymaps!
from bpy_extras.keyconfig_utils import KM_HIERARCHY
walk_keymap_hierarchy(KM_HIERARCHY, "KM_HIERARCHY")