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
2022-06-02Cleanup: remove "<pep8 compliant>" from headersCampbell Barton
It can be assumed that all scripts comply with basic pep8 formatting regarding white-space, indentation etc. Also remove note in best practices page & update `tests/python/pep8.py`. If we want to exclude some scripts from make format, this can be done by adding them to `ignore_files` in: source/tools/utils_maintenance/autopep8_format_paths.py Or using `# nopep8` for to ignore for individual lines. Ref T98554
2022-04-20Cleanup: run autopep8 on release/scripts/modules/Campbell Barton
2022-04-06Cleanup: use context.path_resolve instead of eval(..)Campbell Barton
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2021-10-25UI: Improve layout of custom property edit panelHans Goudey
This patch makes the layout of the custom property panel more coherent with the rest of the property editor interface, makes it less busy, allows more space for the buttons for the actual properties, and simplifies editing values of unsupported property types or long arrays. - Remove the box around each property. - Use an non-embossed X icon for deleting. - Use an "edit" icon instead of the text for the meta-data edit operator. The "gear" icon used for editing isn't ideal here. - Increase the max array length for drawing the values directly to 8. - Add an "Edit Property Value" operator for dictionaries or longer arrays. - Replace the "Library Override" text with an icon. - Use a proper split factor, the same as the rest of the UI. Differential Revision: https://developer.blender.org/D12805
2021-10-20Cleanup: trailing space, use single quotes for enumsCampbell Barton
2021-10-09Cleanup: Change variable name, comment formattingHans Goudey
2021-09-23Custom Properties: Rewrite edit operator, improve UXHans Goudey
This commit changes the custom property edit operator to make editing different properties types more obvious and expose more of the data, made more easily possible by the recent UI data refactor. Previously, the operator guessed the type you wanted based on what you wrote in a text box. That was problematic, you couldn't make a string property with a value of `1234`, and you had to know about the Python syntax for lists in order to create an array property. It was also slow and error prone; it was too easy to make a typo. Improvements compared to the old operator: - A type drop-down to choose between the property types. - Step and precision values are exposed. - Buttons that have the correct type based on the property. - String properties no longer display min, max, etc. buttons. - Generally works in more cases. The old operator tended to break. - Choose array length with a slider. - Easy to choose to use python evaluation when necessary. - Code is commented, split up, and much easier to understand. The custom property's value is purposefully not exposed, since the Edit operator is for changing the property's metadata now, rather than the value itself. Though in the "Python" mode the value is still available. More improvements are possible in the future, like exposing different subtypes, and improving the UI of the custom properties panel. Differential Revision: https://developer.blender.org/D12435
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-06-08PyAPI: use keyword only argumentsCampbell Barton
Use keyword only arguments for the following functions. - addon_utils.module_bl_info 2nd arg `info_basis`. - addon_utils.modules 1st `module_cache`, 2nd arg `refresh`. - addon_utils.modules_refresh 1st arg `module_cache`. - bl_app_template_utils.activate 1nd arg `template_id`. - bl_app_template_utils.import_from_id 2nd arg `ignore_not_found`. - bl_app_template_utils.import_from_path 2nd arg `ignore_not_found`. - bl_keymap_utils.keymap_from_toolbar.generate 2nd & 3rd args `use_fallback_keys` & `use_reset`. - bl_keymap_utils.platform_helpers.keyconfig_data_oskey_from_ctrl 2nd arg `filter_fn`. - bl_ui_utils.bug_report_url.url_prefill_from_blender 1st arg `addon_info`. - bmesh.types.BMFace.copy 1st & 2nd args `verts`, `edges`. - bmesh.types.BMesh.calc_volume 1st arg `signed`. - bmesh.types.BMesh.from_mesh 2nd..4th args `face_normals`, `use_shape_key`, `shape_key_index`. - bmesh.types.BMesh.from_object 3rd & 4th args `cage`, `face_normals`. - bmesh.types.BMesh.transform 2nd arg `filter`. - bmesh.types.BMesh.update_edit_mesh 2nd & 3rd args `loop_triangles`, `destructive`. - bmesh.types.{BMVertSeq,BMEdgeSeq,BMFaceSeq}.sort 1st & 2nd arg `key`, `reverse`. - bmesh.utils.face_split 4th..6th args `coords`, `use_exist`, `example`. - bpy.data.libraries.load 2nd..4th args `link`, `relative`, `assets_only`. - bpy.data.user_map 1st..3rd args `subset`, `key_types, `value_types`. - bpy.msgbus.subscribe_rna 5th arg `options`. - bpy.path.abspath 2nd & 3rd args `start` & `library`. - bpy.path.clean_name 2nd arg `replace`. - bpy.path.ensure_ext 3rd arg `case_sensitive`. - bpy.path.module_names 2nd arg `recursive`. - bpy.path.relpath 2nd arg `start`. - bpy.types.EditBone.transform 2nd & 3rd arg `scale`, `roll`. - bpy.types.Operator.as_keywords 1st arg `ignore`. - bpy.types.Struct.{keyframe_insert,keyframe_delete} 2nd..5th args `index`, `frame`, `group`, `options`. - bpy.types.WindowManager.popup_menu 2nd & 3rd arg `title`, `icon`. - bpy.types.WindowManager.popup_menu_pie 3rd & 4th arg `title`, `icon`. - bpy.utils.app_template_paths 1st arg `subdir`. - bpy.utils.app_template_paths 1st arg `subdir`. - bpy.utils.blend_paths 1st..3rd args `absolute`, `packed`, `local`. - bpy.utils.execfile 2nd arg `mod`. - bpy.utils.keyconfig_set 2nd arg `report`. - bpy.utils.load_scripts 1st & 2nd `reload_scripts` & `refresh_scripts`. - bpy.utils.preset_find 3rd & 4th args `display_name`, `ext`. - bpy.utils.resource_path 2nd & 3rd arg `major`, `minor`. - bpy.utils.script_paths 1st..4th args `subdir`, `user_pref`, `check_all`, `use_user`. - bpy.utils.smpte_from_frame 2nd & 3rd args `fps`, `fps_base`. - bpy.utils.smpte_from_seconds 2nd & 3rd args `fps`, `fps_base`. - bpy.utils.system_resource 2nd arg `subdir`. - bpy.utils.time_from_frame 2nd & 3rd args `fps`, `fps_base`. - bpy.utils.time_to_frame 2nd & 3rd args `fps`, `fps_base`. - bpy.utils.units.to_string 4th..6th `precision`, `split_unit`, `compatible_unit`. - bpy.utils.units.to_value 4th arg `str_ref_unit`. - bpy.utils.user_resource 2nd & 3rd args `subdir`, `create` - bpy_extras.view3d_utils.location_3d_to_region_2d 4th arg `default`. - bpy_extras.view3d_utils.region_2d_to_origin_3d 4th arg `clamp`. - gpu.offscreen.unbind 1st arg `restore`. - gpu_extras.batch.batch_for_shader 4th arg `indices`. - gpu_extras.batch.presets.draw_circle_2d 4th arg `segments`. - gpu_extras.presets.draw_circle_2d 4th arg `segments`. - imbuf.types.ImBuf.resize 2nd arg `resize`. - imbuf.write 2nd arg `filepath`. - mathutils.kdtree.KDTree.find 2nd arg `filter`. - nodeitems_utils.NodeCategory 3rd & 4th arg `descriptions`, `items`. - nodeitems_utils.NodeItem 2nd..4th args `label`, `settings`, `poll`. - nodeitems_utils.NodeItemCustom 1st & 2nd arg `poll`, `draw`. - rna_prop_ui.draw 5th arg `use_edit`. - rna_prop_ui.rna_idprop_ui_get 2nd arg `create`. - rna_prop_ui.rna_idprop_ui_prop_clear 3rd arg `remove`. - rna_prop_ui.rna_idprop_ui_prop_get 3rd arg `create`. - rna_xml.xml2rna 2nd arg `root_rna`. - rna_xml.xml_file_write 4th arg `skip_typemap`.
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.
2020-12-09Fix custom property UI handling names with quotes and back-slashesCampbell Barton
Custom property names wasn't escaping strings, causing exceptions editing custom properties with characters that needed to be escaped.
2020-10-29UI: Improved alignment of labels and buttonsYevgeny Makarov
Improved alignment of labels with other buttons. Differential Revision: https://developer.blender.org/D9058 Reviewed by Julian Eisel
2020-08-18Fix IDProps definition still being editable in liboverrides.Bastien Montagne
One should be able to edit overridable IDProps values, but never their settings/definitions. Note that being able to add new IDProps to overrides is still a TODO. Reported by Josephbburg (@Josephbburg) over blenderchat, thanks.
2020-06-30Custom Properties: support default values for stringsDemeter Dzadik
Differential Revision: https://developer.blender.org/D8102
2020-01-13Fix T73062: Custom properties misalignedWilliam Reynish
The UI layout here was mistakingly made left aligned and very hard to read when viewed inside the Sidebar.
2019-09-25LibOverride: tweaks to custom props UI.Bastien Montagne
For now, do not allow to add custom props to overriding IDs (this should be possible in the future, by getting basic correct behavior here is already fairly hard, no reason to complicate things even more). Also, properly disallow editing of existing custom props in overriding IDs.
2019-08-14Custom Properties: allow changing the property UI to color picker.Alexander Gavrilov
To fully support storing colors as a custom property, it is necessary to allow switching the property UI to the standard color picker button. That means in effect supporting custom property subtype values. Change RNA_property_subtype to look for a 'subtype' string field in _RNA_UI and parse it as an enum value. To minimize performance impact, only do it if the property is an array; also, don't use the custom subtype during RNA path parsing. On the python side, allow setting some most useful seeming values from the custom property settings editor. Also, since some color picker code seems to run into a risk of buffer overruns if the array size is wrong, check the size in the UI layout code to be safe. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D5475
2019-08-13Custom Properties: officially support int and float arrays in the UI.Alexander Gavrilov
In some rare cases it is convenient to store a short array value as a custom property, e.g. a vector or color. For example, it may be helpful when importing/exporting certain formats that support custom or nonstandard attributes on objects. The custom property storage already can handle arrays in order to support properties defined via python. The only thing missing is UI support (and some bugs), and this patch fixes that: - Allow editing short array properties via Custom Properties panel. - Fix a UI layout sizing bug triggered by the previous item. - Fix a dependency graph bug with drivers using such properties. - Make RNA_*_get_default_array code robust in case of size mismatch. - Support custom default values for array properties, allowing both an array and a scalar value. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D5457
2019-07-28Cleanup: pep8Campbell Barton
2019-06-15Cleanup: Rename: Static Override -> Library Override.Bastien Montagne
Better to make internal code naming match official/UI naming to some extent, this will reduce confusion in the future. This is 'breaking' scripts and files that would use that feature, but since it is not yet officially supported nor exposed in 2.80, as far as that release is concerned, it is effectively a 'no functional changes' commit.
2019-05-19UI: add Panel.bl_order property to control order of panels for add-onsBrecht Van Lommel
This fixes poor Cycles panel ordering, with Freestyle and Custom Properties appearing at the top. For most cases order of registration is still the easiest way to control order and it's recommended to keep using that. This is mainly to solve a few cases where we want a few built-in panels to appear below add-on panels.
2019-05-09Cleanup: unused args/vars/imports in modulesCampbell Barton
2019-04-16Cleanup: use keyword only args to rna_idprop_ui_createCampbell Barton
2019-04-16Python: add a utility function for creating custom properties.Alexander Gavrilov
Creating a fully functional custom property requires also setting up its limits, description, default value and static override status. It is complex enough to warrant providing an official utility. Currently boolean properties are technically int, but the utility pretends they are separate in case that eventually they are. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D4620
2018-12-21RNA: naming, user-preferences -> preferencesCampbell Barton
2018-12-19RNA: support setting default values for custom properties.Alexander Gavrilov
NLA requires a usable default value for all properties that are to be animated via it, without any exceptions. This is the real cause of T36496: using the default of 0 for a scale related custom property obviously doesn't work. Thus, to really fix this it is necessary to support configurable default values for custom properties, which are very frequently used in rigs for auxiliary settings. For common use it is enough to support this for scalar float and integer properties. The default can be set via the custom property configuration popup, or a right click menu option. In addition, to help in updating old rigs, an operator that saves current values as defaults for all object and bone properties is added. Reviewers: campbellbarton, brecht Differential Revision: https://developer.blender.org/D4084
2018-10-08UI: new icon set by Andrzej Ambroz.Brecht Van Lommel
This is a monochrome icon set, with a more modern look and icons for various features that did not have a proper icon before.
2018-08-28RNA: UILayout.split(..) 'percentage' to 'factor'Campbell Barton
Misleading name since it's between 0..1. Use as a keyword argument to prepare for keyword only args. Also document that leaving unset has special behavior.
2018-08-28UI: text keyword argument to labelCampbell Barton
Prepare for keyword only args
2018-07-19Cleanup: styleCampbell Barton
2018-07-17UI: Single-column and flow layout for Scene propertiesVuk Gardašević
See D3532
2018-07-13UI: only show API defined custom properties when Developer Extras is on.Brecht Van Lommel
These are intended to behave just like any other builting property, so no to always show them in the Custom Properties panels for regular users.
2017-04-19Fix 'API defined' ID properties still having 'remove' button in UI.Bastien Montagne
We could not edit them, but still could delete them, which makes no sense, API-defined properties are similar to class members, removing them from single instances is pure garbage. And it was broken anyway. Found by @a.romanov while checking on T51198, thanks.
2015-11-30Fix T46891: Error removing PropertyGroupCampbell Barton
2015-09-10Fix T46048: Custom properties UI redraw issueCampbell Barton
Adding/removing custom properties didn't refresh elsewhere in the UI.
2015-03-25Fix T44026: ID prop delete leaves names in _RNA_UICampbell Barton
2015-01-29cleanup: pep8Campbell Barton
also remove empty class parenthesis
2014-07-22Cleanup: pep8 & redundant varsCampbell Barton
2014-06-06Fix T40520: Properties panel in properties region in 3D view does not go away.Bastien Montagne
Ignore '_RNA_UI' IDP...
2014-02-25Fix T38778: Properties from bpy.props could be edited as custom propsCampbell Barton
2014-02-25Fix for custom property editor when property id's contained quotesCampbell Barton
Adds bpy.utils.escape_identifier()
2013-02-15And more UI messages issues fixing... Thanks again to Gabriel Gazzán and ↵Bastien Montagne
Leon Cheung!
2013-02-08disable translations for some python buttons.Campbell Barton
2013-01-23fix [#29950] Linked proxy armature object properties can't be editedCampbell Barton
2012-01-01use `props` all over for operator properties varsCampbell Barton
2011-07-10cleanup for python scripts - unused vars and importsCampbell Barton
2011-06-17IDProperty python module updateCampbell Barton
- add support for IDProp array slicing, but not resizing. - rename array attribute type to typecode and use chars 'f', 'd', 'i' which match pythons array module. (was using int's which only have a meaning internally). - rename function 'convert_to_pyobject' to 'to_dict' and 'to_list' for IDProp group and array types respectively. - remove 'len' array attribute, calling len(array) is fine.
2011-01-01pep8 cleanupCampbell Barton
2010-12-19fix for own error [#25299] custom properties not showing in viedw3d panelCampbell Barton
error made when fixing id pinning, for non-properties space.