Commit Graph

289 Commits

Author SHA1 Message Date
1b870bce85 Tool System: remove custom tool registration
API is not ready for beta (likely to change).
2018-11-28 10:40:02 +11:00
0f1a63d34c PyAPI: add bpy.utils.execfile
Wraps `importlib.util`, avoids duplicate preset loading calls.
2018-11-18 11:49:03 +11:00
0f21b64b1a WM: fix hard coded rename
Currently the filenames are used when setting keymaps.
This hard coded naming meant the preset and setting function
need to be kept in sync.

Prefer to not have hard coded replacements which need to be duplicated.
2018-11-16 09:37:18 +11:00
7aae28af2d Keymaps: refactor loading of default keymap, fix bugs.
This refactors loading of key configurations to clear and refill existing
ones, rather than adding a new one and then removing the old one.

This fixes broken loading of non-default configurations after recent changes,
and prepares for future changes to make it possible to dynamically change
key configurations based on user preferences.
2018-11-13 18:22:07 +01:00
04cdf8d040 Keymap: skip loading the keymap preset in background mode
Caused a crash on exit and isn't needed.
2018-11-09 11:43:45 +11:00
3064da1200 Keymap: move builtin keymaps from C to Python
This should be purely an implementation change,
for end users there should be no functional difference.

The entire key configuration is in one file with ~5000 lines of code.
Mostly avoiding code duplication and preserve comments and utility
functions from the C code.
It's a bit long but for searching and editing it's also convenient to
have it all in one file.

Notes:

- Actual keymap is shared by blender / blender_legacy
  and stored in `keymap_data/blender_default.py`

  This only generates JSON-like data to be passed into
  `keyconfig_import_from_data`, allowing other presets to load and
  manipulate the default keymap.

- Each preset defines 'keyconfig_data'
  which can be shared between presets.

- Some of the utility functions for generating keymap items still
  need to be ported over to Python.

- Some keymap items can be made into loops (marked as TODO).

See: D3907
2018-11-09 11:33:06 +11:00
108475dc01 PyAPI: Support for custom tool registration
Added a module bpy.utils.toolsystem which only exposes ToolDef,
to avoid scripts referencing bl_ui internals.
2018-10-18 17:13:22 +11:00
09aa446100 Merge branch 'master' into blender2.8 2018-09-13 20:15:18 +10:00
254067106e PyAPI: remove operator methods that leak memory 2018-09-13 20:10:56 +10:00
ff432a410a PyAPI: use brief description for operator repr
Only include description in docstring.

Also avoid using op_get_rna.
2018-09-13 19:59:15 +10:00
af1cf00003 Merge branch 'master' into blender2.8 2018-09-13 18:19:24 +10:00
a6fc718029 PyAPI: add API call to get an operators type
Getting the instance leaks memory and was only meant to be used for
generating docs.
2018-09-13 18:16:06 +10:00
a43ebc63fa Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/collision.c
2018-09-03 17:44:36 +02:00
4da2acae3a Spelling fixes in comments and descriptions, patch by luzpaz.
Differential Revision: https://developer.blender.org/D3668
2018-09-03 16:55:01 +02:00
d28d202fd1 PyAPI: remove bpy.utils.register_module
Remove bpy.utils.register_module() & logic tracked RNA classes.
2018-07-11 23:13:37 +02:00
f7bce99e4d Keymap: support for reading/writing keymaps as data
Instead of running code to create a keymap, store them as data.
This allows for keymaps to share content as well as running
transformations at load time.
2018-07-07 19:53:02 +02:00
49b86bcfec Merge branch 'master' into blender2.8 2018-07-05 07:54:47 +02:00
969111f9b5 Cleanup: pep8 2018-07-03 22:35:37 +02:00
00fc1d70a7 Merge branch 'master' into blender2.8 2018-07-03 06:58:34 +02:00
b66aa0b0a6 Cleanup: pep8 2018-07-03 06:48:44 +02:00
25b7bdb6a9 Merge branch 'master' into blender2.8 2018-06-30 09:29:38 +02:00
5c0d8bcdc7 Cleanup: use f-string 2018-06-30 09:25:23 +02:00
8c269d94f4 Limit updates to active view layer only
This is rather uncommon when operator will operate on a non-active view layer,
so there is no need to do full scene update.

This change solves lag first time using Extrude operator in edit mode.
2018-04-20 10:03:27 +02:00
f228a08d02 merge from master 2018-02-26 22:49:30 +01:00
d416e56e70 Fix T54029: Wrong preset name display in win32 2018-02-26 19:05:01 +11:00
58be6d282d Merge branch 'master' into blender2.8 2018-01-14 17:29:38 +11:00
8d3efb2b90 Fix T53772: Presets don't support colons 2018-01-14 14:31:39 +11:00
7a8ac1b09b WM: message bus replacement for property notifiers
Use dynamically generated message publish/subscribe
so buttons and manipulators update properly.

This resolves common glitches where manipulators weren't updating
as well as the UI when add-ons exposed properties which
hard coded listeners weren't checking for.

Python can also publish/scribe changes via `bpy.msgbus`.

See D2917
2017-12-04 20:42:34 +11:00
ad7fb1c028 Cleanup: Python imports
Split over lines to diff more easily.
2017-11-29 18:05:41 +11:00
2aa2bec43a Fix T52442: bl_app_templates_system not working
Portable builds LOCAL files need to be
treated as system instead of using as a fallback to USER templates.
2017-09-15 05:57:37 +10:00
b07e983b61 PyAPI: Add bpy.utils.register_classes_factory
Avoids having boiler plate register/unregister functions.
2017-09-05 00:24:29 +10:00
4003409430 Fix factory setup using user scripts path still 2017-07-27 22:22:26 +10:00
edc6bec9d6 PyAPI: Skip user scripts w/ factory-startup
Adds bpy.app.factory_startup,
used to check if user scripts should be loaded.
2017-07-25 20:52:08 +10:00
d1dc5e0a53 PyAPI: utility for creating register, unregister
This simplifies creation of register, unregister functions that
simply forward calls submodules.
2017-07-25 17:34:34 +10:00
4c7f4e4662 PyAPI: minor path init simplification 2017-03-29 15:07:41 +11:00
2830f687aa Cleanup: line length, assignment 2017-03-26 21:52:25 +11:00
15143a7464 Cleanup: simplify script path assignment 2017-03-26 11:31:39 +11:00
f8e02c75ba PyAPI: debug-python check for missing class register
Moving to manual class registration means its easier to accidentally
miss registering classes.

Now detect missing class registration
and warn when running with `--debug-python`
2017-03-26 11:28:10 +11:00
f68145011f WM: Application Templates
This adds the ability to switch between different application-configurations
without interfering with Blender's normal operation.

This commit doesn't include any templates,
so its mostly to allow collaboration for the Blender 101 project
and other custom configurations.

Application templates can be installed & selected from the file menu.

Other details:

- The `bl_app_template_utils` module handles template activation
  (similar to `addon_utils`).
- The `bl_app_override` module is a general module
  to assist scripts overriding parts of Blender in reversible way.

See docs:
https://docs.blender.org/manual/en/dev/advanced/app_templates.html

See patch: D2565
2017-03-25 10:04:04 +11:00
096602d3a8 bpy.path.display_name: strip spaces
Useful for Python module paths that can't start with numbers.
2017-03-24 06:55:44 +11:00
8f0dc3cef6 Fix T50052: bpy.utils.unregister_module doesn't unregister classes of submodules in reload scenario.
reload case would clear TypeMap before unregistering addons, which made
all calls to unregister_module() to do absolutely nothing.
2016-11-18 15:15:46 +01:00
ca983d1825 Cleanup: pep8 2016-07-30 09:00:41 +10:00
3569ea03d8 Cleanup: Python imports 2016-06-28 12:13:16 +10:00
421ec97276 Docs: Support out-of-source reference-API builds
This was originally supported, however relative links to examples & templates made it fail.
Now files in the source tree are copied to the build-dir, with ".." replaced with "__"
to avoid having to mirror Blender's source-layout in the Sphinx build-dir.

Also skip uploading the built docs when an SSH user-name isn't passed to sphinx_doc_gen.sh
instead of aborting (so people w/o SSH access to our servers can use the shell-script).
2016-06-12 11:31:28 +10:00
24e887cd93 Fix script_paths(check_all=True) missing script paths
BLENDER_SYSTEM_SCRIPTS wasn't included in bpy.utils.script_paths()
2016-05-14 03:27:35 +10:00
2fae1719f8 Fix T47986: OBJ Import fails w/ imagepath encoding 2016-03-29 18:30:08 +11:00
d924998d3e Cleanup: pep8 2016-02-01 00:47:10 +11:00
aa523f8435 Fix os.path.is_subdir w/ trailing slash 2016-01-13 02:58:53 +11:00
f7b8bc45b2 Python: use keyword only args for addon_utils 2015-11-16 09:41:42 +11:00
dbc29cb147 Cleanup: remove unused profiling from bpy 2015-11-16 09:40:56 +11:00