diff options
Diffstat (limited to 'addons/gut/UserFileViewer.gd')
| -rw-r--r-- | addons/gut/UserFileViewer.gd | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/addons/gut/UserFileViewer.gd b/addons/gut/UserFileViewer.gd new file mode 100644 index 0000000..3984dec --- /dev/null +++ b/addons/gut/UserFileViewer.gd @@ -0,0 +1,55 @@ +extends WindowDialog + +onready var rtl = $TextDisplay/RichTextLabel +var _has_opened_file = false + +func _get_file_as_text(path): + var to_return = null + var f = File.new() + var result = f.open(path, f.READ) + if(result == OK): + to_return = f.get_as_text() + f.close() + else: + to_return = str('ERROR: Could not open file. Error code ', result) + return to_return + +func _ready(): + rtl.clear() + +func _on_OpenFile_pressed(): + $FileDialog.popup_centered() + +func _on_FileDialog_file_selected(path): + show_file(path) + +func _on_Close_pressed(): + self.hide() + +func show_file(path): + var text = _get_file_as_text(path) + if(text == ''): + text = '<Empty File>' + rtl.set_text(text) + self.window_title = path + +func show_open(): + self.popup_centered() + $FileDialog.popup_centered() + +func _on_FileDialog_popup_hide(): + if(rtl.text.length() == 0): + self.hide() + +func get_rich_text_label(): + return $TextDisplay/RichTextLabel + +func _on_Home_pressed(): + rtl.scroll_to_line(0) + +func _on_End_pressed(): + rtl.scroll_to_line(rtl.get_line_count() -1) + + +func _on_Copy_pressed(): + OS.clipboard = rtl.text |
