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
AgeCommit message (Collapse)Author
2021-12-14Cleanup: correct unbalanced doxygen groupsCampbell Barton
Also add groups in some files.
2021-12-02Cleanup: move public doc-strings into headers for 'python'Campbell Barton
2021-09-16Fix memory leak if an error occurred assigning id-property sequenceCampbell Barton
2021-08-31Fix T91088: Assigning custom property value in python resets UI dataHans Goudey
Assigning a new value to an IDProperty with the Python API would free the entire contents of the existing property, which unfortunately happened to include the UI data. The fix is to extract the UI data from the existing property before freeing its contents. An alternative would be adding another argument to `IDP_FreePropertyContent_ex`, but this solution is clearer and doesn't increase complexity elsewhere.
2021-08-27Refactor IDProperty UI data storageHans Goudey
The storage of IDProperty UI data (min, max, default value, etc) is quite complicated. For every property, retrieving a single one of these values involves three string lookups. First for the "_RNA_UI" group property, then another for a group with the property's name, then for the data value name. Not only is this inefficient, it's hard to reason about, unintuitive, and not at all self-explanatory. This commit replaces that system with a UI data struct directly in the IDProperty. If it's not used, the only cost is of a NULL pointer. Beyond storing the description, name, and RNA subtype, derived structs are used to store type specific UI data like min and max. Note that this means that addons using (abusing) the `_RNA_UI` custom property will have to be changed. A few places in the addons repository will be changed after this commit with D9919. **Before** Before, first the _RNA_UI subgroup is retrieved the _RNA_UI group, then the subgroup for the original property, then specific UI data is accessed like any other IDProperty. ``` prop = rna_idprop_ui_prop_get(idproperties_owner, "prop_name", create=True) prop["min"] = 1.0 ``` **After** After, the `id_properties_ui` function for RNA structs returns a python object specifically for managing an IDProperty's UI data. ``` ui_data = idproperties_owner.id_properties_ui("prop_name") ui_data.update(min=1.0) ``` In addition to `update`, there are now other functions: - `as_dict`: Returns a dictionary of the property's UI data. - `clear`: Removes the property's UI data. - `update_from`: Copy UI data between properties, even if they have different owners. Differential Revision: https://developer.blender.org/D9697
2021-07-27Cleanup: pass sizeof array element to PyC_AsArrayCampbell Barton
Replace the is_double argument which was only used for single/double precision floats. This allows supporting different sized int types more easily.
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-28Cleanup: repeated terms in code comments & error messagesCampbell Barton
2021-06-26Cleanup: full sentences in comments, improve comment formattingCampbell Barton
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-14Cleanup: rename id to owner_id for python id propertiesJacques Lucke
This is consistent with the naming in `PointerRNA`.
2021-05-14PyAPI: use iterators for ID property methods (keys, values & items)Campbell Barton
- Matches changes in Python 3.x dictionary methods. - Iterating now raises a run-time error if the property-group changes size during iteration. - IDPropertyGroup.iteritems() has been removed. - IDPropertyGroup View & Iterator types have been added. - Some set functionality from dict_keys/values/items aren't yet supported (isdisjoint method and boolean set style operations). Proposed as part of T85675.
2021-05-14Fix memory leak in IDPropertyGroup.pop()Campbell Barton
When popping ID-property groups/arrays, ID-property was removed but not freed. Now the value is converted to a native Python type and freed.
2021-05-11Fix T88190: Freed memory use when iterating over id-propertiesCampbell Barton
The id-property iterator referenced a PyObject pointer without increasing it's user count - allowing for errors if the value goes out of scope during iteration.
2021-05-11Fix memory leak in Python IDproperty iteratorCampbell Barton
Looping over IDProperty keys or calling iteritems leaked memory. Error in original Python idproperty support from 8768707610fbc1cea2bde069cdfd6d3f3e2fc522
2021-02-13Fix T85573: Building with Python 3.10a5 failsCampbell Barton
Replace deprecated _PyUnicode_AsString{AndSize} usage. T83626 still needs to be resolved before 3.10 is usable.
2021-02-12PyAPI: use PyModule_AddType utility functionCampbell Barton
2021-02-12PyAPI: remove Python 3.7x compatibility codeCampbell Barton
This removes Python version checks needed to build with 3.8+ and 3.7x. Ref D10381
2020-12-15Cleanup: reduce indirect DNA header inclusionCampbell Barton
Remove DNA headers, using forward declarations where possible. Also removed duplicate header, header including it's self and unnecessary inclusion of libc system headers from BKE header.
2020-12-09Fix another id-property name length checkCampbell Barton
Missed this in 6c9263d817b7b4dcd4d6e1f365d1db0a83de6e51
2020-12-09Fix off by one error in id-property name validationCampbell Barton
The Python API accepted a name with 64 bytes, clipping it to 63.
2020-12-09Revert "Fix T78823: Slash in custom property name does not work"Campbell Barton
This reverts commit cbae82ba960a0baaae6437b176a310f078ce07d8. This change introduced the following problems: - We could no longer reliably duplicate or use an existing custom property names. - We could no longer assume a bone or ID name can be used in a custom-property. - Importers that support custom properties (such as FBX) could fail with an exception creating custom properties.
2020-11-11Cleanup: clang-formatCampbell Barton
2020-11-11Cleanup: use preprocessor version check for PyTypeObject declarationCampbell Barton
While `tp_print` was deprecated, Python 3.8+ uses this for 'tp_vectorcall_offset' which wasn't stated in the comment from efd71aad4f22ec0073d80b8dd296015d3f395aa8. Instead of suppressing clang-tidy, use preprocessor a check since this properly represents the difference between Python versions.
2020-09-22Fix T78823: Slash in custom property name does not workHans Goudey
Some characters: `'`, `"`, and `\`, can cause problems with RNA paths. Instead of using more complicated handling to deal with those cases, we can just prevent these characters from being used in custom property names. This commit checks for these characters to `idp_try_read_name`, where other checks like length are already done. Differential Revision: https://developer.blender.org/D8839
2020-08-20Cleanup: use const variables where possible in the Python APICampbell Barton
2020-08-07Cleanup: Python, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/python` module. No functional changes.
2020-04-01Cleanup: use doxy sections for 'idprop' APICampbell Barton
2019-12-20Cleanup: remove redundant 'char *' castsCampbell Barton
2019-10-16Cleanup: warnings building with Python 3.8Campbell Barton
2019-09-30Cleanup: spellingCampbell Barton
2019-09-25LibOverride: Fix 'overridable' flag desapearing when setting IDProp from py ↵Bastien Montagne
code. Do not see any reason not to copy over the flag of the old, existing IDProp to the new one when assigning (e.g. `C.object['prop'] = 0.5` would nuke that IDProp flag).
2019-08-14Cleanup: move trailing comments to avoid wrapping codeCampbell Barton
Some statements were split across multiple lines because of their trailing comments. In most cases it's clearer to put the comments above.
2019-05-16Refactor: Simplify ID Property freeingJacques Lucke
This also makes `IDP_CopyProperty` the "opposite" of `IDP_FreeProperty`, which is what I'd expect. Two refactoring steps: * rename IDP_FreeProperty to IDP_FreePropertyContent * new IDP_FreeProperty function that actually frees the property Reviewers: brecht Differential Revision: https://developer.blender.org/D4872
2019-04-29Cleanup: comments (long lines) in pythonCampbell Barton
2019-04-17ClangFormat: format '#if 0' code in source/Campbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-03-29Cleanup: style, use braces for the Python APICampbell Barton
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-03Cleanup: trailing commasCampbell Barton
Needed for clan-format not to wrap onto one line.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-26Cleanup: blank lines over doxy headersCampbell Barton
2019-01-26Cleanup: remove redundant BKE/BLI/BIF headersCampbell Barton
2019-01-19Cleanup: add trailing commasCampbell Barton
Prevents clang-format merging into a single line.
2018-10-09Fix misuse of Py_INCREF in module creation.mano-wii
Differential Revision: https://developer.blender.org/D3697
2018-10-08Cleanup: rename checks for Python struct stringsCampbell Barton
Using 'format' prefix made this read as if t was for string formatting. Use 'PyC_StructFmt' prefix instead since these values are compatible with formatting from Python's 'struct' module.
2018-10-07CPython: use format char utilities in idprop_py_apimano-wii
2018-09-19Spelling fixes in comments and descriptions, patch by luzpaz.Brecht Van Lommel
Differential Revision: https://developer.blender.org/D3700
2018-09-13Cleanup: use PyImport_GetModuleDictCampbell Barton
Replace direct access using PyThreadState_GET