blob: 785421312ea89d1da6f427beb71e884738ad6685 (
plain)
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
|
@tool
extends EditorPlugin
const STORED_SECTIONS_PATH : String = "res://project_time_traker.json"
var _dock_instance : Control
func _enter_tree():
_dock_instance = preload("res://addons/project-time-tracker/TrackerDock.tscn").instantiate()
_dock_instance.name = "ProjectTimeTracker"
add_control_to_dock(EditorPlugin.DOCK_SLOT_RIGHT_BL, _dock_instance)
_load_sections()
main_screen_changed.connect(_on_main_screen_changed)
get_editor_interface().set_main_screen_editor("3D")
func _exit_tree():
remove_control_from_docks(_dock_instance)
_dock_instance.queue_free()
func _make_visible(visible):
if _dock_instance:
_dock_instance.visible = visible
func _save_external_data():
_store_sections()
func _get_plugin_icon():
return preload("res://addons/project-time-tracker/icon.png")
func _load_sections() -> void:
if (!FileAccess.file_exists(STORED_SECTIONS_PATH)):
return
var file = FileAccess.open(STORED_SECTIONS_PATH, FileAccess.READ)
var error = FileAccess.get_open_error()
if (error != OK):
printerr("Failed to open file '" + STORED_SECTIONS_PATH + "' for reading: Error code " + str(error))
return
var json = JSON.new()
var parse_result = json.parse_string(file.get_as_text())
var parse_error = json.get_error_message()
if (parse_error != ""):
printerr("Failed to parse tracked sections: Error code " + parse_error)
else:
_dock_instance.restore_tracked_sections(parse_result)
file.close()
func _store_sections() -> void:
var tracked_sections = _dock_instance.get_tracked_sections()
var stored_string = JSON.stringify(tracked_sections, " ")
var file = FileAccess.open(STORED_SECTIONS_PATH, FileAccess.WRITE)
var error = FileAccess.get_open_error()
if (error != OK):
printerr("Failed to open file '" + STORED_SECTIONS_PATH + "' for writing: Error code " + str(error))
return
file.store_string(stored_string)
error = file.get_error()
if (error != OK):
printerr("Failed to store tracked sections: Error code " + str(error))
file.close()
func _on_main_screen_changed(main_screen: String) -> void:
if (_dock_instance && is_instance_valid(_dock_instance)):
_dock_instance.set_main_view(main_screen)
|