-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
scene_operation_tk-rumba.py
102 lines (81 loc) · 3.34 KB
/
scene_operation_tk-rumba.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# ----------------------------------------------------------------------------
# Copyright (c) 2021, Diego Garcia Huerta.
#
# Your use of this software as distributed in this GitHub repository, is
# governed by the MIT License
#
# Your use of the Shotgun Pipeline Toolkit is governed by the applicable
# license agreement between you and Autodesk / Shotgun.
#
# Read LICENSE and SHOTGUN_LICENSE for full details about the licenses that
# pertain to this software.
# ----------------------------------------------------------------------------
import sgtk
import rumba
import rumbapy
__author__ = "Diego Garcia Huerta"
__contact__ = "https://www.linkedin.com/in/diegogh/"
HookClass = sgtk.get_hook_baseclass()
class SceneOperation(HookClass):
"""
Hook called to perform an operation with the
current scene
"""
def execute(
self,
operation,
file_path,
context,
parent_action,
file_version,
read_only,
**kwargs
):
"""
Main hook entry point
:param operation: String
Scene operation to perform
:param file_path: String
File path to use if the operation
requires it (e.g. open)
:param context: Context
The context the file operation is being
performed in.
:param parent_action: This is the action that this scene operation is
being executed for. This can be one of:
- open_file
- new_file
- save_file_as
- version_up
:param file_version: The version/revision of the file to be opened. If this is 'None'
then the latest version should be opened.
:param read_only: Specifies if the file should be opened read-only or not
:returns: Depends on operation:
'current_path' - Return the current scene
file path as a String
'reset' - True if scene was reset to an empty
state, otherwise False
all others - None
"""
active_doc = rumba.active_document()
if operation == "current_path":
current_project_filename = rumba.active_document_filename()
return current_project_filename
elif operation == "open":
rumba.load_document(file_path)
elif operation == "save":
if active_doc:
current_project_filename = rumba.active_document_filename()
if current_project_filename != "untitled":
active_doc.write(current_project_filename)
elif operation == "save_as":
if active_doc:
main_window = rumbapy.widget("MainWindow")
main_window.save_at(file_path)
elif operation == "reset":
if active_doc:
rumba.new_document()
return True
elif operation == "prepare_new":
rumba.new_document()
return True