-
Notifications
You must be signed in to change notification settings - Fork 2
/
appHandlers.py
69 lines (49 loc) · 1.77 KB
/
appHandlers.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import os
import sys
import importlib
import bpy
from bpy.app import handlers
from bpy.app.handlers import persistent
# Local imports implemented to support Blender refreshes
modulesNames = ("reports", "subscriptions")
for module in modulesNames:
if module in sys.modules:
importlib.reload(sys.modules[module])
else:
parent = ".".join(__name__.split(".")[:-1])
globals()[module] = importlib.import_module(f"{parent}.{module}")
@persistent
def loadPreferencesHandler(_):
print("Changing Preference Defaults!")
prefs = bpy.context.preferences
prefs.use_preferences_save = False
view = prefs.view
view.show_splash = True
@persistent
def savePostHandler(_):
filepath = bpy.path.abspath("//")
filename = bpy.path.basename(bpy.data.filepath).split(".")[0]
# Apply all transforms
# bpy.ops.object.transform_apply(location=True, rotation=True, scale=True)
commands = reports.getCommands()
with open(os.path.join(filepath, f"{filename}.py"), "a") as file:
for command in commands:
file.write(f"\t{command}\n")
reports.clearReports()
@persistent
def loadPostHandler(_):
bpy.ops.wm.splash('INVOKE_DEFAULT')
# Message bus subscription
subscriptions.subscribe()
def register():
print("Registering to Change Defaults")
handlers.load_post.append(loadPostHandler)
handlers.save_post.append(savePostHandler)
handlers.load_factory_preferences_post.append(loadPreferencesHandler)
def unregister():
print("Unregistering to Change Defaults")
handlers.load_post.remove(loadPostHandler)
handlers.save_post.remove(savePostHandler)
handlers.load_factory_preferences_post.remove(loadPreferencesHandler)
# Message bus unsubscription
subscriptions.unsubscribe()