[Bf-extensions-cvs] [4279754] master: view 3d pie menus: fixes for T48709
meta-androcto
noreply at git.blender.org
Thu Jul 28 12:56:53 CEST 2016
Commit: 4279754095490a301a4621b939367532b4e4f7c3
Author: meta-androcto
Date: Thu Jul 28 20:56:27 2016 +1000
Branches: master
https://developer.blender.org/rBAC4279754095490a301a4621b939367532b4e4f7c3
view 3d pie menus: fixes for T48709
===================================================================
M space_view3d_pie_menus/__init__.py
M space_view3d_pie_menus/pie_delete_menu/__init__.py
M space_view3d_pie_menus/pie_editor_switch_menu/__init__.py
M space_view3d_pie_menus/pie_save_open_menu/__init__.py
M space_view3d_pie_menus/pie_select_menu/__init__.py
M space_view3d_pie_menus/pie_views_numpad_menu/__init__.py
===================================================================
diff --git a/space_view3d_pie_menus/__init__.py b/space_view3d_pie_menus/__init__.py
index e47ad24..8184232 100644
--- a/space_view3d_pie_menus/__init__.py
+++ b/space_view3d_pie_menus/__init__.py
@@ -125,18 +125,13 @@ def unregister_submodule(mod):
class UIToolsPreferences(AddonPreferences):
bl_idname = __name__
- align_box_draw = BoolProperty(
- name='Box Draw',
- description='If applied patch: patch/ui_layout_box.patch',
- default=False)
-
def draw(self, context):
layout = self.layout
for mod in sub_modules:
mod_name = mod.__name__.split('.')[-1]
info = mod.bl_info
- column = layout.column(align=self.align_box_draw)
+ column = layout.column()
box = column.box()
# first stage
@@ -195,12 +190,9 @@ class UIToolsPreferences(AddonPreferences):
# Details and settings
if getattr(self, 'use_' + mod_name):
prefs = get_addon_preferences(mod_name)
- if prefs and hasattr(prefs, 'draw'):
- if self.align_box_draw:
- box = column.box()
- else:
- box = box.column()
+ if prefs and hasattr(prefs, 'draw'):
+ box = box.column()
prefs.layout = box
try:
prefs.draw(context)
@@ -210,9 +202,7 @@ class UIToolsPreferences(AddonPreferences):
del prefs.layout
row = layout.row()
- sub = row.row()
- sub.alignment = 'RIGHT'
- sub.prop(self, 'align_box_draw')
+ row.label("End of Pie Menu Activations")
for mod in sub_modules:
diff --git a/space_view3d_pie_menus/pie_delete_menu/__init__.py b/space_view3d_pie_menus/pie_delete_menu/__init__.py
index 3053dfd..f804c87 100644
--- a/space_view3d_pie_menus/pie_delete_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_delete_menu/__init__.py
@@ -71,21 +71,8 @@ class PieDelete(Menu):
box.operator("mesh.delete", text="Only Faces", icon='UV_FACESEL').type = 'ONLY_FACE'
box.operator("mesh.remove_doubles", text="Remove Doubles", icon='ORTHO')
-# Limited Dissolve
-
-
-class DeleteLimitedDissolve(Operator):
- bl_idname = "delete.limiteddissolve"
- bl_label = "Delete Limited Dissolve"
- bl_options = {'REGISTER', 'UNDO'}
-
- def execute(self, context):
- bpy.ops.mesh.dissolve_limited
- return {'FINISHED'}
-
classes = (
PieDelete,
- DeleteLimitedDissolve,
)
addon_keymaps = []
diff --git a/space_view3d_pie_menus/pie_editor_switch_menu/__init__.py b/space_view3d_pie_menus/pie_editor_switch_menu/__init__.py
index 303c27e..dcc1e08 100644
--- a/space_view3d_pie_menus/pie_editor_switch_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_editor_switch_menu/__init__.py
@@ -40,7 +40,7 @@ from bpy.props import (
)
-class AreaPieMenu(Menu):
+class AreaPieMenu(bpy.types.Menu):
bl_idname = "INFO_MT_window_pie"
bl_label = "Pie Menu"
bl_description = "Window Pie Menus"
@@ -49,14 +49,14 @@ class AreaPieMenu(Menu):
self.layout.operator(AreaTypePieOperator.bl_idname, icon="PLUGIN")
-class AreaTypePieOperator(Operator):
+class AreaTypePieOperator(bpy.types.Operator):
bl_idname = "wm.area_type_pie_operator"
bl_label = "Editor Type"
bl_description = "This is pie menu of editor type change"
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
- bpy.ops.wm.call_menu_pie(name=AreaTypePie.bl_idname)
+ bpy.ops.wm.call_menu_pie(name=AreaTypeEditor.bl_idname)
return {'FINISHED'}
diff --git a/space_view3d_pie_menus/pie_save_open_menu/__init__.py b/space_view3d_pie_menus/pie_save_open_menu/__init__.py
index 8863073..718e3e3 100644
--- a/space_view3d_pie_menus/pie_save_open_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_save_open_menu/__init__.py
@@ -21,8 +21,6 @@
bl_info = {
"name": "Hotkey: 'Ctrl S'",
"description": "Save/Open & File Menus",
- # "author": "pitiwazou, meta-androcto",
- # "version": (0, 1, 0),
"blender": (2, 77, 0),
"location": "All Editors",
"warning": "",
@@ -125,36 +123,49 @@ class ExternalData(Menu):
layout.operator("file.report_missing_files", text="Report Missing Files")
layout.operator("file.find_missing_files", text="Find Missing Files")
-# Save Incremental
+# Save Incremental
class FileIncrementalSave(Operator):
bl_idname = "file.save_incremental"
bl_label = "Save Incremental"
- bl_description = "Save Files with _001, _002 extension"
+ bl_description = "Save First!then Incremental, .blend will get _001 extension"
bl_options = {"REGISTER"}
+ @classmethod
+ def poll(cls, context):
+ return (bpy.data.filepath is not "")
+
def execute(self, context):
f_path = bpy.data.filepath
- if f_path.find("_") != -1:
- # fix for cases when there is an underscore in the name like my_file.blend
+ b_name = bpy.path.basename(f_path)
+
+ if b_name and b_name.find("_") != -1:
+ # except in cases when there is an underscore in the name like my_file.blend
try:
- str_nb = f_path.rpartition("_")[-1].rpartition(".blend")[0]
+ str_nb = b_name.rpartition("_")[-1].rpartition(".blend")[0]
int_nb = int(str(str_nb))
new_nb = str_nb.replace(str(int_nb), str(int_nb + 1))
output = f_path.replace(str_nb, new_nb)
i = 1
while os.path.isfile(output):
- str_nb = f_path.rpartition("_")[-1].rpartition(".blend")[0]
+ str_nb = b_name.rpartition("_")[-1].rpartition(".blend")[0]
i += 1
new_nb = str_nb.replace(str(int_nb), str(int_nb + i))
output = f_path.replace(str_nb, new_nb)
except ValueError:
output = f_path.rpartition(".blend")[0] + "_001" + ".blend"
else:
+ # no underscore in the name or saving a nameless (.blend) file
output = f_path.rpartition(".blend")[0] + "_001" + ".blend"
- bpy.ops.wm.save_as_mainfile(filepath=output)
+
+ # fix for saving in a directory without privileges
+ try:
+ bpy.ops.wm.save_as_mainfile(filepath=output)
+ except:
+ self.report({'WARNING'}, "File could not be saved. Check the System Console for errors")
+ return {'CANCELLED'}
self.report(
{'INFO'}, "File: {0} - Created at: {1}".format(
diff --git a/space_view3d_pie_menus/pie_select_menu/__init__.py b/space_view3d_pie_menus/pie_select_menu/__init__.py
index 90d8255..16ed8a1 100644
--- a/space_view3d_pie_menus/pie_select_menu/__init__.py
+++ b/space_view3d_pie_menus/pie_select_menu/__init__.py
@@ -91,39 +91,58 @@ class PieSelectionsEM(Menu):
layout = self.layout
pie = layout.menu_pie()
# 4 - LEFT
- pie.operator("view3d.select_circle", text="Circle Select", icon='BORDER_LASSO')
+ pie.operator("mesh.loop_multi_select", text="Select Ring", icon='ZOOM_PREVIOUS').ring = True
# 6 - RIGHT
- pie.operator("view3d.select_border", text="Border Select", icon='BORDER_RECT')
+ pie.operator("mesh.loop_multi_select", text="Select Loop", icon='ZOOM_PREVIOUS').ring = False
# 2 - BOTTOM
pie.operator("mesh.select_all", text="Invert Selection", icon='ZOOM_PREVIOUS').action = 'INVERT'
# 8 - TOP
pie.operator("mesh.select_all", text="De/Select All", icon='RENDER_REGION').action = 'TOGGLE'
# 7 - TOP - LEFT
+ pie.operator("view3d.select_circle", text="Circle Select", icon='BORDER_LASSO')
+ # 9 - TOP - RIGHT
+ pie.operator("view3d.select_border", text="Border Select", icon='BORDER_RECT')
+ # 1 - BOTTOM - LEFT
box = pie.split().column()
row = box.row(align=True)
box.operator("mesh.select_nth", text="Checker Select", icon='PARTICLE_POINT')
box.operator("mesh.loop_to_region", text="Select Loop Inner Region", icon='FACESEL')
box.operator("mesh.select_similar", text="Select Similar", icon='GHOST')
- # 9 - TOP - RIGHT
- pie.operator("object.selectallbyselection", text="Complete Select", icon='RENDER_REGION')
- # 1 - BOTTOM - LEFT
- pie.operator("mesh.loop_multi_select", text="Select Ring", icon='ZOOM_PREVIOUS').ring = True
# 3 - BOTTOM - RIGHT
- pie.operator("mesh.loop_multi_select", text="Select Loop", icon='ZOOM_PREVIOUS').ring = False
+ pie.menu("object.selectallbyselection", text="Multi Select", icon='RENDER_REGION')
# Select All By Selection
-class SelectAllBySelection(Operator):
+class SelectAllBySelection(Menu):
bl_idname = "object.selectallbyselection"
bl_label = "Verts Edges Faces"
bl_options = {'REGISTER', 'UNDO'}
- def execute(self, context):
+ def draw(self, context):
+ layout = self.layout
+ layout.operator_context = 'INVOKE_REGION_WIN'
+
+ prop = layout.operator("wm.context_set_value", text="Vertex Select",
+ icon='VERTEXSEL')
+ prop.value = "(True, False, False)"
+ prop.data_path = "tool_settings.mesh_select_mode"
+
+ prop = layout.operator("wm.context_set_value", text="Edge Select",
+ icon='EDGESEL')
+ prop.value = "(False, True, False)"
+ prop.data_path = "tool_settings.mesh_select_mode"
+
+ prop = layout.operator("wm.context_set_value", text="Face Select",
+ icon='FACESEL')
+ prop.value = "(False, False, True)"
+ prop.data_path = "tool_settings.mesh_select_mode"
- bpy.ops.mesh.select_all(action='TOGGLE')
- bpy.ops.mesh.select_all(action='TOGGLE')
- return {'FINISHED'}
+ prop = layout.operator("wm.context_set_value",
+ text="Vertex & Edge & Face Select",
+
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list