Skip to content
Snippets Groups Projects
__init__.py 2.53 KiB
Newer Older
  • Learn to ignore specific revisions
  • # SPDX-License-Identifier: GPL-2.0-or-later
    
    
    bl_info = {
        "name": "Import Palettes",
        "author": "Antonio Vazquez",
        "version": (1, 0, 0),
        "blender": (2, 81, 6),
        "location": "File > Import",
        "description": "Import Palettes",
        "warning": "",
    
        "doc_url": "{BLENDER_MANUAL_URL}/addons/import_export/palettes.html",
    
        "category": "Import-Export",
    }
    
    
    import sys
    import os
    
    # ----------------------------------------------
    
    # Add to Python path (once only)
    
    # ----------------------------------------------
    path = sys.path
    flag = False
    for item in path:
        if "io_import_palette" in item:
            flag = True
    if flag is False:
        sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'io_import_palette'))
    
    # ----------------------------------------------
    # Import modules
    # ----------------------------------------------
    if "bpy" in locals():
        import imp
    
        imp.reload(import_ase)
        imp.reload(import_krita)
    else:
        import import_ase
        import import_krita
    
    import bpy
    from bpy.props import (
        StringProperty,
    )
    from bpy_extras.io_utils import (
        ImportHelper,
        path_reference_mode,
    )
    
    
    class ImportASE(bpy.types.Operator, ImportHelper):
        """Load a Palette File"""
        bl_idname = "import_ase.read"
        bl_label = "Import ASE"
        bl_options = {'PRESET', 'UNDO'}
    
        filename_ext = ".ase"
        filter_glob: StringProperty(
            default="*.ase",
            options={'HIDDEN'},
        )
    
        def execute(self, context):
            return import_ase.load(context, self.properties.filepath)
    
        def draw(self, context):
            pass
    
    
    class importKPL(bpy.types.Operator, ImportHelper):
        """Load a File"""
        bl_idname = "import_krita.read"
        bl_label = "Import Palette"
        bl_options = {'PRESET', 'UNDO'}
    
        filename_ext = ".kpl"
        filter_glob: StringProperty(
            default="*.kpl;*gpl",
            options={'HIDDEN'},
        )
    
        def execute(self, context):
            return import_krita.load(context, self.properties.filepath)
    
        def draw(self, context):
            pass
    
    
    def menu_func_import(self, context):
        self.layout.operator(importKPL.bl_idname, text="KPL Palette (.kpl)")
        self.layout.operator(ImportASE.bl_idname, text="ASE Palette (.ase)")
    
    
    classes = (
        ImportASE,
        importKPL,
    )
    
    
    def register():
        for cls in classes:
            bpy.utils.register_class(cls)
    
        bpy.types.TOPBAR_MT_file_import.append(menu_func_import)
    
    
    def unregister():
        bpy.types.TOPBAR_MT_file_import.remove(menu_func_import)
    
        for cls in classes:
            bpy.utils.unregister_class(cls)
    
    
    if __name__ == "__main__":
        register()