[Bf-codereview] Fix for #36226, Select Linked works not in touch with Prefs. (issue 13244048)

lukas.toenne at gmail.com lukas.toenne at gmail.com
Thu Sep 12 15:28:58 CEST 2013


Reviewers: bf-codereview_blender.org, ideasman42,

Description:
3 parts:

1) To allow distinguishing uninitialized (not set) properties in the
keymap items, a few changes to the RNA struct comparison function are
needed: Instead of allowing only strict/non-strict comparison of 2
properties A and B in a struct, this now has 3 modes:
* STRICT: compare only the actual property values (same as 'strict'
before)
* UNSET_MATCH_ANY: if either A or B is unset, consider them a match
(same as non-strict before)
* UNSET_MATCH_NONE: if one property is set and the other not, consider
them a mismatch.

The new UNSET_MATCH_NONE mode is useful for keymaps, because it allows
keeping user-defined property values in the keymap even if they match
the default property value (see wm_keymap_diff function in wm_keymap.c)

2) Fix for the RNA_property_is_idprop function: This was checking the
"magic" flag, which is really only useful internally in RNA. Use the
PROP_IDPROPERTY flag instead to identify id properties which can be
unset (i.e. delete the underlying id property storage). The function is
not used anywhere sofar, so no risk of functionality breaking.

3) A new operator is added for unsetting ID properties in the RMB
context menu, next to the "Reset" operator. This only works on ID
properties and deletes the ID property storage, so that the default
value is used.

In the user preferences for keymaps the properties are shown in an
inactive layout to indicate that the default value is used (which some
operators such as the "select linked" op from the report use to trigger
automatic behavior). When the user sets a property it gets set and stays
that way until explicitly "unset" using the new operator.

Please review this at https://codereview.appspot.com/13244048/

Affected files (+101, -13 lines):
   source/blender/editors/interface/interface_handlers.c
   source/blender/editors/interface/interface_ops.c
   source/blender/editors/interface/interface_templates.c
   source/blender/makesrna/RNA_access.h
   source/blender/makesrna/intern/rna_access.c
   source/blender/windowmanager/intern/wm_keymap.c




More information about the Bf-codereview mailing list