added prefs for file zipper
1.3.1 - added: prefs for file zipper (fallback to this if env is not defined) - changed: zip operator id_name `bpy.ops.adm.export_zip` >> `bpy.opsbat.export_zip`main
parent
3c5cca81a5
commit
e2610a882e
18
README.md
18
README.md
|
@ -1,4 +1,20 @@
|
|||
# BAT (blender asset tracer)
|
||||
|
||||
Modified version
|
||||
with Zip packer included
|
||||
with Zip packer included
|
||||
|
||||
|
||||
Zip behavior
|
||||
the root folder of the zip use first the environment variable `ZIP_ROOT` (used with `os.getenv('ZIP_ROOT')`)
|
||||
|
||||
If there is no such env variable it fallback to path specified in addon preferences.
|
||||
|
||||
This root can be manually changed in the settings (sidebar) of the export browser windows.
|
||||
|
||||
|
||||
### Changelog
|
||||
|
||||
1.3.1
|
||||
|
||||
- added: prefs for file zipper (fallback to this if env is not defined)
|
||||
- changed: zip operator id_name `bpy.ops.adm.export_zip` >> `bpy.opsbat.export_zip`
|
23
__init__.py
23
__init__.py
|
@ -25,7 +25,7 @@ __version__ = '1.3'
|
|||
bl_info = {
|
||||
"name": "Blender Asset Tracer",
|
||||
"author": "Campbell Barton, Sybren A. Stüvel, Loïc Charrière and Clément Ducarteron",
|
||||
"version": (1, 3, 0),
|
||||
"version": (1, 3, 1),
|
||||
"blender": (2, 80, 0),
|
||||
"location": "File > External Data > BAT",
|
||||
"description": "Utility for packing blend files",
|
||||
|
@ -47,7 +47,7 @@ import sys
|
|||
import subprocess
|
||||
import tempfile
|
||||
from blender_asset_tracer.trace import deps
|
||||
|
||||
from . import preferences
|
||||
|
||||
class ExportBatPack(Operator, ExportHelper):
|
||||
bl_idname = "export_bat.pack"
|
||||
|
@ -86,10 +86,10 @@ class ExportBatPack(Operator, ExportHelper):
|
|||
return {'FINISHED'}
|
||||
|
||||
|
||||
class ADM_OT_export_zip(Operator, ExportHelper):
|
||||
class BAT_OT_export_zip(Operator, ExportHelper):
|
||||
"""Export current blendfile as .ZIP"""
|
||||
bl_label = "Export File to .ZIP"
|
||||
bl_idname = "adm.export_zip"
|
||||
bl_idname = "bat.export_zip"
|
||||
|
||||
filename_ext = '.zip'
|
||||
|
||||
|
@ -105,6 +105,13 @@ class ADM_OT_export_zip(Operator, ExportHelper):
|
|||
def poll(cls, context):
|
||||
return bpy.data.is_saved
|
||||
|
||||
## ExportHelper has it's own invoke so overriding it with this one create error
|
||||
# def invoke(self, context, event):
|
||||
# prefs = preferences.get_addon_prefs()
|
||||
# if prefs.root_default:
|
||||
# self.root_dir = prefs.root_default
|
||||
# return self.execute(context)
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
root_dir = self.root_dir
|
||||
|
@ -249,18 +256,21 @@ def menu_func(self, context):
|
|||
layout = self.layout
|
||||
layout.separator()
|
||||
layout.operator(ExportBatPack.bl_idname)
|
||||
filepath = layout.operator(ADM_OT_export_zip.bl_idname)
|
||||
filepath = layout.operator(BAT_OT_export_zip.bl_idname)
|
||||
root_dir_env = os.getenv('ZIP_ROOT')
|
||||
if not root_dir_env: # if no env use prefs instead
|
||||
root_dir_env = preferences.get_addon_prefs().root_default
|
||||
filepath.root_dir = '' if root_dir_env == None else root_dir_env #os.getenv('PROJECT_STORE')
|
||||
|
||||
|
||||
classes = (
|
||||
ExportBatPack,
|
||||
ADM_OT_export_zip,
|
||||
BAT_OT_export_zip,
|
||||
)
|
||||
|
||||
|
||||
def register():
|
||||
preferences.register()
|
||||
for cls in classes:
|
||||
bpy.utils.register_class(cls)
|
||||
|
||||
|
@ -271,6 +281,7 @@ def unregister():
|
|||
for cls in classes:
|
||||
bpy.utils.unregister_class(cls)
|
||||
|
||||
preferences.unregister()
|
||||
bpy.types.TOPBAR_MT_file_external_data.remove(menu_func)
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
from bpy.props import (FloatProperty,
|
||||
BoolProperty,
|
||||
EnumProperty,
|
||||
StringProperty,
|
||||
IntProperty,
|
||||
PointerProperty)
|
||||
|
||||
def get_addon_prefs():
|
||||
prefs = bpy.context.preferences
|
||||
return prefs.addons[__package__].preferences
|
||||
|
||||
class myaddonPrefs(bpy.types.AddonPreferences):
|
||||
bl_idname = __name__.split('.')[0]
|
||||
|
||||
root_default : bpy.props.StringProperty(
|
||||
name='Default Root',
|
||||
description="Default root folder path when using export to Zip",
|
||||
subtype='DIR_PATH',
|
||||
default='')
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
col = layout.column()
|
||||
col.label(text='Export to Zip preferences:')
|
||||
col.prop(self, 'root_default')
|
||||
|
||||
col = layout.column()
|
||||
col.label(text='If specified, will be the default root folder path when using export to Zip')
|
||||
col.label(text='Typically the root folder of the current project')
|
||||
|
||||
|
||||
|
||||
### --- REGISTER ---
|
||||
|
||||
classes=(
|
||||
myaddonPrefs,
|
||||
)
|
||||
|
||||
def register():
|
||||
for cls in classes:
|
||||
bpy.utils.register_class(cls)
|
||||
|
||||
def unregister():
|
||||
for cls in reversed(classes):
|
||||
bpy.utils.unregister_class(cls)
|
Loading…
Reference in New Issue