From cc56b808ca8338fe5d2b3ff1aba65429025cacf5 Mon Sep 17 00:00:00 2001
From: Nutti <nutti.metro@gmail.com>
Date: Sat, 24 Feb 2018 11:37:05 +0900
Subject: [PATCH] Magic UV: Release v5.1

Fixed bugs
---
 uv_magic_uv/__init__.py                       |  6 ++--
 uv_magic_uv/common.py                         | 32 ++++++++++++------
 uv_magic_uv/op/__init__.py                    |  4 +--
 uv_magic_uv/op/align_uv.py                    | 33 ++-----------------
 uv_magic_uv/op/align_uv_cursor.py             |  4 +--
 uv_magic_uv/op/copy_paste_uv.py               |  4 +--
 uv_magic_uv/op/copy_paste_uv_object.py        |  4 +--
 uv_magic_uv/op/copy_paste_uv_uvedit.py        |  4 +--
 uv_magic_uv/op/flip_rotate_uv.py              |  4 +--
 uv_magic_uv/op/mirror_uv.py                   |  4 +--
 uv_magic_uv/op/move_uv.py                     |  4 +--
 uv_magic_uv/op/pack_uv.py                     |  4 +--
 uv_magic_uv/op/preserve_uv_aspect.py          |  4 +--
 uv_magic_uv/op/smooth_uv.py                   |  4 +--
 uv_magic_uv/op/texture_lock.py                |  4 +--
 uv_magic_uv/op/texture_projection.py          |  4 +--
 uv_magic_uv/op/texture_wrap.py                |  4 +--
 uv_magic_uv/op/transfer_uv.py                 |  4 +--
 uv_magic_uv/op/unwrap_constraint.py           |  4 +--
 uv_magic_uv/op/uv_bounding_box.py             | 13 ++++++--
 uv_magic_uv/op/uv_inspection.py               |  4 +--
 uv_magic_uv/op/uv_sculpt.py                   | 11 +++++--
 uv_magic_uv/op/uvw.py                         |  4 +--
 uv_magic_uv/op/world_scale_uv.py              |  4 +--
 uv_magic_uv/preferences.py                    |  4 +--
 uv_magic_uv/properites.py                     | 14 ++++++--
 uv_magic_uv/ui/__init__.py                    |  4 +--
 uv_magic_uv/ui/uvedit_copy_paste_uv.py        |  4 +--
 uv_magic_uv/ui/uvedit_editor_enhance.py       |  4 +--
 uv_magic_uv/ui/uvedit_uv_manipulation.py      |  4 +--
 .../ui/view3d_copy_paste_uv_editmode.py       |  4 +--
 .../ui/view3d_copy_paste_uv_objectmode.py     |  4 +--
 uv_magic_uv/ui/view3d_uv_manipulation.py      |  4 +--
 uv_magic_uv/ui/view3d_uv_mapping.py           |  4 +--
 34 files changed, 114 insertions(+), 107 deletions(-)

diff --git a/uv_magic_uv/__init__.py b/uv_magic_uv/__init__.py
index 97f8bb791..080d2414f 100644
--- a/uv_magic_uv/__init__.py
+++ b/uv_magic_uv/__init__.py
@@ -20,15 +20,15 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 
 bl_info = {
     "name": "Magic UV",
     "author": "Nutti, Mifth, Jace Priester, kgeogeo, mem, imdjs"
               "Keith (Wahooney) Boshoff, McBuff, MaxRobinot, Alexander Milovsky",
-    "version": (5, 0, 0),
+    "version": (5, 1, 0),
     "blender": (2, 79, 0),
     "location": "See Add-ons Preferences",
     "description": "UV Toolset. See Add-ons Preferences for details",
diff --git a/uv_magic_uv/common.py b/uv_magic_uv/common.py
index dc8876a05..6d3d9df7e 100644
--- a/uv_magic_uv/common.py
+++ b/uv_magic_uv/common.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 from collections import defaultdict
 from pprint import pprint
@@ -295,11 +295,23 @@ def measure_uv_area(obj):
     for f in sel_faces:
         uvs = [l[uv_layer].uv for l in f.loops]
         f_uv_area = calc_polygon_2d_area(uvs)
-        if tex_layer:
-            img = f[tex_layer].image
-            if not img:
-                return None
-            uv_area = uv_area + f_uv_area * img.size[0] * img.size[1]
+
+        if not tex_layer:
+            return None
+        img = f[tex_layer].image
+        # not found, try to search from node
+        if not img:
+            for mat in obj.material_slots:
+                for node in mat.material.node_tree.nodes:
+                    tex_node_types = [
+                        'TEX_ENVIRONMENT',
+                        'TEX_IMAGE',
+                    ]
+                    if (node.type in tex_node_types) and node.image:
+                        img = node.image
+        if not img:
+            return None
+        uv_area = uv_area + f_uv_area * img.size[0] * img.size[1]
 
     return uv_area
 
@@ -565,7 +577,7 @@ def __get_loop_sequence_internal(uv_layer, pairs, island_info, closed):
     return loop_sequences, ""
 
 
-def get_loop_sequences(bm, uv_layer):
+def get_loop_sequences(bm, uv_layer, closed=False):
     sel_faces = [f for f in bm.faces if f.select]
 
     # get candidate loops
@@ -581,11 +593,11 @@ def get_loop_sequences(bm, uv_layer):
     first_loop = cand_loops[0]
     isl_info = get_island_info_from_bmesh(bm, False)
     loop_pairs = __get_loop_pairs(first_loop, uv_layer)
-    loop_pairs, err = __sort_loop_pairs(uv_layer, loop_pairs, False)
+    loop_pairs, err = __sort_loop_pairs(uv_layer, loop_pairs, closed)
     if not loop_pairs:
         return None, err
     loop_seqs, err = __get_loop_sequence_internal(uv_layer, loop_pairs,
-                                                  isl_info, False)
+                                                  isl_info, closed)
     if not loop_seqs:
         return None, err
 
diff --git a/uv_magic_uv/op/__init__.py b/uv_magic_uv/op/__init__.py
index 0b93c96ab..75885ef6a 100644
--- a/uv_magic_uv/op/__init__.py
+++ b/uv_magic_uv/op/__init__.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 if "bpy" in locals():
     import importlib
diff --git a/uv_magic_uv/op/align_uv.py b/uv_magic_uv/op/align_uv.py
index f90f02ffa..dcfb57c3f 100644
--- a/uv_magic_uv/op/align_uv.py
+++ b/uv_magic_uv/op/align_uv.py
@@ -20,8 +20,8 @@
 
 __author__ = "imdjs, Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import math
 from math import atan2, tan, sin, cos
@@ -34,33 +34,6 @@ from bpy.props import EnumProperty, BoolProperty
 from .. import common
 
 
-def get_closed_loop_sequences(bm, uv_layer):
-    sel_faces = [f for f in bm.faces if f.select]
-
-    # get candidate loops
-    cand_loops = []
-    for f in sel_faces:
-        for l in f.loops:
-            if l[uv_layer].select:
-                cand_loops.append(l)
-
-    if len(cand_loops) < 2:
-        return None, "More than 2 UVs must be selected"
-
-    first_loop = cand_loops[0]
-    isl_info = common.get_island_info_from_bmesh(bm, False)
-    loop_pairs = common.get_loop_pairs(first_loop, uv_layer)
-    loop_pairs, err = common.sort_loop_pairs(uv_layer, loop_pairs, True)
-    if not loop_pairs:
-        return None, err
-    loop_seqs, err = common.get_loop_sequence_internal(uv_layer, loop_pairs,
-                                                       isl_info, True)
-    if not loop_seqs:
-        return None, err
-
-    return loop_seqs, ""
-
-
 # get sum vertex length of loop sequences
 def get_loop_vert_len(loops):
     length = 0
@@ -143,7 +116,7 @@ class MUV_AUVCircle(bpy.types.Operator):
         uv_layer = bm.loops.layers.uv.verify()
 
         # loop_seqs[horizontal][vertical][loop]
-        loop_seqs, error = get_closed_loop_sequences(bm, uv_layer)
+        loop_seqs, error = common.get_loop_sequences(bm, uv_layer, True)
         if not loop_seqs:
             self.report({'WARNING'}, error)
             return {'CANCELLED'}
diff --git a/uv_magic_uv/op/align_uv_cursor.py b/uv_magic_uv/op/align_uv_cursor.py
index b33dc68ee..cae1c89a5 100644
--- a/uv_magic_uv/op/align_uv_cursor.py
+++ b/uv_magic_uv/op/align_uv_cursor.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 from mathutils import Vector
diff --git a/uv_magic_uv/op/copy_paste_uv.py b/uv_magic_uv/op/copy_paste_uv.py
index 3aac3f6de..ee89b5e96 100644
--- a/uv_magic_uv/op/copy_paste_uv.py
+++ b/uv_magic_uv/op/copy_paste_uv.py
@@ -20,8 +20,8 @@
 
 __author__ = "imdjs, Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import math
 from math import atan2, sin, cos
diff --git a/uv_magic_uv/op/copy_paste_uv_object.py b/uv_magic_uv/op/copy_paste_uv_object.py
index eb42d99ae..d80ee4152 100644
--- a/uv_magic_uv/op/copy_paste_uv_object.py
+++ b/uv_magic_uv/op/copy_paste_uv_object.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 import bmesh
diff --git a/uv_magic_uv/op/copy_paste_uv_uvedit.py b/uv_magic_uv/op/copy_paste_uv_uvedit.py
index 5b64505ea..96908020a 100644
--- a/uv_magic_uv/op/copy_paste_uv_uvedit.py
+++ b/uv_magic_uv/op/copy_paste_uv_uvedit.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>, Jace Priester"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import math
 from math import atan2, sin, cos
diff --git a/uv_magic_uv/op/flip_rotate_uv.py b/uv_magic_uv/op/flip_rotate_uv.py
index 907c77c48..30f6b0f7c 100644
--- a/uv_magic_uv/op/flip_rotate_uv.py
+++ b/uv_magic_uv/op/flip_rotate_uv.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 import bmesh
diff --git a/uv_magic_uv/op/mirror_uv.py b/uv_magic_uv/op/mirror_uv.py
index d1014c734..f4849d18b 100644
--- a/uv_magic_uv/op/mirror_uv.py
+++ b/uv_magic_uv/op/mirror_uv.py
@@ -20,8 +20,8 @@
 
 __author__ = "Keith (Wahooney) Boshoff, Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 from bpy.props import (
diff --git a/uv_magic_uv/op/move_uv.py b/uv_magic_uv/op/move_uv.py
index e0ac418f7..6382376cf 100644
--- a/uv_magic_uv/op/move_uv.py
+++ b/uv_magic_uv/op/move_uv.py
@@ -20,8 +20,8 @@
 
 __author__ = "kgeogeo, mem, Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 import bmesh
diff --git a/uv_magic_uv/op/pack_uv.py b/uv_magic_uv/op/pack_uv.py
index 692fa93e6..a780af3e7 100644
--- a/uv_magic_uv/op/pack_uv.py
+++ b/uv_magic_uv/op/pack_uv.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 from math import fabs
 
diff --git a/uv_magic_uv/op/preserve_uv_aspect.py b/uv_magic_uv/op/preserve_uv_aspect.py
index 9838aec60..bc2f1b81e 100644
--- a/uv_magic_uv/op/preserve_uv_aspect.py
+++ b/uv_magic_uv/op/preserve_uv_aspect.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 import bmesh
diff --git a/uv_magic_uv/op/smooth_uv.py b/uv_magic_uv/op/smooth_uv.py
index 6a120d087..aa9b22c09 100644
--- a/uv_magic_uv/op/smooth_uv.py
+++ b/uv_magic_uv/op/smooth_uv.py
@@ -20,8 +20,8 @@
 
 __author__ = "imdjs, Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 import bmesh
diff --git a/uv_magic_uv/op/texture_lock.py b/uv_magic_uv/op/texture_lock.py
index b0be35346..d6c56f5af 100644
--- a/uv_magic_uv/op/texture_lock.py
+++ b/uv_magic_uv/op/texture_lock.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import math
 from math import atan2, cos, sqrt, sin, fabs
diff --git a/uv_magic_uv/op/texture_projection.py b/uv_magic_uv/op/texture_projection.py
index 9c2dc521c..77a81aa0a 100644
--- a/uv_magic_uv/op/texture_projection.py
+++ b/uv_magic_uv/op/texture_projection.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 from collections import namedtuple
 
diff --git a/uv_magic_uv/op/texture_wrap.py b/uv_magic_uv/op/texture_wrap.py
index 91b067041..01e507bda 100644
--- a/uv_magic_uv/op/texture_wrap.py
+++ b/uv_magic_uv/op/texture_wrap.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 import bmesh
diff --git a/uv_magic_uv/op/transfer_uv.py b/uv_magic_uv/op/transfer_uv.py
index fd1b45e46..132f395ed 100644
--- a/uv_magic_uv/op/transfer_uv.py
+++ b/uv_magic_uv/op/transfer_uv.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>, Mifth, MaxRobinot"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 from collections import OrderedDict
 
diff --git a/uv_magic_uv/op/unwrap_constraint.py b/uv_magic_uv/op/unwrap_constraint.py
index 311b2c35d..e98879b76 100644
--- a/uv_magic_uv/op/unwrap_constraint.py
+++ b/uv_magic_uv/op/unwrap_constraint.py
@@ -18,8 +18,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 import bmesh
diff --git a/uv_magic_uv/op/uv_bounding_box.py b/uv_magic_uv/op/uv_bounding_box.py
index 04aa61106..9ebc76c47 100644
--- a/uv_magic_uv/op/uv_bounding_box.py
+++ b/uv_magic_uv/op/uv_bounding_box.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 from enum import IntEnum
 import math
@@ -693,6 +693,13 @@ class MUV_UVBBUpdater(bpy.types.Operator):
         if props.running is False:
             self.__handle_remove(context)
             return {'FINISHED'}
+
+        area, _, _ = common.get_space('VIEW_3D', 'WINDOW', 'VIEW_3D')
+
+        if event.mouse_region_x < 0 or event.mouse_region_x > area.width or \
+           event.mouse_region_y < 0 or event.mouse_region_y > area.height:
+            return {'PASS_THROUGH'}
+
         if event.type == 'TIMER':
             trans_mat = self.__cmd_exec.execute()
             self.__update_uvs(context, props.uv_info_ini, trans_mat)
@@ -701,7 +708,7 @@ class MUV_UVBBUpdater(bpy.types.Operator):
 
         self.__state_mgr.update(context, props.ctrl_points, event)
 
-        return {'PASS_THROUGH'}
+        return {'RUNNING_MODAL'}
 
     def execute(self, context):
         props = context.scene.muv_props.uvbb
diff --git a/uv_magic_uv/op/uv_inspection.py b/uv_magic_uv/op/uv_inspection.py
index 0e8778f33..60a754a30 100644
--- a/uv_magic_uv/op/uv_inspection.py
+++ b/uv_magic_uv/op/uv_inspection.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 import bmesh
diff --git a/uv_magic_uv/op/uv_sculpt.py b/uv_magic_uv/op/uv_sculpt.py
index 6133b2a2c..2bf76abd5 100644
--- a/uv_magic_uv/op/uv_sculpt.py
+++ b/uv_magic_uv/op/uv_sculpt.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 from math import pi, cos, tan, sin
 
@@ -316,6 +316,11 @@ class MUV_UVSculptOps(bpy.types.Operator):
             return {'FINISHED'}
 
         self.current_mco = Vector((event.mouse_region_x, event.mouse_region_y))
+        area, _, _ = common.get_space('VIEW_3D', 'WINDOW', 'VIEW_3D')
+
+        if self.current_mco.x < 0 or self.current_mco.x > area.width or \
+           self.current_mco.y < 0 or self.current_mco.y > area.height:
+            return {'PASS_THROUGH'}
 
         if event.type == 'LEFTMOUSE':
             if event.value == 'PRESS':
@@ -333,7 +338,7 @@ class MUV_UVSculptOps(bpy.types.Operator):
             if self.__stroking:
                 self.__stroke_apply(context, event)
 
-        return {'PASS_THROUGH'}
+        return {'RUNNING_MODAL'}
 
     def invoke(self, context, _):
         props = context.scene.muv_props.uvsculpt
diff --git a/uv_magic_uv/op/uvw.py b/uv_magic_uv/op/uvw.py
index 37d88a534..102026776 100644
--- a/uv_magic_uv/op/uvw.py
+++ b/uv_magic_uv/op/uvw.py
@@ -20,8 +20,8 @@
 
 __author__ = "Alexander Milovsky, Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 from math import sin, cos, pi
 
diff --git a/uv_magic_uv/op/world_scale_uv.py b/uv_magic_uv/op/world_scale_uv.py
index f1539ddbb..e256fbac8 100644
--- a/uv_magic_uv/op/world_scale_uv.py
+++ b/uv_magic_uv/op/world_scale_uv.py
@@ -20,8 +20,8 @@
 
 __author__ = "McBuff, Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 from math import sqrt
 
diff --git a/uv_magic_uv/preferences.py b/uv_magic_uv/preferences.py
index eb86804e0..d8cdf86bb 100644
--- a/uv_magic_uv/preferences.py
+++ b/uv_magic_uv/preferences.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 from bpy.props import (
     FloatProperty,
diff --git a/uv_magic_uv/properites.py b/uv_magic_uv/properites.py
index f40e9f1fb..3b61fcfcd 100644
--- a/uv_magic_uv/properites.py
+++ b/uv_magic_uv/properites.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 from bpy.props import (
@@ -641,6 +641,13 @@ def init_props(scene):
         ]
     )
 
+    # UV Cursor Location
+    scene.muv_uvcloc_enabled = BoolProperty(
+        name="UV Cursor Location Enabled",
+        description="UV Cursor Location is enabled",
+        default=False
+    )
+
 
 def clear_props(scene):
     del scene.muv_props
@@ -753,3 +760,6 @@ def clear_props(scene):
     del scene.muv_auvc_enabled
     del scene.muv_auvc_cursor_loc
     del scene.muv_auvc_align_menu
+
+    # UV Cursor Location
+    del scene.muv_uvcloc_enabled
diff --git a/uv_magic_uv/ui/__init__.py b/uv_magic_uv/ui/__init__.py
index 00af3e062..ad56aeb3c 100644
--- a/uv_magic_uv/ui/__init__.py
+++ b/uv_magic_uv/ui/__init__.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 if "bpy" in locals():
     import importlib
diff --git a/uv_magic_uv/ui/uvedit_copy_paste_uv.py b/uv_magic_uv/ui/uvedit_copy_paste_uv.py
index 87b23fed7..d87dbef3e 100644
--- a/uv_magic_uv/ui/uvedit_copy_paste_uv.py
+++ b/uv_magic_uv/ui/uvedit_copy_paste_uv.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 
diff --git a/uv_magic_uv/ui/uvedit_editor_enhance.py b/uv_magic_uv/ui/uvedit_editor_enhance.py
index dfe309782..88a2492c6 100644
--- a/uv_magic_uv/ui/uvedit_editor_enhance.py
+++ b/uv_magic_uv/ui/uvedit_editor_enhance.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 
diff --git a/uv_magic_uv/ui/uvedit_uv_manipulation.py b/uv_magic_uv/ui/uvedit_uv_manipulation.py
index 2231cdf4b..f391c4cbf 100644
--- a/uv_magic_uv/ui/uvedit_uv_manipulation.py
+++ b/uv_magic_uv/ui/uvedit_uv_manipulation.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 
diff --git a/uv_magic_uv/ui/view3d_copy_paste_uv_editmode.py b/uv_magic_uv/ui/view3d_copy_paste_uv_editmode.py
index 530b17977..a22adf035 100644
--- a/uv_magic_uv/ui/view3d_copy_paste_uv_editmode.py
+++ b/uv_magic_uv/ui/view3d_copy_paste_uv_editmode.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 
diff --git a/uv_magic_uv/ui/view3d_copy_paste_uv_objectmode.py b/uv_magic_uv/ui/view3d_copy_paste_uv_objectmode.py
index 5aa968f27..f9e2bec0c 100644
--- a/uv_magic_uv/ui/view3d_copy_paste_uv_objectmode.py
+++ b/uv_magic_uv/ui/view3d_copy_paste_uv_objectmode.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 
diff --git a/uv_magic_uv/ui/view3d_uv_manipulation.py b/uv_magic_uv/ui/view3d_uv_manipulation.py
index 76e0d3aac..1e9b7d7e8 100644
--- a/uv_magic_uv/ui/view3d_uv_manipulation.py
+++ b/uv_magic_uv/ui/view3d_uv_manipulation.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 
diff --git a/uv_magic_uv/ui/view3d_uv_mapping.py b/uv_magic_uv/ui/view3d_uv_mapping.py
index 77c60c9ee..2dc241c0d 100644
--- a/uv_magic_uv/ui/view3d_uv_mapping.py
+++ b/uv_magic_uv/ui/view3d_uv_mapping.py
@@ -20,8 +20,8 @@
 
 __author__ = "Nutti <nutti.metro@gmail.com>"
 __status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
 
 import bpy
 
-- 
GitLab