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

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormeta-androcto <meta.androcto1@gmail.com>2016-08-26 12:19:48 +0300
committermeta-androcto <meta.androcto1@gmail.com>2016-08-26 12:19:48 +0300
commitb877dcb6f644fbc4588e5bc75a7aaed6da9ca3cb (patch)
treeeaf3c6bdb794f9120a0828d80433d8bfe061786f
parent97211b21de806759e80c864502de6e719994b826 (diff)
3d view pie menus: clean up, remove folder structure & unneeded utils.py
-rw-r--r--space_view3d_pie_menus/__init__.py5
-rw-r--r--space_view3d_pie_menus/pie_align_menu.py (renamed from space_view3d_pie_menus/pie_align_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_animation_menu.py (renamed from space_view3d_pie_menus/pie_animation_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_apply_transform_menu.py (renamed from space_view3d_pie_menus/pie_apply_transform_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_delete_menu.py (renamed from space_view3d_pie_menus/pie_delete_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_editor_switch_menu.py (renamed from space_view3d_pie_menus/pie_editor_switch_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_manipulator_menu.py (renamed from space_view3d_pie_menus/pie_manipulator_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_modes_menu.py (renamed from space_view3d_pie_menus/pie_modes_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_orientation_menu.py (renamed from space_view3d_pie_menus/pie_orientation_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_origin_cursor.py (renamed from space_view3d_pie_menus/pie_origin_cursor/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_pivot_point_menu.py (renamed from space_view3d_pie_menus/pie_pivot_point_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_proportional_menu.py (renamed from space_view3d_pie_menus/pie_proportional_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_save_open_menu.py (renamed from space_view3d_pie_menus/pie_save_open_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_sculpt_menu.py (renamed from space_view3d_pie_menus/pie_sculpt_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_select_menu.py (renamed from space_view3d_pie_menus/pie_select_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_shading_menu.py (renamed from space_view3d_pie_menus/pie_shading_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_snap_menu.py (renamed from space_view3d_pie_menus/pie_snap_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/pie_views_numpad_menu.py (renamed from space_view3d_pie_menus/pie_views_numpad_menu/__init__.py)0
-rw-r--r--space_view3d_pie_menus/utils.py327
19 files changed, 3 insertions, 329 deletions
diff --git a/space_view3d_pie_menus/__init__.py b/space_view3d_pie_menus/__init__.py
index 0d264223..00afd179 100644
--- a/space_view3d_pie_menus/__init__.py
+++ b/space_view3d_pie_menus/__init__.py
@@ -23,8 +23,8 @@ bl_info = {
"author": "meta-androcto, pitiwazou, chromoly, italic",
"version": (1, 1, 3),
"blender": (2, 7, 7),
- "location": "",
- "description": "Pie Menu Activate",
+ "description": "Individual Pie Menu Activation List",
+ "location": "Addons Preferences",
"warning": "",
"wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
"Scripts/3D_interaction/viewport_pies",
@@ -245,6 +245,7 @@ def register():
if getattr(prefs, 'use_' + name):
register_submodule(mod)
+# Experimental Auto Expand Addons Preferences
import addon_utils
mod = addon_utils.addons_fake_modules.get(__name__)
diff --git a/space_view3d_pie_menus/pie_align_menu/__init__.py b/space_view3d_pie_menus/pie_align_menu.py
index a743c2c3..a743c2c3 100644
--- a/space_view3d_pie_menus/pie_align_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_align_menu.py
diff --git a/space_view3d_pie_menus/pie_animation_menu/__init__.py b/space_view3d_pie_menus/pie_animation_menu.py
index 9c2b6042..9c2b6042 100644
--- a/space_view3d_pie_menus/pie_animation_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_animation_menu.py
diff --git a/space_view3d_pie_menus/pie_apply_transform_menu/__init__.py b/space_view3d_pie_menus/pie_apply_transform_menu.py
index a3f9e519..a3f9e519 100644
--- a/space_view3d_pie_menus/pie_apply_transform_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_apply_transform_menu.py
diff --git a/space_view3d_pie_menus/pie_delete_menu/__init__.py b/space_view3d_pie_menus/pie_delete_menu.py
index f804c877..f804c877 100644
--- a/space_view3d_pie_menus/pie_delete_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_delete_menu.py
diff --git a/space_view3d_pie_menus/pie_editor_switch_menu/__init__.py b/space_view3d_pie_menus/pie_editor_switch_menu.py
index 2f206bf4..2f206bf4 100644
--- a/space_view3d_pie_menus/pie_editor_switch_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_editor_switch_menu.py
diff --git a/space_view3d_pie_menus/pie_manipulator_menu/__init__.py b/space_view3d_pie_menus/pie_manipulator_menu.py
index 2e3de4cf..2e3de4cf 100644
--- a/space_view3d_pie_menus/pie_manipulator_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_manipulator_menu.py
diff --git a/space_view3d_pie_menus/pie_modes_menu/__init__.py b/space_view3d_pie_menus/pie_modes_menu.py
index 01fde97a..01fde97a 100644
--- a/space_view3d_pie_menus/pie_modes_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_modes_menu.py
diff --git a/space_view3d_pie_menus/pie_orientation_menu/__init__.py b/space_view3d_pie_menus/pie_orientation_menu.py
index 17c13a5c..17c13a5c 100644
--- a/space_view3d_pie_menus/pie_orientation_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_orientation_menu.py
diff --git a/space_view3d_pie_menus/pie_origin_cursor/__init__.py b/space_view3d_pie_menus/pie_origin_cursor.py
index 553c8a9b..553c8a9b 100644
--- a/space_view3d_pie_menus/pie_origin_cursor/__init__.py
+++ b/space_view3d_pie_menus/pie_origin_cursor.py
diff --git a/space_view3d_pie_menus/pie_pivot_point_menu/__init__.py b/space_view3d_pie_menus/pie_pivot_point_menu.py
index b58d33f8..b58d33f8 100644
--- a/space_view3d_pie_menus/pie_pivot_point_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_pivot_point_menu.py
diff --git a/space_view3d_pie_menus/pie_proportional_menu/__init__.py b/space_view3d_pie_menus/pie_proportional_menu.py
index ea5ddeed..ea5ddeed 100644
--- a/space_view3d_pie_menus/pie_proportional_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_proportional_menu.py
diff --git a/space_view3d_pie_menus/pie_save_open_menu/__init__.py b/space_view3d_pie_menus/pie_save_open_menu.py
index 2b8e4e87..2b8e4e87 100644
--- a/space_view3d_pie_menus/pie_save_open_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_save_open_menu.py
diff --git a/space_view3d_pie_menus/pie_sculpt_menu/__init__.py b/space_view3d_pie_menus/pie_sculpt_menu.py
index 88b7d501..88b7d501 100644
--- a/space_view3d_pie_menus/pie_sculpt_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_sculpt_menu.py
diff --git a/space_view3d_pie_menus/pie_select_menu/__init__.py b/space_view3d_pie_menus/pie_select_menu.py
index b837b2aa..b837b2aa 100644
--- a/space_view3d_pie_menus/pie_select_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_select_menu.py
diff --git a/space_view3d_pie_menus/pie_shading_menu/__init__.py b/space_view3d_pie_menus/pie_shading_menu.py
index 8c9f1f50..8c9f1f50 100644
--- a/space_view3d_pie_menus/pie_shading_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_shading_menu.py
diff --git a/space_view3d_pie_menus/pie_snap_menu/__init__.py b/space_view3d_pie_menus/pie_snap_menu.py
index 9e58e608..9e58e608 100644
--- a/space_view3d_pie_menus/pie_snap_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_snap_menu.py
diff --git a/space_view3d_pie_menus/pie_views_numpad_menu/__init__.py b/space_view3d_pie_menus/pie_views_numpad_menu.py
index fe2b8258..fe2b8258 100644
--- a/space_view3d_pie_menus/pie_views_numpad_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_views_numpad_menu.py
diff --git a/space_view3d_pie_menus/utils.py b/space_view3d_pie_menus/utils.py
deleted file mode 100644
index 045a158a..00000000
--- a/space_view3d_pie_menus/utils.py
+++ /dev/null
@@ -1,327 +0,0 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-# <pep8 compliant>
-
-import bpy
-
-
-class AddonPreferences:
- _module = {}
-
- @classmethod
- def get_prefs(cls, package=''):
- if not package:
- package = __package__
- if '.' in package:
- pkg, name = package.split('.')
- # key = cls.__qualname__
- if package in cls._module:
- mod = cls._module[package]
- else:
- import importlib
- mod = cls._module[package] = importlib.import_module(pkg)
- return mod.get_addon_preferences(name)
- else:
- context = bpy.context
- return context.user_preferences.addons[package].preferences
-
- @classmethod
- def register(cls):
- if '.' in __package__:
- cls.get_prefs()
-
- @classmethod
- def unregister(cls):
- cls._module.clear()
-
-
-class SpaceProperty:
- """
- bpy.types.Space #Add the virtual property in
-
- # Instantiation
- space_prop = SpaceProperty(
- [[bpy.types.SpaceView3D, 'lock_cursor_location',
- bpy.props.BoolProperty()]])
-
- # When drawing
- def draw(self, context):
- layout = self.layout
- view = context.space_data
- prop = space_prop.get_prop(view, 'lock_cursor_location')
- layout.prop(prop, 'lock_cursor_location')
-
- # register / unregister
- def register():
- space_prop.register()
-
- def unregister():
- space_prop.unregister()
- """
-
- space_types = {
- 'EMPTY': bpy.types.Space,
- 'NONE': bpy.types.Space,
- 'CLIP_EDITOR': bpy.types.SpaceClipEditor,
- 'CONSOLE': bpy.types.SpaceConsole,
- 'DOPESHEET_EDITOR': bpy.types.SpaceDopeSheetEditor,
- 'FILE_BROWSER': bpy.types.SpaceFileBrowser,
- 'GRAPH_EDITOR': bpy.types.SpaceGraphEditor,
- 'IMAGE_EDITOR': bpy.types.SpaceImageEditor,
- 'INFO': bpy.types.SpaceInfo,
- 'LOGIC_EDITOR': bpy.types.SpaceLogicEditor,
- 'NLA_EDITOR': bpy.types.SpaceNLA,
- 'NODE_EDITOR': bpy.types.SpaceNodeEditor,
- 'OUTLINER': bpy.types.SpaceOutliner,
- 'PROPERTIES': bpy.types.SpaceProperties,
- 'SEQUENCE_EDITOR': bpy.types.SpaceSequenceEditor,
- 'TEXT_EDITOR': bpy.types.SpaceTextEditor,
- 'TIMELINE': bpy.types.SpaceTimeline,
- 'USER_PREFERENCES': bpy.types.SpaceUserPreferences,
- 'VIEW_3D': bpy.types.SpaceView3D,
- }
- # space_types_r = {v: k for k, v in space_types.items()}
-
- def __init__(self, *props):
- """
- :param props: [[space_type, attr, prop], ...]
- [[Or string bpy.types.Space, String,
- bpy.props.***()恋PropertyGroup], ...]
- bpy.types.PropertyGroup In advance if you use register_class()so
- It is registered
- :type props: list[list]
- """
- self.props = [list(elem) for elem in props]
- for elem in self.props:
- space_type = elem[0]
- if isinstance(space_type, str):
- elem[0] = self.space_types[space_type]
- self.registered = []
- self.save_pre = self.save_post = self.load_post = None
-
- def gen_save_pre(self):
- @bpy.app.handlers.persistent
- def save_pre(dummy):
- wm = bpy.context.window_manager
- for (space_type, attr, prop), (cls, wm_prop_name) in zip(
- self.props, self.registered):
- if wm_prop_name not in wm:
- continue
- d = {p['name']: p for p in wm[wm_prop_name]} # not p.name
- for screen in bpy.data.screens:
- ls = []
- for area in screen.areas:
- for space in area.spaces:
- if isinstance(space, space_type):
- key = str(space.as_pointer())
- if key in d:
- ls.append(d[key])
- else:
- ls.append({})
- screen[wm_prop_name] = ls
- self.save_pre = save_pre
- return save_pre
-
- def gen_save_post(self):
- @bpy.app.handlers.persistent
- def save_post(dummy):
- # clean up
- for cls, wm_prop_name in self.registered:
- for screen in bpy.data.screens:
- if wm_prop_name in screen:
- del screen[wm_prop_name]
- self.save_post = save_post
- return save_post
-
- def gen_load_post(self):
- @bpy.app.handlers.persistent
- def load_post(dummy):
- from collections import OrderedDict
- for (space_type, attr, prop), (cls, wm_prop_name) in zip(
- self.props, self.registered):
- d = OrderedDict()
- for screen in bpy.data.screens:
- if wm_prop_name not in screen:
- continue
-
- spaces = []
- for area in screen.areas:
- for space in area.spaces:
- if isinstance(space, space_type):
- spaces.append(space)
-
- for space, p in zip(spaces, screen[wm_prop_name]):
- key = p['name'] = str(space.as_pointer())
- d[key] = p
- if d:
- bpy.context.window_manager[wm_prop_name] = list(d.values())
-
- # clean up
- for cls, wm_prop_name in self.registered:
- for screen in bpy.data.screens:
- if wm_prop_name in screen:
- del screen[wm_prop_name]
-
- self.load_post = load_post
- return load_post
-
- def get_all(self, space_type=None, attr=''):
- """
- :param space_type: If the property is only only one optional
- :type space_type: bpy.types.Space
- :param attr: If the property is only only one optional
- :type attr: str
- :return:
- :rtype:
- """
- if space_type and isinstance(space_type, str):
- space_type = self.space_types.get(space_type)
- context = bpy.context
- for (st, attri, prop), (cls, wm_prop_name) in zip(
- self.props, self.registered):
- if (st == space_type or issubclass(space_type, st) or
- not space_type and len(self.props) == 1):
- if attri == attr or not attr and len(self.props) == 1:
- seq = getattr(context.window_manager, wm_prop_name)
- return seq
-
- def get(self, space, attr=''):
- """
- :type space: bpy.types.Space
- :param attr: If the property is only only one optional
- :type attr: str
- :return:
- :rtype:
- """
- seq = self.get_all(type(space), attr)
- if seq is not None:
- key = str(space.as_pointer())
- if key not in seq:
- item = seq.add()
- item.name = key
- return seq[key]
-
- def _property_name(self, space_type, attr):
- return space_type.__name__.lower() + '_' + attr
-
- def register(self):
- import inspect
- from bpy.types import WindowManager
- wm = bpy.context.window_manager
-
- for space_type, attr, prop in self.props:
- if inspect.isclass(prop) and \
- issubclass(prop, bpy.types.PropertyGroup):
- cls = prop
- else:
- name = 'WM_PG_' + space_type.__name__ + '_' + attr
- cls = type(name, (bpy.types.PropertyGroup,), {attr: prop})
- bpy.utils.register_class(cls)
-
- collection_prop = bpy.props.CollectionProperty(type=cls)
- wm_prop_name = self._property_name(space_type, attr)
- setattr(WindowManager, wm_prop_name, collection_prop)
-
- self.registered.append((cls, wm_prop_name))
-
- def gen():
- def get(self):
- seq = getattr(wm, wm_prop_name)
- key = str(self.as_pointer())
- if key not in seq:
- item = seq.add()
- item.name = key
- if prop == cls:
- return seq[key]
- else:
- return getattr(seq[key], attr)
-
- def set(self, value):
- seq = getattr(wm, wm_prop_name)
- key = str(self.as_pointer())
- if key not in seq:
- item = seq.add()
- item.name = key
- if prop != cls: # PropertyGroup It is not writable
- return setattr(seq[key], attr, value)
-
- return property(get, set)
-
- setattr(space_type, attr, gen())
-
- bpy.app.handlers.save_pre.append(self.gen_save_pre())
- bpy.app.handlers.save_post.append(self.gen_save_post())
- bpy.app.handlers.load_post.append(self.gen_load_post())
-
- def unregister(self):
- from bpy.types import WindowManager
- wm = bpy.context.window_manager
-
- bpy.app.handlers.save_pre.remove(self.save_pre)
- bpy.app.handlers.save_post.remove(self.save_post)
- bpy.app.handlers.load_post.remove(self.load_post)
-
- for (space_type, attr, prop), (cls, wm_prop_name) in zip(
- self.props, self.registered):
- delattr(WindowManager, wm_prop_name)
- if wm_prop_name in wm:
- del wm[wm_prop_name]
- delattr(space_type, attr)
-
- if prop != cls:
- # originally bpy.types.PropertyGroup Skip Nara
- bpy.utils.unregister_class(cls)
-
- for screen in bpy.data.screens:
- if wm_prop_name in screen:
- del screen[wm_prop_name]
-
- self.registered.clear()
-
-
-def operator_call(op, *args, _scene_update=True, **kw):
- """vawm Than
- operator_call(bpy.ops.view3d.draw_nearest_element,
- 'INVOKE_DEFAULT', type='ENABLE', _scene_update=False)
- """
- import bpy
- from _bpy import ops as ops_module
-
- BPyOpsSubModOp = op.__class__
- op_call = ops_module.call
- context = bpy.context
-
- # Get the operator from blender
- wm = context.window_manager
-
- # run to account for any rna values the user changes.
- if _scene_update:
- BPyOpsSubModOp._scene_update(context)
-
- if args:
- C_dict, C_exec, C_undo = BPyOpsSubModOp._parse_args(args)
- ret = op_call(op.idname_py(), C_dict, kw, C_exec, C_undo)
- else:
- ret = op_call(op.idname_py(), None, kw)
-
- if 'FINISHED' in ret and context.window_manager == wm:
- if _scene_update:
- BPyOpsSubModOp._scene_update(context)
-
- return ret