Select / Sync UV Channel / Layer between multiple objects

@MadLLama
Hi,

Maybe you would interest, I found addon with options to moving UV up and down in the list, modified it slightly with adding sorting, and moved it to expandable panel under UV Maps.

Also changed your Batch panel to be consistent
12
uv_map_list_tools.py (6.0 KB)

and your __init__.py modified
# 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 3 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
# MERCHANTIBILITY 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, see <http://www.gnu.org/licenses/>.

bl_info = {
    "name" : "BatchUVMaps",
    "author" : "Arnas Karmaza",
    "description" : "Extra Batch UV Operators",
    "blender" : (2, 93, 0),
    "version" : (1, 0, 1),
    'location': 'Properties > Mesh Properties > UV Maps',
    "warning" : "",
    "category" : "Object"
}
import bpy

from . operators import OBJECT_OT_set_active_render_uv, OBJECT_OT_set_active_uv, OBJECT_OT_delete_active_uv
from . operators import Operator
from bpy.types import Panel

class UVMAPS_PT_batch_tools(Panel):
    bl_label = "UV Batch Tools"    
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "data"
    bl_parent_id = "DATA_PT_uv_texture"
    bl_options = {'DEFAULT_CLOSED'}
    
    def draw(self, context):
        layout = self.layout
        row = layout.row()
        row.operator('object.set_active_uv_for_selected_objects', icon ='RIGHTARROW', text="Sync Active")
        row.operator('object.set_active_uv_render_layer_for_selected_objects', icon='RESTRICT_RENDER_OFF', text="Set Active")
        row.operator('object.delete_active_uv_layer_for_selected_objects', icon='TRASH', text="Delete Active")

#defining classes here
classes = (
    UVMAPS_PT_batch_tools,
    OBJECT_OT_set_active_uv,
    OBJECT_OT_delete_active_uv,
    OBJECT_OT_set_active_render_uv
)

#def draw(self, context):
#    layout = self.layout
#    layout.label(text="Batch UV Tools:")
#    row = layout.row()
#    row.operator('object.set_active_uv_for_selected_objects', icon ='RIGHTARROW', text="Sync Active")
#    row.operator('object.set_active_uv_render_layer_for_selected_objects', icon='RESTRICT_RENDER_OFF', text="Set Active")
#    row.operator('object.delete_active_uv_layer_for_selected_objects', icon='TRASH', text="Delete Active")

    
def register():
    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)

    # Drawing the Operator in UV maps panel
    #bpy.types.DATA_PT_uv_texture.append(draw)
   

def unregister():
    from bpy.utils import unregister_class
    for cls in classes:
        unregister_class(cls)

    # Removing the operator from UV maps panel
    #bpy.types.DATA_PT_uv_texture.remove(draw)

4 Likes