mirror of
https://github.com/Relintai/godot-engine.file-editor.git
synced 2024-11-12 22:27:22 +01:00
rebase
This commit is contained in:
parent
10a5b7d829
commit
d31245b724
@ -67,534 +67,534 @@ var current_csv_editor : CSVEditor
|
||||
var current_font : DynamicFont
|
||||
|
||||
func _ready():
|
||||
if not Engine.is_editor_hint():
|
||||
return
|
||||
clean_editor()
|
||||
update_version()
|
||||
connect_signals()
|
||||
create_shortcuts()
|
||||
load_icons()
|
||||
|
||||
var opened_files : Array = LastOpenedFiles.load_opened_files()
|
||||
for opened_file in opened_files:
|
||||
open_file(opened_file[1], opened_file[2])
|
||||
FileList.set_filters(EXTENSIONS)
|
||||
if not Engine.is_editor_hint():
|
||||
return
|
||||
clean_editor()
|
||||
update_version()
|
||||
connect_signals()
|
||||
create_shortcuts()
|
||||
load_icons()
|
||||
|
||||
var opened_files : Array = LastOpenedFiles.load_opened_files()
|
||||
for opened_file in opened_files:
|
||||
open_file(opened_file[1], opened_file[2])
|
||||
FileList.set_filters(EXTENSIONS)
|
||||
|
||||
func create_shortcuts():
|
||||
var hotkey
|
||||
var hotkey
|
||||
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_S
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(4,hotkey.get_scancode_with_modifiers()) # save file
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_S
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(4,hotkey.get_scancode_with_modifiers()) # save file
|
||||
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_N
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(0,hotkey.get_scancode_with_modifiers()) # new file
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_N
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(0,hotkey.get_scancode_with_modifiers()) # new file
|
||||
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_O
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(1,hotkey.get_scancode_with_modifiers()) # open file
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_O
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(1,hotkey.get_scancode_with_modifiers()) # open file
|
||||
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_D
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(6,hotkey.get_scancode_with_modifiers()) # delete file
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_D
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(6,hotkey.get_scancode_with_modifiers()) # delete file
|
||||
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_S
|
||||
hotkey.control = true
|
||||
hotkey.alt = true
|
||||
FileBTN.set_item_accelerator(5,hotkey.get_scancode_with_modifiers()) #save file as
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_S
|
||||
hotkey.control = true
|
||||
hotkey.alt = true
|
||||
FileBTN.set_item_accelerator(5,hotkey.get_scancode_with_modifiers()) #save file as
|
||||
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_C
|
||||
hotkey.control = true
|
||||
hotkey.alt = true
|
||||
FileBTN.set_item_accelerator(2,hotkey.get_scancode_with_modifiers()) # close file
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_C
|
||||
hotkey.control = true
|
||||
hotkey.alt = true
|
||||
FileBTN.set_item_accelerator(2,hotkey.get_scancode_with_modifiers()) # close file
|
||||
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_F
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(8,hotkey.get_scancode_with_modifiers()) # search
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_F
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(8,hotkey.get_scancode_with_modifiers()) # search
|
||||
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_R
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(9,hotkey.get_scancode_with_modifiers()) # replace
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_R
|
||||
hotkey.control = true
|
||||
FileBTN.set_item_accelerator(9,hotkey.get_scancode_with_modifiers()) # replace
|
||||
|
||||
# vanilla editor -----------------------
|
||||
# vanilla editor -----------------------
|
||||
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_1
|
||||
hotkey.control = true
|
||||
EditorBTN.set_item_accelerator(0,hotkey.get_scancode_with_modifiers()) # vanilla editor
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_1
|
||||
hotkey.control = true
|
||||
EditorBTN.set_item_accelerator(0,hotkey.get_scancode_with_modifiers()) # vanilla editor
|
||||
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_2
|
||||
hotkey.control = true
|
||||
EditorBTN.set_item_accelerator(1,hotkey.get_scancode_with_modifiers()) # csv editor
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_2
|
||||
hotkey.control = true
|
||||
EditorBTN.set_item_accelerator(1,hotkey.get_scancode_with_modifiers()) # csv editor
|
||||
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_3
|
||||
hotkey.control = true
|
||||
EditorBTN.set_item_accelerator(2,hotkey.get_scancode_with_modifiers()) # inieditor editor
|
||||
hotkey = InputEventKey.new()
|
||||
hotkey.scancode = KEY_3
|
||||
hotkey.control = true
|
||||
EditorBTN.set_item_accelerator(2,hotkey.get_scancode_with_modifiers()) # inieditor editor
|
||||
|
||||
func load_icons():
|
||||
$FileEditorContainer/TobBar/file_btn.icon = IconLoader.load_icon_from_name("file")
|
||||
$FileEditorContainer/TobBar/preview_btn.icon = IconLoader.load_icon_from_name("read")
|
||||
$FileEditorContainer/TobBar/editor_btn.icon = IconLoader.load_icon_from_name("edit_")
|
||||
$FileEditorContainer/TobBar/SettingsBtn.icon = IconLoader.load_icon_from_name("settings")
|
||||
$FileEditorContainer/TobBar/file_btn.icon = IconLoader.load_icon_from_name("file")
|
||||
$FileEditorContainer/TobBar/preview_btn.icon = IconLoader.load_icon_from_name("read")
|
||||
$FileEditorContainer/TobBar/editor_btn.icon = IconLoader.load_icon_from_name("edit_")
|
||||
$FileEditorContainer/TobBar/SettingsBtn.icon = IconLoader.load_icon_from_name("settings")
|
||||
|
||||
func connect_signals():
|
||||
FileList.connect("confirmed",self,"update_list")
|
||||
FileBTN.connect("id_pressed",self,"_on_filebtn_pressed")
|
||||
PreviewBTN.connect("id_pressed",self,"_on_previewbtn_pressed")
|
||||
EditorBTN.connect("id_pressed",self,"_on_editorbtn_pressed")
|
||||
SettingsBTN.connect("id_pressed",self,"_on_settingsbtn_pressed")
|
||||
|
||||
OpenFileList.connect("item_selected",self,"_on_fileitem_pressed")
|
||||
WrapBTN.connect("item_selected",self,"on_wrap_button")
|
||||
MapBTN.connect("item_selected",self,"on_minimap_button")
|
||||
|
||||
SelectFontDialog.connect("file_selected",self,"_on_font_selected")
|
||||
FileList.connect("confirmed",self,"update_list")
|
||||
FileBTN.connect("id_pressed",self,"_on_filebtn_pressed")
|
||||
PreviewBTN.connect("id_pressed",self,"_on_previewbtn_pressed")
|
||||
EditorBTN.connect("id_pressed",self,"_on_editorbtn_pressed")
|
||||
SettingsBTN.connect("id_pressed",self,"_on_settingsbtn_pressed")
|
||||
|
||||
OpenFileList.connect("item_selected",self,"_on_fileitem_pressed")
|
||||
WrapBTN.connect("item_selected",self,"on_wrap_button")
|
||||
MapBTN.connect("item_selected",self,"on_minimap_button")
|
||||
|
||||
SelectFontDialog.connect("file_selected",self,"_on_font_selected")
|
||||
|
||||
func update_version():
|
||||
var plugin_version = ""
|
||||
var config = ConfigFile.new()
|
||||
var err = config.load("res://addons/file-editor/plugin.cfg")
|
||||
if err == OK:
|
||||
plugin_version = config.get_value("plugin","version")
|
||||
Version.set_text("v"+plugin_version)
|
||||
var plugin_version = ""
|
||||
var config = ConfigFile.new()
|
||||
var err = config.load("res://addons/file-editor/plugin.cfg")
|
||||
if err == OK:
|
||||
plugin_version = config.get_value("plugin","version")
|
||||
Version.set_text("v"+plugin_version)
|
||||
|
||||
func create_selected_file():
|
||||
update_list()
|
||||
FileList.mode = FileDialog.MODE_SAVE_FILE
|
||||
FileList.set_title("Create a new File")
|
||||
if FileList.is_connected("file_selected",self,"delete_file"):
|
||||
FileList.disconnect("file_selected",self,"delete_file")
|
||||
if FileList.is_connected("file_selected",self,"open_file"):
|
||||
FileList.disconnect("file_selected",self,"open_file")
|
||||
if not FileList.is_connected("file_selected",self,"create_new_file"):
|
||||
FileList.connect("file_selected",self,"create_new_file")
|
||||
open_filelist()
|
||||
update_list()
|
||||
FileList.mode = FileDialog.MODE_SAVE_FILE
|
||||
FileList.set_title("Create a new File")
|
||||
if FileList.is_connected("file_selected",self,"delete_file"):
|
||||
FileList.disconnect("file_selected",self,"delete_file")
|
||||
if FileList.is_connected("file_selected",self,"open_file"):
|
||||
FileList.disconnect("file_selected",self,"open_file")
|
||||
if not FileList.is_connected("file_selected",self,"create_new_file"):
|
||||
FileList.connect("file_selected",self,"create_new_file")
|
||||
open_filelist()
|
||||
|
||||
func open_selected_file():
|
||||
update_list()
|
||||
FileList.mode = FileDialog.MODE_OPEN_FILE
|
||||
FileList.set_title("Select a File you want to edit")
|
||||
if FileList.is_connected("file_selected",self,"delete_file"):
|
||||
FileList.disconnect("file_selected",self,"delete_file")
|
||||
if FileList.is_connected("file_selected",self,"create_new_file"):
|
||||
FileList.disconnect("file_selected",self,"create_new_file")
|
||||
if not FileList.is_connected("file_selected",self,"open_file"):
|
||||
FileList.connect("file_selected",self,"open_file")
|
||||
open_filelist()
|
||||
update_list()
|
||||
FileList.mode = FileDialog.MODE_OPEN_FILE
|
||||
FileList.set_title("Select a File you want to edit")
|
||||
if FileList.is_connected("file_selected",self,"delete_file"):
|
||||
FileList.disconnect("file_selected",self,"delete_file")
|
||||
if FileList.is_connected("file_selected",self,"create_new_file"):
|
||||
FileList.disconnect("file_selected",self,"create_new_file")
|
||||
if not FileList.is_connected("file_selected",self,"open_file"):
|
||||
FileList.connect("file_selected",self,"open_file")
|
||||
open_filelist()
|
||||
|
||||
func delete_selected_file():
|
||||
update_list()
|
||||
FileList.mode = FileDialog.MODE_OPEN_FILES
|
||||
FileList.set_title("Select one or more Files you want to delete")
|
||||
if FileList.is_connected("file_selected",self,"open_file"):
|
||||
FileList.disconnect("file_selected",self,"open_file")
|
||||
if FileList.is_connected("file_selected",self,"create_new_file"):
|
||||
FileList.disconnect("file_selected",self,"create_new_file")
|
||||
if not FileList.is_connected("files_selected",self,"delete_file"):
|
||||
FileList.connect("files_selected",self,"delete_file")
|
||||
open_filelist()
|
||||
update_list()
|
||||
FileList.mode = FileDialog.MODE_OPEN_FILES
|
||||
FileList.set_title("Select one or more Files you want to delete")
|
||||
if FileList.is_connected("file_selected",self,"open_file"):
|
||||
FileList.disconnect("file_selected",self,"open_file")
|
||||
if FileList.is_connected("file_selected",self,"create_new_file"):
|
||||
FileList.disconnect("file_selected",self,"create_new_file")
|
||||
if not FileList.is_connected("files_selected",self,"delete_file"):
|
||||
FileList.connect("files_selected",self,"delete_file")
|
||||
open_filelist()
|
||||
|
||||
func save_current_file_as():
|
||||
update_list()
|
||||
FileList.mode = FileDialog.MODE_SAVE_FILE
|
||||
FileList.set_title("Save this File as...")
|
||||
if FileList.is_connected("file_selected",self,"delete_file"):
|
||||
FileList.disconnect("file_selected",self,"delete_file")
|
||||
if FileList.is_connected("file_selected",self,"open_file"):
|
||||
FileList.disconnect("file_selected",self,"open_file")
|
||||
if not FileList.is_connected("file_selected",self,"create_new_file"):
|
||||
FileList.connect("file_selected",self,"create_new_file")
|
||||
open_filelist()
|
||||
update_list()
|
||||
FileList.mode = FileDialog.MODE_SAVE_FILE
|
||||
FileList.set_title("Save this File as...")
|
||||
if FileList.is_connected("file_selected",self,"delete_file"):
|
||||
FileList.disconnect("file_selected",self,"delete_file")
|
||||
if FileList.is_connected("file_selected",self,"open_file"):
|
||||
FileList.disconnect("file_selected",self,"open_file")
|
||||
if not FileList.is_connected("file_selected",self,"create_new_file"):
|
||||
FileList.connect("file_selected",self,"create_new_file")
|
||||
open_filelist()
|
||||
|
||||
func _on_filebtn_pressed(index : int):
|
||||
match index:
|
||||
0:
|
||||
create_selected_file()
|
||||
1:
|
||||
open_selected_file()
|
||||
2:
|
||||
if current_file_index!=-1 and current_file_path != "":
|
||||
close_file(current_file_index)
|
||||
|
||||
3:
|
||||
if current_file_index!=-1 and current_file_path != "":
|
||||
save_as = false
|
||||
if current_csv_editor and current_csv_editor.visible:
|
||||
current_csv_editor.save_table()
|
||||
save_file(current_file_path)
|
||||
4:
|
||||
if current_file_index!=-1 and current_file_path != "":
|
||||
save_as = true
|
||||
save_file(current_file_path)
|
||||
save_current_file_as()
|
||||
5:
|
||||
delete_selected_file()
|
||||
6:
|
||||
current_editor.open_searchbox()
|
||||
7:
|
||||
current_editor.open_replacebox()
|
||||
match index:
|
||||
0:
|
||||
create_selected_file()
|
||||
1:
|
||||
open_selected_file()
|
||||
2:
|
||||
if current_file_index!=-1 and current_file_path != "":
|
||||
close_file(current_file_index)
|
||||
|
||||
3:
|
||||
if current_file_index!=-1 and current_file_path != "":
|
||||
save_as = false
|
||||
if current_csv_editor and current_csv_editor.visible:
|
||||
current_csv_editor.save_table()
|
||||
save_file(current_file_path)
|
||||
4:
|
||||
if current_file_index!=-1 and current_file_path != "":
|
||||
save_as = true
|
||||
save_file(current_file_path)
|
||||
save_current_file_as()
|
||||
5:
|
||||
delete_selected_file()
|
||||
6:
|
||||
current_editor.open_searchbox()
|
||||
7:
|
||||
current_editor.open_replacebox()
|
||||
|
||||
func _on_previewbtn_pressed(id : int):
|
||||
if id == 0:
|
||||
bbcode_preview()
|
||||
elif id == 1:
|
||||
markdown_preview()
|
||||
elif id == 2:
|
||||
html_preview()
|
||||
elif id == 3:
|
||||
csv_preview()
|
||||
elif id == 4:
|
||||
xml_preview()
|
||||
elif id == 5:
|
||||
json_preview()
|
||||
if id == 0:
|
||||
bbcode_preview()
|
||||
elif id == 1:
|
||||
markdown_preview()
|
||||
elif id == 2:
|
||||
html_preview()
|
||||
elif id == 3:
|
||||
csv_preview()
|
||||
elif id == 4:
|
||||
xml_preview()
|
||||
elif id == 5:
|
||||
json_preview()
|
||||
|
||||
func _on_editorbtn_pressed(index : int):
|
||||
match index:
|
||||
0:
|
||||
if not current_editor.visible:
|
||||
current_editor.show()
|
||||
if current_csv_editor:
|
||||
current_csv_editor.hide()
|
||||
if current_ini_editor:
|
||||
current_ini_editor.hide()
|
||||
1:
|
||||
if current_csv_editor and not current_csv_editor.visible:
|
||||
if current_ini_editor:
|
||||
current_ini_editor.hide()
|
||||
current_editor.hide()
|
||||
current_csv_editor.show()
|
||||
2:
|
||||
if current_ini_editor and not current_ini_editor.visible:
|
||||
current_editor.hide()
|
||||
if current_csv_editor:
|
||||
current_csv_editor.hide()
|
||||
current_ini_editor.show()
|
||||
match index:
|
||||
0:
|
||||
if not current_editor.visible:
|
||||
current_editor.show()
|
||||
if current_csv_editor:
|
||||
current_csv_editor.hide()
|
||||
if current_ini_editor:
|
||||
current_ini_editor.hide()
|
||||
1:
|
||||
if current_csv_editor and not current_csv_editor.visible:
|
||||
if current_ini_editor:
|
||||
current_ini_editor.hide()
|
||||
current_editor.hide()
|
||||
current_csv_editor.show()
|
||||
2:
|
||||
if current_ini_editor and not current_ini_editor.visible:
|
||||
current_editor.hide()
|
||||
if current_csv_editor:
|
||||
current_csv_editor.hide()
|
||||
current_ini_editor.show()
|
||||
|
||||
func _on_settingsbtn_pressed(index : int):
|
||||
match index:
|
||||
0:
|
||||
SelectFontDialog.popup()
|
||||
match index:
|
||||
0:
|
||||
SelectFontDialog.popup()
|
||||
|
||||
func _on_font_selected(font_path : String):
|
||||
current_editor.set_font(font_path)
|
||||
LastOpenedFiles.store_editor_fonts(current_file_path.get_file(), font_path)
|
||||
current_editor.set_font(font_path)
|
||||
LastOpenedFiles.store_editor_fonts(current_file_path.get_file(), font_path)
|
||||
# Enable this part of code to apply the new font to all Vanilla Editors opened
|
||||
# for file in [0,OpenFileList.get_child_count()]:
|
||||
# OpenFileList.get_item_metadata(file)[0].set_font(dynamic_font)
|
||||
# current_font = dynamic_font
|
||||
|
||||
func _on_fileitem_pressed(index : int):
|
||||
current_file_index = index
|
||||
var selected_item_metadata = OpenFileList.get_item_metadata(current_file_index)
|
||||
var extension = selected_item_metadata[0].current_path.get_file().get_extension()
|
||||
|
||||
current_file_path = selected_item_metadata[0].current_path
|
||||
if current_editor.visible:
|
||||
current_editor.hide()
|
||||
current_editor = selected_item_metadata[0]
|
||||
current_editor.show()
|
||||
OpenFileName.set_text(current_editor.current_path)
|
||||
current_csv_editor = selected_item_metadata[2]
|
||||
current_ini_editor = selected_item_metadata[1]
|
||||
if WrapBTN.get_selected_id() == 1:
|
||||
current_editor.set_wrap_enabled(true)
|
||||
else:
|
||||
current_editor.set_wrap_enabled(false)
|
||||
if MapBTN.get_selected_id() == 1:
|
||||
current_editor.draw_minimap(true)
|
||||
else:
|
||||
current_editor.draw_minimap(false)
|
||||
elif current_csv_editor and current_csv_editor.visible:
|
||||
if extension == "csv":
|
||||
current_csv_editor.hide()
|
||||
current_csv_editor = selected_item_metadata[2]
|
||||
current_csv_editor.show()
|
||||
OpenFileName.set_text(current_csv_editor.current_file_path)
|
||||
current_editor = selected_item_metadata[0]
|
||||
current_ini_editor = selected_item_metadata[1]
|
||||
else:
|
||||
if current_csv_editor:
|
||||
current_csv_editor.hide()
|
||||
current_csv_editor = selected_item_metadata[2]
|
||||
if current_ini_editor:
|
||||
current_ini_editor.hide()
|
||||
current_ini_editor = selected_item_metadata[1]
|
||||
current_editor.hide()
|
||||
current_editor = selected_item_metadata[0]
|
||||
current_editor.show()
|
||||
OpenFileName.set_text(current_editor.current_path)
|
||||
elif current_ini_editor and current_ini_editor.visible:
|
||||
if extension == "cfg" or extension == "ini":
|
||||
current_ini_editor.hide()
|
||||
current_ini_editor = selected_item_metadata[1]
|
||||
current_ini_editor.show()
|
||||
OpenFileName.set_text(current_ini_editor.current_file_path)
|
||||
else:
|
||||
if current_ini_editor:
|
||||
current_ini_editor.hide()
|
||||
current_ini_editor = selected_item_metadata[1]
|
||||
if current_csv_editor:
|
||||
current_csv_editor.hide()
|
||||
current_csv_editor = selected_item_metadata[2]
|
||||
current_editor.hide()
|
||||
current_editor = selected_item_metadata[0]
|
||||
current_editor.show()
|
||||
OpenFileName.set_text(current_editor.current_path)
|
||||
current_file_index = index
|
||||
var selected_item_metadata = OpenFileList.get_item_metadata(current_file_index)
|
||||
var extension = selected_item_metadata[0].current_path.get_file().get_extension()
|
||||
|
||||
current_file_path = selected_item_metadata[0].current_path
|
||||
if current_editor.visible:
|
||||
current_editor.hide()
|
||||
current_editor = selected_item_metadata[0]
|
||||
current_editor.show()
|
||||
OpenFileName.set_text(current_editor.current_path)
|
||||
current_csv_editor = selected_item_metadata[2]
|
||||
current_ini_editor = selected_item_metadata[1]
|
||||
if WrapBTN.get_selected_id() == 1:
|
||||
current_editor.set_wrap_enabled(true)
|
||||
else:
|
||||
current_editor.set_wrap_enabled(false)
|
||||
if MapBTN.get_selected_id() == 1:
|
||||
current_editor.draw_minimap(true)
|
||||
else:
|
||||
current_editor.draw_minimap(false)
|
||||
elif current_csv_editor and current_csv_editor.visible:
|
||||
if extension == "csv":
|
||||
current_csv_editor.hide()
|
||||
current_csv_editor = selected_item_metadata[2]
|
||||
current_csv_editor.show()
|
||||
OpenFileName.set_text(current_csv_editor.current_file_path)
|
||||
current_editor = selected_item_metadata[0]
|
||||
current_ini_editor = selected_item_metadata[1]
|
||||
else:
|
||||
if current_csv_editor:
|
||||
current_csv_editor.hide()
|
||||
current_csv_editor = selected_item_metadata[2]
|
||||
if current_ini_editor:
|
||||
current_ini_editor.hide()
|
||||
current_ini_editor = selected_item_metadata[1]
|
||||
current_editor.hide()
|
||||
current_editor = selected_item_metadata[0]
|
||||
current_editor.show()
|
||||
OpenFileName.set_text(current_editor.current_path)
|
||||
elif current_ini_editor and current_ini_editor.visible:
|
||||
if extension == "cfg" or extension == "ini":
|
||||
current_ini_editor.hide()
|
||||
current_ini_editor = selected_item_metadata[1]
|
||||
current_ini_editor.show()
|
||||
OpenFileName.set_text(current_ini_editor.current_file_path)
|
||||
else:
|
||||
if current_ini_editor:
|
||||
current_ini_editor.hide()
|
||||
current_ini_editor = selected_item_metadata[1]
|
||||
if current_csv_editor:
|
||||
current_csv_editor.hide()
|
||||
current_csv_editor = selected_item_metadata[2]
|
||||
current_editor.hide()
|
||||
current_editor = selected_item_metadata[0]
|
||||
current_editor.show()
|
||||
OpenFileName.set_text(current_editor.current_path)
|
||||
|
||||
func open_file(path : String, font : String = "null"):
|
||||
if current_file_path != path:
|
||||
current_file_path = path
|
||||
|
||||
var vanilla_editor = open_in_vanillaeditor(path)
|
||||
if font != "null" and vanilla_editor.get("custom_fonts/font")!=null:
|
||||
vanilla_editor.set_font(font)
|
||||
var ini_editor = open_in_inieditor(path)
|
||||
var csv_editor = open_in_csveditor(path)
|
||||
|
||||
generate_file_item(path,vanilla_editor,ini_editor,csv_editor)
|
||||
|
||||
LastOpenedFiles.store_opened_files(OpenFileList)
|
||||
current_editor.show()
|
||||
if current_file_path != path:
|
||||
current_file_path = path
|
||||
|
||||
var vanilla_editor = open_in_vanillaeditor(path)
|
||||
if font != "null" and vanilla_editor.get("custom_fonts/font")!=null:
|
||||
vanilla_editor.set_font(font)
|
||||
var ini_editor = open_in_inieditor(path)
|
||||
var csv_editor = open_in_csveditor(path)
|
||||
|
||||
generate_file_item(path,vanilla_editor,ini_editor,csv_editor)
|
||||
|
||||
LastOpenedFiles.store_opened_files(OpenFileList)
|
||||
current_editor.show()
|
||||
|
||||
func generate_file_item(path : String , veditor : Control , inieditor : Control, csveditor : Control):
|
||||
OpenFileName.set_text(path)
|
||||
OpenFileList.add_item(path.get_file(),IconLoader.load_icon_from_name("file"),true)
|
||||
current_file_index = OpenFileList.get_item_count()-1
|
||||
OpenFileList.set_item_metadata(current_file_index,[veditor,inieditor,csveditor])
|
||||
OpenFileList.select(OpenFileList.get_item_count()-1)
|
||||
OpenFileName.set_text(path)
|
||||
OpenFileList.add_item(path.get_file(),IconLoader.load_icon_from_name("file"),true)
|
||||
current_file_index = OpenFileList.get_item_count()-1
|
||||
OpenFileList.set_item_metadata(current_file_index,[veditor,inieditor,csveditor])
|
||||
OpenFileList.select(OpenFileList.get_item_count()-1)
|
||||
|
||||
func open_in_vanillaeditor(path : String) -> Control:
|
||||
var editor = VanillaEditor.instance()
|
||||
SplitEditorContainer.add_child(editor,true)
|
||||
|
||||
if current_editor and current_editor!=editor:
|
||||
editor.show()
|
||||
current_editor.hide()
|
||||
if current_csv_editor and current_csv_editor.visible:
|
||||
current_csv_editor.hide()
|
||||
if current_ini_editor and current_ini_editor.visible:
|
||||
current_ini_editor.hide()
|
||||
|
||||
current_editor = editor
|
||||
editor.connect("text_changed",self,"_on_vanillaeditor_text_changed")
|
||||
|
||||
var current_file : File = File.new()
|
||||
current_file.open(path,File.READ)
|
||||
var current_content = ""
|
||||
current_content = current_file.get_as_text()
|
||||
|
||||
var last_modified = OS.get_datetime_from_unix_time(current_file.get_modified_time(path))
|
||||
|
||||
current_file.close()
|
||||
editor.new_file_open(current_content,last_modified,current_file_path)
|
||||
update_list()
|
||||
|
||||
if WrapBTN.get_selected_id() == 1:
|
||||
current_editor.set_wrap_enabled(true)
|
||||
|
||||
return editor
|
||||
var editor = VanillaEditor.instance()
|
||||
SplitEditorContainer.add_child(editor,true)
|
||||
|
||||
if current_editor and current_editor!=editor:
|
||||
editor.show()
|
||||
current_editor.hide()
|
||||
if current_csv_editor and current_csv_editor.visible:
|
||||
current_csv_editor.hide()
|
||||
if current_ini_editor and current_ini_editor.visible:
|
||||
current_ini_editor.hide()
|
||||
|
||||
current_editor = editor
|
||||
editor.connect("text_changed",self,"_on_vanillaeditor_text_changed")
|
||||
|
||||
var current_file : File = File.new()
|
||||
current_file.open(path,File.READ)
|
||||
var current_content = ""
|
||||
current_content = current_file.get_as_text()
|
||||
|
||||
var last_modified = OS.get_datetime_from_unix_time(current_file.get_modified_time(path))
|
||||
|
||||
current_file.close()
|
||||
editor.new_file_open(current_content,last_modified,current_file_path)
|
||||
update_list()
|
||||
|
||||
if WrapBTN.get_selected_id() == 1:
|
||||
current_editor.set_wrap_enabled(true)
|
||||
|
||||
return editor
|
||||
|
||||
func open_in_inieditor(path : String) -> Control:
|
||||
var extension = path.get_file().get_extension()
|
||||
if extension == "ini" or extension == "cfg":
|
||||
var inieditor = IniEditor.instance()
|
||||
SplitEditorContainer.add_child(inieditor)
|
||||
inieditor.hide()
|
||||
inieditor.connect("update_file",self,"_on_update_file")
|
||||
current_ini_editor = inieditor
|
||||
inieditor.current_file_path = path
|
||||
var current_file : ConfigFile = ConfigFile.new()
|
||||
var err = current_file.load(path)
|
||||
if err == OK:
|
||||
var sections = current_file.get_sections()
|
||||
var filemap = []
|
||||
for section in sections:
|
||||
var keys = []
|
||||
var section_keys = current_file.get_section_keys(section)
|
||||
for key in section_keys:
|
||||
keys.append([key,current_file.get_value(section,key)])
|
||||
|
||||
filemap.append([section,keys])
|
||||
|
||||
inieditor.open_file(filemap)
|
||||
return inieditor
|
||||
else:
|
||||
current_ini_editor = null
|
||||
return null
|
||||
var extension = path.get_file().get_extension()
|
||||
if extension == "ini" or extension == "cfg":
|
||||
var inieditor = IniEditor.instance()
|
||||
SplitEditorContainer.add_child(inieditor)
|
||||
inieditor.hide()
|
||||
inieditor.connect("update_file",self,"_on_update_file")
|
||||
current_ini_editor = inieditor
|
||||
inieditor.current_file_path = path
|
||||
var current_file : ConfigFile = ConfigFile.new()
|
||||
var err = current_file.load(path)
|
||||
if err == OK:
|
||||
var sections = current_file.get_sections()
|
||||
var filemap = []
|
||||
for section in sections:
|
||||
var keys = []
|
||||
var section_keys = current_file.get_section_keys(section)
|
||||
for key in section_keys:
|
||||
keys.append([key,current_file.get_value(section,key)])
|
||||
|
||||
filemap.append([section,keys])
|
||||
|
||||
inieditor.open_file(filemap)
|
||||
return inieditor
|
||||
else:
|
||||
current_ini_editor = null
|
||||
return null
|
||||
|
||||
func open_in_csveditor(path : String) -> Control:
|
||||
var extension = path.get_file().get_extension()
|
||||
if extension == "csv":
|
||||
var csveditor = CsvEditor.instance()
|
||||
SplitEditorContainer.add_child(csveditor)
|
||||
csveditor.hide()
|
||||
csveditor.connect("update_file",self,"_on_update_file")
|
||||
csveditor.connect("editing_file",self,"_on_vanillaeditor_text_changed")
|
||||
current_csv_editor = csveditor
|
||||
csveditor.current_file_path = path
|
||||
csveditor.open_csv_file(path)
|
||||
return csveditor
|
||||
else:
|
||||
current_csv_editor = null
|
||||
return null
|
||||
var extension = path.get_file().get_extension()
|
||||
if extension == "csv":
|
||||
var csveditor = CsvEditor.instance()
|
||||
SplitEditorContainer.add_child(csveditor)
|
||||
csveditor.hide()
|
||||
csveditor.connect("update_file",self,"_on_update_file")
|
||||
csveditor.connect("editing_file",self,"_on_vanillaeditor_text_changed")
|
||||
current_csv_editor = csveditor
|
||||
csveditor.current_file_path = path
|
||||
csveditor.open_csv_file(path)
|
||||
return csveditor
|
||||
else:
|
||||
current_csv_editor = null
|
||||
return null
|
||||
|
||||
func close_file(index):
|
||||
LastOpenedFiles.remove_opened_file(index,OpenFileList)
|
||||
OpenFileList.remove_item(index)
|
||||
OpenFileName.clear()
|
||||
current_editor.queue_free()
|
||||
|
||||
if index>0:
|
||||
OpenFileList.select(OpenFileList.get_item_count()-1)
|
||||
_on_fileitem_pressed(OpenFileList.get_item_count()-1)
|
||||
LastOpenedFiles.remove_opened_file(index,OpenFileList)
|
||||
OpenFileList.remove_item(index)
|
||||
OpenFileName.clear()
|
||||
current_editor.queue_free()
|
||||
|
||||
if index>0:
|
||||
OpenFileList.select(OpenFileList.get_item_count()-1)
|
||||
_on_fileitem_pressed(OpenFileList.get_item_count()-1)
|
||||
|
||||
func _on_update_file():
|
||||
# current_editor.clean_editor()
|
||||
var current_file : File = File.new()
|
||||
current_file.open(current_file_path,File.READ)
|
||||
|
||||
var current_content = current_file.get_as_text()
|
||||
var last_modified = OS.get_datetime_from_unix_time(current_file.get_modified_time(current_file_path))
|
||||
|
||||
current_file.close()
|
||||
|
||||
current_editor.new_file_open(current_content,last_modified,current_file_path)
|
||||
var current_file : File = File.new()
|
||||
current_file.open(current_file_path,File.READ)
|
||||
|
||||
var current_content = current_file.get_as_text()
|
||||
var last_modified = OS.get_datetime_from_unix_time(current_file.get_modified_time(current_file_path))
|
||||
|
||||
current_file.close()
|
||||
|
||||
current_editor.new_file_open(current_content,last_modified,current_file_path)
|
||||
|
||||
func delete_file(files_selected : PoolStringArray):
|
||||
var dir = Directory.new()
|
||||
for file in files_selected:
|
||||
dir.remove(file)
|
||||
|
||||
update_list()
|
||||
var dir = Directory.new()
|
||||
for file in files_selected:
|
||||
dir.remove(file)
|
||||
|
||||
update_list()
|
||||
|
||||
func open_newfiledialogue():
|
||||
NewFileDialogue.popup()
|
||||
NewFileDialogue.set_position(OS.get_screen_size()/2 - NewFileDialogue.get_size()/2)
|
||||
NewFileDialogue.popup()
|
||||
NewFileDialogue.set_position(OS.get_screen_size()/2 - NewFileDialogue.get_size()/2)
|
||||
|
||||
func open_filelist():
|
||||
update_list()
|
||||
FileList.popup()
|
||||
FileList.set_position(OS.get_screen_size()/2 - FileList.get_size()/2)
|
||||
update_list()
|
||||
FileList.popup()
|
||||
FileList.set_position(OS.get_screen_size()/2 - FileList.get_size()/2)
|
||||
|
||||
func create_new_file(given_path : String):
|
||||
var current_file = File.new()
|
||||
current_file.open(given_path,File.WRITE)
|
||||
if save_as :
|
||||
current_file.store_line(current_editor.get_node("TextEditor").get_text())
|
||||
current_file.close()
|
||||
|
||||
open_file(given_path)
|
||||
var current_file = File.new()
|
||||
current_file.open(given_path,File.WRITE)
|
||||
if save_as :
|
||||
current_file.store_line(current_editor.get_node("TextEditor").get_text())
|
||||
current_file.close()
|
||||
|
||||
open_file(given_path)
|
||||
|
||||
func save_file(current_path : String):
|
||||
print("Saving file: ",current_path)
|
||||
var current_file = File.new()
|
||||
current_file.open(current_path,File.WRITE)
|
||||
var current_content = ""
|
||||
var lines = current_editor.get_node("TextEditor").get_line_count()
|
||||
for line in range(0,lines):
|
||||
if current_editor.get_node("TextEditor").get_line(line) == "":
|
||||
continue
|
||||
current_content = current_editor.get_node("TextEditor").get_text()
|
||||
current_file.store_line(current_editor.get_node("TextEditor").get_line(line))
|
||||
current_file.close()
|
||||
|
||||
current_file_path = current_path
|
||||
|
||||
var last_modified = OS.get_datetime_from_unix_time(current_file.get_modified_time(current_file_path))
|
||||
|
||||
current_editor.update_lastmodified(last_modified,"save")
|
||||
if current_csv_editor != null and not current_csv_editor.is_visible():
|
||||
current_csv_editor.open_csv_file(current_path)
|
||||
OpenFileList.set_item_metadata(current_file_index,[current_editor,current_ini_editor,current_csv_editor])
|
||||
|
||||
if OpenFileList.get_item_text(current_file_index).begins_with("(*)"):
|
||||
OpenFileList.set_item_text(current_file_index,OpenFileList.get_item_text(current_file_index).lstrip("(*)"))
|
||||
|
||||
print("Saving file: ",current_path)
|
||||
var current_file = File.new()
|
||||
current_file.open(current_path,File.WRITE)
|
||||
var current_content = ""
|
||||
var lines = current_editor.get_node("TextEditor").get_line_count()
|
||||
for line in range(0,lines):
|
||||
if current_editor.get_node("TextEditor").get_line(line) == "":
|
||||
continue
|
||||
current_content = current_editor.get_node("TextEditor").get_text()
|
||||
current_file.store_line(current_editor.get_node("TextEditor").get_line(line))
|
||||
current_file.close()
|
||||
|
||||
current_file_path = current_path
|
||||
|
||||
var last_modified = OS.get_datetime_from_unix_time(current_file.get_modified_time(current_file_path))
|
||||
|
||||
current_editor.update_lastmodified(last_modified,"save")
|
||||
if current_csv_editor != null and not current_csv_editor.is_visible():
|
||||
current_csv_editor.open_csv_file(current_path)
|
||||
OpenFileList.set_item_metadata(current_file_index,[current_editor,current_ini_editor,current_csv_editor])
|
||||
|
||||
if OpenFileList.get_item_text(current_file_index).begins_with("(*)"):
|
||||
OpenFileList.set_item_text(current_file_index,OpenFileList.get_item_text(current_file_index).lstrip("(*)"))
|
||||
|
||||
# OpenFileList.set_item_metadata(current_file_index,[current_editor,open_in_inieditor(current_file_path),open_in_csveditor(current_file_path)])
|
||||
|
||||
update_list()
|
||||
|
||||
update_list()
|
||||
|
||||
func clean_editor() -> void :
|
||||
for inieditor in get_tree().get_nodes_in_group("ini_editor"):
|
||||
inieditor.queue_free()
|
||||
for vanillaeditor in get_tree().get_nodes_in_group("vanilla_editor"):
|
||||
vanillaeditor.queue_free()
|
||||
OpenFileName.clear()
|
||||
OpenFileList.clear()
|
||||
for inieditor in get_tree().get_nodes_in_group("ini_editor"):
|
||||
inieditor.queue_free()
|
||||
for vanillaeditor in get_tree().get_nodes_in_group("vanilla_editor"):
|
||||
vanillaeditor.queue_free()
|
||||
OpenFileName.clear()
|
||||
OpenFileList.clear()
|
||||
|
||||
|
||||
func csv_preview():
|
||||
var preview = Preview.instance()
|
||||
get_parent().get_parent().get_parent().add_child(preview)
|
||||
preview.popup()
|
||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||
var lines = current_editor.get_node("TextEditor").get_line_count()
|
||||
var rows = []
|
||||
for i in range(0,lines-1):
|
||||
rows.append(current_editor.get_node("TextEditor").get_line(i).rsplit(",",false))
|
||||
preview.print_csv(rows)
|
||||
var preview = Preview.instance()
|
||||
get_parent().get_parent().get_parent().add_child(preview)
|
||||
preview.popup()
|
||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||
var lines = current_editor.get_node("TextEditor").get_line_count()
|
||||
var rows = []
|
||||
for i in range(0,lines-1):
|
||||
rows.append(current_editor.get_node("TextEditor").get_line(i).rsplit(",",false))
|
||||
preview.print_csv(rows)
|
||||
|
||||
func bbcode_preview():
|
||||
var preview = Preview.instance()
|
||||
get_parent().get_parent().get_parent().add_child(preview)
|
||||
preview.popup()
|
||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||
preview.print_bb(current_editor.get_node("TextEditor").get_text())
|
||||
var preview = Preview.instance()
|
||||
get_parent().get_parent().get_parent().add_child(preview)
|
||||
preview.popup()
|
||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||
preview.print_bb(current_editor.get_node("TextEditor").get_text())
|
||||
|
||||
func markdown_preview():
|
||||
var preview = Preview.instance()
|
||||
get_parent().get_parent().get_parent().add_child(preview)
|
||||
preview.popup()
|
||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||
preview.print_markdown(current_editor.get_node("TextEditor").get_text())
|
||||
var preview = Preview.instance()
|
||||
get_parent().get_parent().get_parent().add_child(preview)
|
||||
preview.popup()
|
||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||
preview.print_markdown(current_editor.get_node("TextEditor").get_text())
|
||||
|
||||
func html_preview():
|
||||
var preview = Preview.instance()
|
||||
get_parent().get_parent().get_parent().add_child(preview)
|
||||
preview.popup()
|
||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||
preview.print_html(current_editor.get_node("TextEditor").get_text())
|
||||
var preview = Preview.instance()
|
||||
get_parent().get_parent().get_parent().add_child(preview)
|
||||
preview.popup()
|
||||
preview.window_title += " ("+current_file_path.get_file()+")"
|
||||
preview.print_html(current_editor.get_node("TextEditor").get_text())
|
||||
|
||||
func xml_preview():
|
||||
pass
|
||||
pass
|
||||
|
||||
func json_preview():
|
||||
pass
|
||||
pass
|
||||
|
||||
|
||||
func _on_vanillaeditor_text_changed():
|
||||
if not OpenFileList.get_item_text(current_file_index).begins_with("(*)"):
|
||||
OpenFileList.set_item_text(current_file_index,"(*)"+OpenFileList.get_item_text(current_file_index))
|
||||
if not OpenFileList.get_item_text(current_file_index).begins_with("(*)"):
|
||||
OpenFileList.set_item_text(current_file_index,"(*)"+OpenFileList.get_item_text(current_file_index))
|
||||
|
||||
|
||||
func update_list():
|
||||
FileList.invalidate()
|
||||
FileList.invalidate()
|
||||
|
||||
func on_wrap_button(index:int):
|
||||
match index:
|
||||
0:
|
||||
current_editor.set_wrap_enabled(false)
|
||||
1:
|
||||
current_editor.set_wrap_enabled(true)
|
||||
match index:
|
||||
0:
|
||||
current_editor.set_wrap_enabled(false)
|
||||
1:
|
||||
current_editor.set_wrap_enabled(true)
|
||||
|
||||
func on_minimap_button(index:int):
|
||||
match index:
|
||||
0:
|
||||
current_editor.draw_minimap(false)
|
||||
1:
|
||||
current_editor.draw_minimap(true)
|
||||
match index:
|
||||
0:
|
||||
current_editor.draw_minimap(false)
|
||||
1:
|
||||
current_editor.draw_minimap(true)
|
||||
|
||||
func check_file_preview(file : String):
|
||||
# check whether the opened file has a corresponding preview session for its extension
|
||||
pass
|
||||
# check whether the opened file has a corresponding preview session for its extension
|
||||
pass
|
||||
|
@ -30,198 +30,198 @@ var search_flag = 0
|
||||
signal text_changed()
|
||||
|
||||
func _ready():
|
||||
FileList = get_parent().get_parent().get_parent().get_parent().get_node("FileList")
|
||||
ClosingFile = get_parent().get_parent().get_parent().get_parent().get_node("ConfirmationDialog")
|
||||
ClosingFile.connect("confirmed",self,"queue_free")
|
||||
|
||||
ReadOnly.connect("toggled",self,"_on_Readonly_toggled")
|
||||
|
||||
ReadOnly.set("custom_icons/checked",IconLoader.load_icon_from_name("read"))
|
||||
ReadOnly.set("custom_icons/unchecked",IconLoader.load_icon_from_name("edit"))
|
||||
|
||||
add_to_group("vanilla_editor")
|
||||
load_default_font()
|
||||
FileList = get_parent().get_parent().get_parent().get_parent().get_node("FileList")
|
||||
ClosingFile = get_parent().get_parent().get_parent().get_parent().get_node("ConfirmationDialog")
|
||||
ClosingFile.connect("confirmed",self,"queue_free")
|
||||
|
||||
ReadOnly.connect("toggled",self,"_on_Readonly_toggled")
|
||||
|
||||
ReadOnly.set("custom_icons/checked",IconLoader.load_icon_from_name("read"))
|
||||
ReadOnly.set("custom_icons/unchecked",IconLoader.load_icon_from_name("edit"))
|
||||
|
||||
add_to_group("vanilla_editor")
|
||||
load_default_font()
|
||||
|
||||
func set_font(font_path : String) -> void:
|
||||
var dynamic_font : DynamicFont = DynamicFont.new()
|
||||
var dynamic_font_data : DynamicFontData = DynamicFontData.new()
|
||||
dynamic_font_data.set_font_path(font_path)
|
||||
dynamic_font.set_font_data(dynamic_font_data)
|
||||
TextEditor.set("custom_fonts/font",dynamic_font)
|
||||
var dynamic_font : DynamicFont = DynamicFont.new()
|
||||
var dynamic_font_data : DynamicFontData = DynamicFontData.new()
|
||||
dynamic_font_data.set_font_path(font_path)
|
||||
dynamic_font.set_font_data(dynamic_font_data)
|
||||
TextEditor.set("custom_fonts/font",dynamic_font)
|
||||
|
||||
func load_default_font() -> void:
|
||||
var default_font = LastOpenedFiles.get_editor_font()
|
||||
if default_font:
|
||||
set_font(default_font)
|
||||
var default_font = LastOpenedFiles.get_editor_font()
|
||||
if default_font:
|
||||
set_font(default_font)
|
||||
|
||||
func set_wrap_enabled(enabled:bool):
|
||||
TextEditor.set_wrap_enabled(enabled)
|
||||
TextEditor.update()
|
||||
TextEditor.set_wrap_enabled(enabled)
|
||||
TextEditor.update()
|
||||
|
||||
func draw_minimap(value:bool):
|
||||
TextEditor.draw_minimap(value)
|
||||
TextEditor.update()
|
||||
TextEditor.draw_minimap(value)
|
||||
TextEditor.update()
|
||||
|
||||
func color_region(filextension : String): # -----------------------------> dal momento che voglio creare un editor per ogni file, renderò questa funzione singola in base all'estensione del file
|
||||
match(filextension):
|
||||
"bbs":
|
||||
TextEditor.add_color_region("[b]","[/b]",Color8(153,153,255,255),false)
|
||||
TextEditor.add_color_region("[i]","[/i]",Color8(153,255,153,255),false)
|
||||
TextEditor.add_color_region("[s]","[/s]",Color8(255,153,153,255),false)
|
||||
TextEditor.add_color_region("[u]","[/u]",Color8(255,255,102,255),false)
|
||||
TextEditor.add_color_region("[url","[/url]",Color8(153,204,255,255),false)
|
||||
TextEditor.add_color_region("[code]","[/code]",Color8(192,192,192,255),false)
|
||||
TextEditor.add_color_region("[img]","[/img]",Color8(255,204,153,255),false)
|
||||
TextEditor.add_color_region("[center]","[/center]",Color8(175,238,238,255),false)
|
||||
TextEditor.add_color_region("[right]","[/right]",Color8(135,206,235,255),false)
|
||||
"html":
|
||||
TextEditor.add_color_region("<b>","</b>",Color8(153,153,255,255),false)
|
||||
TextEditor.add_color_region("<i>","</i>",Color8(153,255,153,255),false)
|
||||
TextEditor.add_color_region("<del>","</del>",Color8(255,153,153,255),false)
|
||||
TextEditor.add_color_region("<ins>","</ins>",Color8(255,255,102,255),false)
|
||||
TextEditor.add_color_region("<a","</a>",Color8(153,204,255,255),false)
|
||||
TextEditor.add_color_region("<img","/>",Color8(255,204,153,255),true)
|
||||
TextEditor.add_color_region("<pre>","</pre>",Color8(192,192,192,255),false)
|
||||
TextEditor.add_color_region("<center>","</center>",Color8(175,238,238,255),false)
|
||||
TextEditor.add_color_region("<right>","</right>",Color8(135,206,235,255),false)
|
||||
"md":
|
||||
TextEditor.add_color_region("***","***",Color8(126,186,181,255),false)
|
||||
TextEditor.add_color_region("**","**",Color8(153,153,255,255),false)
|
||||
TextEditor.add_color_region("*","*",Color8(153,255,153,255),false)
|
||||
TextEditor.add_color_region("+ ","",Color8(255,178,102,255),false)
|
||||
TextEditor.add_color_region("- ","",Color8(255,178,102,255),false)
|
||||
TextEditor.add_color_region("~~","~~",Color8(255,153,153,255),false)
|
||||
TextEditor.add_color_region("__","__",Color8(255,255,102,255),false)
|
||||
TextEditor.add_color_region("[",")",Color8(153,204,255,255),false)
|
||||
TextEditor.add_color_region("`","`",Color8(192,192,192,255),false)
|
||||
TextEditor.add_color_region('"*.','"',Color8(255,255,255,255),true)
|
||||
TextEditor.add_color_region("# ","",Color8(105,105,105,255),true)
|
||||
TextEditor.add_color_region("## ","",Color8(128,128,128,255),true)
|
||||
TextEditor.add_color_region("### ","",Color8(169,169,169,255),true)
|
||||
TextEditor.add_color_region("#### ","",Color8(192,192,192,255),true)
|
||||
TextEditor.add_color_region("##### ","",Color8(211,211,211,255),true)
|
||||
TextEditor.add_color_region("###### ","",Color8(255,255,255,255),true)
|
||||
TextEditor.add_color_region("> ","",Color8(172,138,79,255),true)
|
||||
"cfg":
|
||||
TextEditor.add_color_region("[","]",Color8(153,204,255,255),false)
|
||||
TextEditor.add_color_region('"','"',Color8(255,255,102,255),false)
|
||||
TextEditor.add_color_region(';','',Color8(128,128,128,255),true)
|
||||
"ini":
|
||||
TextEditor.add_color_region("[","]",Color8(153,204,255,255),false)
|
||||
TextEditor.add_color_region('"','"',Color8(255,255,102,255),false)
|
||||
TextEditor.add_color_region(';','',Color8(128,128,128,255),true)
|
||||
_:
|
||||
pass
|
||||
match(filextension):
|
||||
"bbs":
|
||||
TextEditor.add_color_region("[b]","[/b]",Color8(153,153,255,255),false)
|
||||
TextEditor.add_color_region("[i]","[/i]",Color8(153,255,153,255),false)
|
||||
TextEditor.add_color_region("[s]","[/s]",Color8(255,153,153,255),false)
|
||||
TextEditor.add_color_region("[u]","[/u]",Color8(255,255,102,255),false)
|
||||
TextEditor.add_color_region("[url","[/url]",Color8(153,204,255,255),false)
|
||||
TextEditor.add_color_region("[code]","[/code]",Color8(192,192,192,255),false)
|
||||
TextEditor.add_color_region("[img]","[/img]",Color8(255,204,153,255),false)
|
||||
TextEditor.add_color_region("[center]","[/center]",Color8(175,238,238,255),false)
|
||||
TextEditor.add_color_region("[right]","[/right]",Color8(135,206,235,255),false)
|
||||
"html":
|
||||
TextEditor.add_color_region("<b>","</b>",Color8(153,153,255,255),false)
|
||||
TextEditor.add_color_region("<i>","</i>",Color8(153,255,153,255),false)
|
||||
TextEditor.add_color_region("<del>","</del>",Color8(255,153,153,255),false)
|
||||
TextEditor.add_color_region("<ins>","</ins>",Color8(255,255,102,255),false)
|
||||
TextEditor.add_color_region("<a","</a>",Color8(153,204,255,255),false)
|
||||
TextEditor.add_color_region("<img","/>",Color8(255,204,153,255),true)
|
||||
TextEditor.add_color_region("<pre>","</pre>",Color8(192,192,192,255),false)
|
||||
TextEditor.add_color_region("<center>","</center>",Color8(175,238,238,255),false)
|
||||
TextEditor.add_color_region("<right>","</right>",Color8(135,206,235,255),false)
|
||||
"md":
|
||||
TextEditor.add_color_region("***","***",Color8(126,186,181,255),false)
|
||||
TextEditor.add_color_region("**","**",Color8(153,153,255,255),false)
|
||||
TextEditor.add_color_region("*","*",Color8(153,255,153,255),false)
|
||||
TextEditor.add_color_region("+ ","",Color8(255,178,102,255),false)
|
||||
TextEditor.add_color_region("- ","",Color8(255,178,102,255),false)
|
||||
TextEditor.add_color_region("~~","~~",Color8(255,153,153,255),false)
|
||||
TextEditor.add_color_region("__","__",Color8(255,255,102,255),false)
|
||||
TextEditor.add_color_region("[",")",Color8(153,204,255,255),false)
|
||||
TextEditor.add_color_region("`","`",Color8(192,192,192,255),false)
|
||||
TextEditor.add_color_region('"*.','"',Color8(255,255,255,255),true)
|
||||
TextEditor.add_color_region("# ","",Color8(105,105,105,255),true)
|
||||
TextEditor.add_color_region("## ","",Color8(128,128,128,255),true)
|
||||
TextEditor.add_color_region("### ","",Color8(169,169,169,255),true)
|
||||
TextEditor.add_color_region("#### ","",Color8(192,192,192,255),true)
|
||||
TextEditor.add_color_region("##### ","",Color8(211,211,211,255),true)
|
||||
TextEditor.add_color_region("###### ","",Color8(255,255,255,255),true)
|
||||
TextEditor.add_color_region("> ","",Color8(172,138,79,255),true)
|
||||
"cfg":
|
||||
TextEditor.add_color_region("[","]",Color8(153,204,255,255),false)
|
||||
TextEditor.add_color_region('"','"',Color8(255,255,102,255),false)
|
||||
TextEditor.add_color_region(';','',Color8(128,128,128,255),true)
|
||||
"ini":
|
||||
TextEditor.add_color_region("[","]",Color8(153,204,255,255),false)
|
||||
TextEditor.add_color_region('"','"',Color8(255,255,102,255),false)
|
||||
TextEditor.add_color_region(';','',Color8(128,128,128,255),true)
|
||||
_:
|
||||
pass
|
||||
|
||||
func clean_editor():
|
||||
TextEditor.set_text("")
|
||||
LastModifiedIcon.texture = IconLoader.load_icon_from_name("save")
|
||||
LastModified.set_text("")
|
||||
FileList.invalidate()
|
||||
current_filename = ""
|
||||
current_path = ""
|
||||
TextEditor.set_text("")
|
||||
LastModifiedIcon.texture = IconLoader.load_icon_from_name("save")
|
||||
LastModified.set_text("")
|
||||
FileList.invalidate()
|
||||
current_filename = ""
|
||||
current_path = ""
|
||||
|
||||
func new_file_open(file_content : String, last_modified : Dictionary, current_file_path : String):
|
||||
current_path = current_file_path
|
||||
current_filename = current_file_path.get_file()
|
||||
color_region(current_filename.get_extension())
|
||||
TextEditor.set_text(file_content)
|
||||
update_lastmodified(last_modified,"save")
|
||||
FileList.invalidate()
|
||||
count_characters()
|
||||
current_path = current_file_path
|
||||
current_filename = current_file_path.get_file()
|
||||
color_region(current_filename.get_extension())
|
||||
TextEditor.set_text(file_content)
|
||||
update_lastmodified(last_modified,"save")
|
||||
FileList.invalidate()
|
||||
count_characters()
|
||||
|
||||
func update_lastmodified(last_modified : Dictionary, icon : String):
|
||||
LastModified.set_text(str(last_modified.hour)+":"+str(last_modified.minute)+" "+str(last_modified.day)+"/"+str(last_modified.month)+"/"+str(last_modified.year))
|
||||
LastModifiedIcon.texture = IconLoader.load_icon_from_name(icon)
|
||||
LastModified.set_text(str(last_modified.hour)+":"+str(last_modified.minute)+" "+str(last_modified.day)+"/"+str(last_modified.month)+"/"+str(last_modified.year))
|
||||
LastModifiedIcon.texture = IconLoader.load_icon_from_name(icon)
|
||||
|
||||
func new_file_create(file_name):
|
||||
TextEditor.set_text("")
|
||||
|
||||
FileList.invalidate()
|
||||
TextEditor.set_text("")
|
||||
|
||||
FileList.invalidate()
|
||||
|
||||
func _on_Readonly_toggled(button_pressed):
|
||||
if button_pressed:
|
||||
ReadOnly.set_text("Read Only")
|
||||
TextEditor.readonly = (true)
|
||||
else:
|
||||
ReadOnly.set_text("Can Edit")
|
||||
TextEditor.readonly = (false)
|
||||
if button_pressed:
|
||||
ReadOnly.set_text("Read Only")
|
||||
TextEditor.readonly = (true)
|
||||
else:
|
||||
ReadOnly.set_text("Can Edit")
|
||||
TextEditor.readonly = (false)
|
||||
|
||||
func _on_TextEditor_text_changed():
|
||||
LastModifiedIcon.texture = IconLoader.load_icon_from_name("saveas")
|
||||
count_characters()
|
||||
emit_signal("text_changed")
|
||||
LastModifiedIcon.texture = IconLoader.load_icon_from_name("saveas")
|
||||
count_characters()
|
||||
emit_signal("text_changed")
|
||||
|
||||
func count_characters():
|
||||
var counted : int = 0
|
||||
for line in TextEditor.get_line_count():
|
||||
counted += TextEditor.get_line(line).length()
|
||||
c_counter.set_text(str(counted))
|
||||
var counted : int = 0
|
||||
for line in TextEditor.get_line_count():
|
||||
counted += TextEditor.get_line(line).length()
|
||||
c_counter.set_text(str(counted))
|
||||
|
||||
func _on_LineEdit_text_changed(new_text):
|
||||
var linecount = TextEditor.get_line_count()
|
||||
if new_text != "":
|
||||
var found
|
||||
var find = false
|
||||
for line in range(0,linecount):
|
||||
for column in range(0,TextEditor.get_line(line).length()):
|
||||
found = TextEditor.search( new_text, search_flag, line , column )
|
||||
if found.size():
|
||||
if found[1] == line:
|
||||
var linecount = TextEditor.get_line_count()
|
||||
if new_text != "":
|
||||
var found
|
||||
var find = false
|
||||
for line in range(0,linecount):
|
||||
for column in range(0,TextEditor.get_line(line).length()):
|
||||
found = TextEditor.search( new_text, search_flag, line , column )
|
||||
if found.size():
|
||||
if found[1] == line:
|
||||
# if not find:
|
||||
TextEditor.select(line,found[0],found[1],found[0]+new_text.length())
|
||||
TextEditor.select(line,found[0],found[1],found[0]+new_text.length())
|
||||
# find = true
|
||||
else:
|
||||
TextEditor.select(0,0,0,0)
|
||||
else:
|
||||
TextEditor.select(0,0,0,0)
|
||||
else:
|
||||
TextEditor.select(0,0,0,0)
|
||||
else:
|
||||
TextEditor.select(0,0,0,0)
|
||||
|
||||
func _on_matchcase_toggled(button_pressed):
|
||||
if button_pressed:
|
||||
search_flag = 1
|
||||
else:
|
||||
if $SearchBox/wholewords.is_pressed():
|
||||
search_flag = 2
|
||||
else:
|
||||
search_flag = 0
|
||||
_on_LineEdit_text_changed($SearchBox/LineEdit.get_text())
|
||||
if button_pressed:
|
||||
search_flag = 1
|
||||
else:
|
||||
if $SearchBox/wholewords.is_pressed():
|
||||
search_flag = 2
|
||||
else:
|
||||
search_flag = 0
|
||||
_on_LineEdit_text_changed($SearchBox/LineEdit.get_text())
|
||||
|
||||
func _on_wholewords_toggled(button_pressed):
|
||||
if button_pressed:
|
||||
search_flag = 2
|
||||
else:
|
||||
if $SearchBox/matchcase.is_pressed():
|
||||
search_flag = 1
|
||||
else:
|
||||
search_flag = 0
|
||||
_on_LineEdit_text_changed($SearchBox/LineEdit.get_text())
|
||||
if button_pressed:
|
||||
search_flag = 2
|
||||
else:
|
||||
if $SearchBox/matchcase.is_pressed():
|
||||
search_flag = 1
|
||||
else:
|
||||
search_flag = 0
|
||||
_on_LineEdit_text_changed($SearchBox/LineEdit.get_text())
|
||||
|
||||
func _on_close_pressed():
|
||||
SearchBox.hide()
|
||||
SearchBox.hide()
|
||||
|
||||
func open_searchbox():
|
||||
if SearchBox.visible:
|
||||
SearchBox.hide()
|
||||
else:
|
||||
SearchBox.show()
|
||||
SearchBox.get_node("LineEdit").grab_focus()
|
||||
if SearchBox.visible:
|
||||
SearchBox.hide()
|
||||
else:
|
||||
SearchBox.show()
|
||||
SearchBox.get_node("LineEdit").grab_focus()
|
||||
|
||||
func _on_Button_pressed():
|
||||
var linecount = TextEditor.get_line_count()-1
|
||||
var old_text = $ReplaceBox/replace.get_text()
|
||||
var new_text = $ReplaceBox/with.get_text()
|
||||
var text = TextEditor.get_text()
|
||||
TextEditor.set_text(text.replace(old_text,new_text))
|
||||
var linecount = TextEditor.get_line_count()-1
|
||||
var old_text = $ReplaceBox/replace.get_text()
|
||||
var new_text = $ReplaceBox/with.get_text()
|
||||
var text = TextEditor.get_text()
|
||||
TextEditor.set_text(text.replace(old_text,new_text))
|
||||
|
||||
func open_replacebox():
|
||||
if ReplaceBox.visible:
|
||||
ReplaceBox.hide()
|
||||
else:
|
||||
ReplaceBox.show()
|
||||
ReplaceBox.get_node("replace").grab_focus()
|
||||
if ReplaceBox.visible:
|
||||
ReplaceBox.hide()
|
||||
else:
|
||||
ReplaceBox.show()
|
||||
ReplaceBox.get_node("replace").grab_focus()
|
||||
|
||||
func _on_close2_pressed():
|
||||
ReplaceBox.hide()
|
||||
ReplaceBox.hide()
|
||||
|
||||
func _on_LineEdit_focus_entered():
|
||||
_on_LineEdit_text_changed($SearchBox/LineEdit.get_text())
|
||||
_on_LineEdit_text_changed($SearchBox/LineEdit.get_text())
|
||||
|
Loading…
Reference in New Issue
Block a user