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:
authorlijenstina <lijenstina@gmail.com>2017-06-06 22:53:03 +0300
committerlijenstina <lijenstina@gmail.com>2017-06-06 22:53:03 +0300
commit800dc7e3306413effcd1b683f7eeca0d602a78cf (patch)
treef23443eee822a61fffa1f4948e43ab82d51b76bc
parent473d074b34b66d6f674bb2f06153533c9b636fd1 (diff)
Magic UV: Replace deprecated imp call, mode fix
Bump version to 4.3.1 Replace the deprecated imp calls with importlib Imports as tuples Some minor cleanup Fix crash with MUV_TexProjProject by checking for edit mode, add a poll for active object of type Mesh Fix crash with MUV_PreserveUVAspect not having an image in the faces loop tex data in certain cases
-rw-r--r--uv_magic_uv/__init__.py48
-rw-r--r--uv_magic_uv/muv_common.py5
-rw-r--r--uv_magic_uv/muv_cpuv_ops.py14
-rw-r--r--uv_magic_uv/muv_cpuv_selseq_ops.py16
-rw-r--r--uv_magic_uv/muv_fliprot_ops.py10
-rw-r--r--uv_magic_uv/muv_menu.py5
-rw-r--r--uv_magic_uv/muv_mirroruv_ops.py10
-rw-r--r--uv_magic_uv/muv_mvuv_ops.py5
-rw-r--r--uv_magic_uv/muv_packuv_ops.py11
-rw-r--r--uv_magic_uv/muv_preferences.py15
-rw-r--r--uv_magic_uv/muv_preserve_uv_aspect.py17
-rw-r--r--uv_magic_uv/muv_props.py19
-rw-r--r--uv_magic_uv/muv_texlock_ops.py9
-rw-r--r--uv_magic_uv/muv_texproj_ops.py15
-rw-r--r--uv_magic_uv/muv_transuv_ops.py4
-rw-r--r--uv_magic_uv/muv_unwrapconst_ops.py11
-rw-r--r--uv_magic_uv/muv_uvbb_ops.py13
-rw-r--r--uv_magic_uv/muv_wsuv_ops.py5
18 files changed, 139 insertions, 93 deletions
diff --git a/uv_magic_uv/__init__.py b/uv_magic_uv/__init__.py
index dd236667..01d3582a 100644
--- a/uv_magic_uv/__init__.py
+++ b/uv_magic_uv/__init__.py
@@ -20,43 +20,45 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
bl_info = {
"name": "Magic UV",
- "author": "Nutti, Mifth, Jace Priester, kgeogeo, mem, Keith (Wahooney) Boshoff, McBuff, MaxRobinot",
- "version": (4, 3),
+ "author": "Nutti, Mifth, Jace Priester, kgeogeo, mem, "
+ "Keith (Wahooney) Boshoff, McBuff, MaxRobinot",
+ "version": (4, 3, 1),
"blender": (2, 77, 0),
"location": "See Add-ons Preferences",
"description": "UV Manipulator Tools. See Add-ons Preferences for details",
"warning": "",
"support": "COMMUNITY",
- "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/UV/Magic_UV",
+ "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/"
+ "Py/Scripts/UV/Magic_UV",
"tracker_url": "https://github.com/nutti/Magic-UV",
"category": "UV"
}
if "bpy" in locals():
- import imp
- imp.reload(muv_preferences)
- imp.reload(muv_menu)
- imp.reload(muv_common)
- imp.reload(muv_props)
- imp.reload(muv_cpuv_ops)
- imp.reload(muv_cpuv_selseq_ops)
- imp.reload(muv_fliprot_ops)
- imp.reload(muv_transuv_ops)
- imp.reload(muv_uvbb_ops)
- imp.reload(muv_mvuv_ops)
- imp.reload(muv_texproj_ops)
- imp.reload(muv_packuv_ops)
- imp.reload(muv_texlock_ops)
- imp.reload(muv_mirroruv_ops)
- imp.reload(muv_wsuv_ops)
- imp.reload(muv_unwrapconst_ops)
- imp.reload(muv_preserve_uv_aspect)
+ import importlib
+ importlib.reload(muv_preferences)
+ importlib.reload(muv_menu)
+ importlib.reload(muv_common)
+ importlib.reload(muv_props)
+ importlib.reload(muv_cpuv_ops)
+ importlib.reload(muv_cpuv_selseq_ops)
+ importlib.reload(muv_fliprot_ops)
+ importlib.reload(muv_transuv_ops)
+ importlib.reload(muv_uvbb_ops)
+ importlib.reload(muv_mvuv_ops)
+ importlib.reload(muv_texproj_ops)
+ importlib.reload(muv_packuv_ops)
+ importlib.reload(muv_texlock_ops)
+ importlib.reload(muv_mirroruv_ops)
+ importlib.reload(muv_wsuv_ops)
+ importlib.reload(muv_unwrapconst_ops)
+ importlib.reload(muv_preserve_uv_aspect)
else:
from . import muv_preferences
from . import muv_menu
diff --git a/uv_magic_uv/muv_common.py b/uv_magic_uv/muv_common.py
index 66f2a54b..121915e8 100644
--- a/uv_magic_uv/muv_common.py
+++ b/uv_magic_uv/muv_common.py
@@ -20,9 +20,8 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
import bpy
from . import muv_props
diff --git a/uv_magic_uv/muv_cpuv_ops.py b/uv_magic_uv/muv_cpuv_ops.py
index fbf1764f..3ef1a9de 100644
--- a/uv_magic_uv/muv_cpuv_ops.py
+++ b/uv_magic_uv/muv_cpuv_ops.py
@@ -20,13 +20,17 @@
__author__ = "Nutti <nutti.metro@gmail.com>, Jace Priester"
__status__ = "production"
-__version__ = "4.3"
+__version__ = "4.3.1"
__date__ = "1 Apr 2017"
-
import bpy
import bmesh
-from bpy.props import StringProperty, BoolProperty, IntProperty, EnumProperty
+from bpy.props import (
+ StringProperty,
+ BoolProperty,
+ IntProperty,
+ EnumProperty,
+ )
from . import muv_common
@@ -399,8 +403,8 @@ class MUV_CPUVObjPasteUV(bpy.types.Operator):
if len(props.src_uvs) != len(dest_uvs):
self.report(
{'WARNING'},
- "Number of faces is different from copied "
- + "(src:%d, dest:%d)"
+ "Number of faces is different from copied " +
+ "(src:%d, dest:%d)"
% (len(props.src_uvs), len(dest_uvs))
)
return {'CANCELLED'}
diff --git a/uv_magic_uv/muv_cpuv_selseq_ops.py b/uv_magic_uv/muv_cpuv_selseq_ops.py
index 37e9f8de..bbb9de5a 100644
--- a/uv_magic_uv/muv_cpuv_selseq_ops.py
+++ b/uv_magic_uv/muv_cpuv_selseq_ops.py
@@ -20,13 +20,17 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
import bpy
import bmesh
-from bpy.props import StringProperty, BoolProperty, IntProperty, EnumProperty
+from bpy.props import (
+ StringProperty,
+ BoolProperty,
+ IntProperty,
+ EnumProperty,
+ )
from . import muv_common
@@ -180,8 +184,8 @@ class MUV_CPUVSelSeqPasteUV(bpy.types.Operator):
if self.strategy == 'N_N' and len(props.src_uvs) != len(dest_uvs):
self.report(
{'WARNING'},
- "Number of selected faces is different from copied faces "
- + "(src:%d, dest:%d)"
+ "Number of selected faces is different from copied faces " +
+ "(src:%d, dest:%d)"
% (len(props.src_uvs), len(dest_uvs)))
return {'CANCELLED'}
diff --git a/uv_magic_uv/muv_fliprot_ops.py b/uv_magic_uv/muv_fliprot_ops.py
index 597ee2a6..2c72d643 100644
--- a/uv_magic_uv/muv_fliprot_ops.py
+++ b/uv_magic_uv/muv_fliprot_ops.py
@@ -20,13 +20,15 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
import bpy
import bmesh
-from bpy.props import BoolProperty, IntProperty
+from bpy.props import (
+ BoolProperty,
+ IntProperty,
+ )
from . import muv_common
diff --git a/uv_magic_uv/muv_menu.py b/uv_magic_uv/muv_menu.py
index fd4ef205..b177e9c8 100644
--- a/uv_magic_uv/muv_menu.py
+++ b/uv_magic_uv/muv_menu.py
@@ -20,9 +20,8 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
import bpy
from . import muv_cpuv_ops
diff --git a/uv_magic_uv/muv_mirroruv_ops.py b/uv_magic_uv/muv_mirroruv_ops.py
index d0a98b87..5fc2ac4c 100644
--- a/uv_magic_uv/muv_mirroruv_ops.py
+++ b/uv_magic_uv/muv_mirroruv_ops.py
@@ -20,12 +20,14 @@
__author__ = "Keith (Wahooney) Boshoff, Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
import bpy
-from bpy.props import EnumProperty, FloatProperty
+from bpy.props import (
+ EnumProperty,
+ FloatProperty,
+ )
import bmesh
from mathutils import Vector
from . import muv_common
diff --git a/uv_magic_uv/muv_mvuv_ops.py b/uv_magic_uv/muv_mvuv_ops.py
index 2eb0991f..192d7f21 100644
--- a/uv_magic_uv/muv_mvuv_ops.py
+++ b/uv_magic_uv/muv_mvuv_ops.py
@@ -20,9 +20,8 @@
__author__ = "kgeogeo, mem, Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
import bpy
import bmesh
diff --git a/uv_magic_uv/muv_packuv_ops.py b/uv_magic_uv/muv_packuv_ops.py
index 06e79e7a..829bf605 100644
--- a/uv_magic_uv/muv_packuv_ops.py
+++ b/uv_magic_uv/muv_packuv_ops.py
@@ -20,9 +20,8 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
from math import fabs
from collections import defaultdict
@@ -30,7 +29,11 @@ from collections import defaultdict
import bpy
import bmesh
import mathutils
-from bpy.props import FloatProperty, FloatVectorProperty, BoolProperty
+from bpy.props import (
+ FloatProperty,
+ FloatVectorProperty,
+ BoolProperty,
+ )
from mathutils import Vector
from . import muv_common
diff --git a/uv_magic_uv/muv_preferences.py b/uv_magic_uv/muv_preferences.py
index 7e13c6ea..f80ad28e 100644
--- a/uv_magic_uv/muv_preferences.py
+++ b/uv_magic_uv/muv_preferences.py
@@ -20,11 +20,14 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
-
-from bpy.props import BoolProperty, FloatProperty, FloatVectorProperty
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
+
+from bpy.props import (
+ BoolProperty,
+ FloatProperty,
+ FloatVectorProperty,
+ )
from bpy.types import AddonPreferences
@@ -44,7 +47,7 @@ class MUV_Preferences(AddonPreferences):
# for Texture Projection
texproj_canvas_padding = FloatVectorProperty(
name="Canvas Padding",
- description="Canvas Padding.",
+ description="Canvas Padding",
size=2,
max=50.0,
min=0.0,
diff --git a/uv_magic_uv/muv_preserve_uv_aspect.py b/uv_magic_uv/muv_preserve_uv_aspect.py
index 0fbb820d..bc9ce3eb 100644
--- a/uv_magic_uv/muv_preserve_uv_aspect.py
+++ b/uv_magic_uv/muv_preserve_uv_aspect.py
@@ -20,9 +20,8 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
import bpy
import bmesh
@@ -38,6 +37,7 @@ class MUV_PreserveUVAspect(bpy.types.Operator):
bl_idname = "uv.muv_preserve_uv_aspect"
bl_label = "Preserve UV Aspect"
+ bl_description = "Choose Image"
bl_options = {'REGISTER', 'UNDO'}
dest_img_name = StringProperty(options={'HIDDEN'})
@@ -48,6 +48,9 @@ class MUV_PreserveUVAspect(bpy.types.Operator):
return obj and obj.type == 'MESH'
def execute(self, context):
+ # Note: the current system only works if the
+ # f[tex_layer].image doesn't return None
+ # which will happen in certain cases
obj = context.active_object
bm = bmesh.from_edit_mesh(obj.data)
@@ -57,6 +60,7 @@ class MUV_PreserveUVAspect(bpy.types.Operator):
if not bm.loops.layers.uv:
self.report({'WARNING'}, "Object must have more than one UV map")
return {'CANCELLED'}
+
uv_layer = bm.loops.layers.uv.verify()
tex_layer = bm.faces.layers.tex.verify()
@@ -72,6 +76,9 @@ class MUV_PreserveUVAspect(bpy.types.Operator):
info[f[tex_layer].image]['faces'].append(f)
for img in info:
+ if img is None:
+ continue
+
src_img = img
ratio = Vector((
dest_img.size[0] / src_img.size[0],
@@ -86,6 +93,9 @@ class MUV_PreserveUVAspect(bpy.types.Operator):
info[img]['origin'] = origin
for img in info:
+ if img is None:
+ continue
+
for f in info[img]['faces']:
f[tex_layer].image = dest_img
for l in f.loops:
@@ -112,6 +122,7 @@ class MUV_PreserveUVAspectMenu(bpy.types.Menu):
def draw(self, _):
layout = self.layout
+
# create sub menu
for key in bpy.data.images.keys():
layout.operator(
diff --git a/uv_magic_uv/muv_props.py b/uv_magic_uv/muv_props.py
index 10e14614..3fdbdf00 100644
--- a/uv_magic_uv/muv_props.py
+++ b/uv_magic_uv/muv_props.py
@@ -20,12 +20,15 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
import bpy
-from bpy.props import FloatProperty, EnumProperty, BoolProperty
+from bpy.props import (
+ FloatProperty,
+ EnumProperty,
+ BoolProperty,
+ )
DEBUG = False
@@ -109,13 +112,13 @@ def init_props(scene):
default=False)
scene.muv_texproj_tex_magnitude = FloatProperty(
name="Magnitude",
- description="Texture Magnitude.",
+ description="Texture Magnitude",
default=0.5,
min=0.0,
max=100.0)
scene.muv_texproj_tex_image = EnumProperty(
name="Image",
- description="Texture Image.",
+ description="Texture Image",
items=get_loaded_texture_name)
scene.muv_texproj_tex_transparency = FloatProperty(
name="Transparency",
@@ -125,11 +128,11 @@ def init_props(scene):
max=1.0)
scene.muv_texproj_adjust_window = BoolProperty(
name="Adjust Window",
- description="Size of renderered texture is fitted to window.",
+ description="Size of renderered texture is fitted to window",
default=True)
scene.muv_texproj_apply_tex_aspect = BoolProperty(
name="Texture Aspect Ratio",
- description="Apply Texture Aspect ratio to displayed texture.",
+ description="Apply Texture Aspect ratio to displayed texture",
default=True)
diff --git a/uv_magic_uv/muv_texlock_ops.py b/uv_magic_uv/muv_texlock_ops.py
index a3ddda2b..f3ff499e 100644
--- a/uv_magic_uv/muv_texlock_ops.py
+++ b/uv_magic_uv/muv_texlock_ops.py
@@ -20,11 +20,14 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
import math
-from math import atan2, cos, sqrt, sin, fabs
+from math import (
+ atan2, cos,
+ sqrt, sin, fabs,
+ )
import bpy
import bmesh
diff --git a/uv_magic_uv/muv_texproj_ops.py b/uv_magic_uv/muv_texproj_ops.py
index 08b1d919..7b796e81 100644
--- a/uv_magic_uv/muv_texproj_ops.py
+++ b/uv_magic_uv/muv_texproj_ops.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
from collections import namedtuple
@@ -229,12 +229,22 @@ class MUV_TexProjProject(bpy.types.Operator):
bl_description = "Project Texture"
bl_options = {'REGISTER', 'UNDO'}
+ @classmethod
+ def poll(cls, context):
+ obj = context.active_object
+ return obj is not None and obj.type == "MESH"
+
def execute(self, context):
sc = context.scene
+ if context.mode != "EDIT_MESH":
+ self.report({'WARNING'}, "Mesh must be in Edit mode")
+ return {'CANCELLED'}
+
if sc.muv_texproj_tex_image == "None":
self.report({'WARNING'}, "No textures are selected")
return {'CANCELLED'}
+
_, region, space = muv_common.get_space(
'VIEW_3D', 'WINDOW', 'VIEW_3D')
@@ -249,6 +259,7 @@ class MUV_TexProjProject(bpy.types.Operator):
if not bm.loops.layers.uv:
self.report({'WARNING'}, "Object must have more than one UV map")
return {'CANCELLED'}
+
uv_layer = bm.loops.layers.uv.verify()
tex_layer = bm.faces.layers.tex.verify()
diff --git a/uv_magic_uv/muv_transuv_ops.py b/uv_magic_uv/muv_transuv_ops.py
index e1083edc..095fa99b 100644
--- a/uv_magic_uv/muv_transuv_ops.py
+++ b/uv_magic_uv/muv_transuv_ops.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro@gmail.com>, Mifth, MaxRobinot"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
from collections import OrderedDict
diff --git a/uv_magic_uv/muv_unwrapconst_ops.py b/uv_magic_uv/muv_unwrapconst_ops.py
index d18634cd..86686090 100644
--- a/uv_magic_uv/muv_unwrapconst_ops.py
+++ b/uv_magic_uv/muv_unwrapconst_ops.py
@@ -18,13 +18,16 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
import bpy
import bmesh
-from bpy.props import BoolProperty, EnumProperty, FloatProperty
+from bpy.props import (
+ BoolProperty,
+ EnumProperty,
+ FloatProperty,
+ )
from . import muv_common
diff --git a/uv_magic_uv/muv_uvbb_ops.py b/uv_magic_uv/muv_uvbb_ops.py
index c596b1d1..3e773b7a 100644
--- a/uv_magic_uv/muv_uvbb_ops.py
+++ b/uv_magic_uv/muv_uvbb_ops.py
@@ -20,9 +20,8 @@
__author__ = "Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
from enum import IntEnum
import math
@@ -415,8 +414,8 @@ class MUV_UVBBStateNone(MUV_UVBBStateBase):
arr = [1, 3, 6, 8]
if i in arr:
return (
- MUV_UVBBState.UNIFORM_SCALING_1
- + arr.index(i)
+ MUV_UVBBState.UNIFORM_SCALING_1 +
+ arr.index(i)
)
else:
return MUV_UVBBState.TRANSLATING + i
@@ -552,8 +551,8 @@ class MUV_UVBBStateMgr():
obj = MUV_UVBBStateRotating(self.__cmd_exec, ctrl_points)
elif next_state == MUV_UVBBState.NONE:
obj = MUV_UVBBStateNone(self.__cmd_exec)
- elif (MUV_UVBBState.UNIFORM_SCALING_1 <= next_state
- <= MUV_UVBBState.UNIFORM_SCALING_4):
+ elif (MUV_UVBBState.UNIFORM_SCALING_1 <= next_state <=
+ MUV_UVBBState.UNIFORM_SCALING_4):
obj = MUV_UVBBStateUniformScaling(
self.__cmd_exec, next_state, ctrl_points)
diff --git a/uv_magic_uv/muv_wsuv_ops.py b/uv_magic_uv/muv_wsuv_ops.py
index dce56447..debc666c 100644
--- a/uv_magic_uv/muv_wsuv_ops.py
+++ b/uv_magic_uv/muv_wsuv_ops.py
@@ -20,9 +20,8 @@
__author__ = "McBuff, Nutti <nutti.metro@gmail.com>"
__status__ = "production"
-__version__ = "4.3"
-__date__ = "1 Apr 2017"
-
+__version__ = "4.3.1"
+__date__ = "6 June 2017"
import bpy
import bmesh