diff --git a/editor.py b/editor.py index 659099a..a3f06f0 100644 --- a/editor.py +++ b/editor.py @@ -37,7 +37,7 @@ class BitEditor: self.widget.setLayout(self.widget_layout) - self.app.gui.main_window.openFileTabs.addTab( # add a tab for the file in the top files list + self.tab_index = self.app.gui.main_window.openFileTabs.addTab( # add a tab for the file in the top files list self.widget, self.file.name ) diff --git a/file.py b/file.py index 557c304..7a8eaac 100644 --- a/file.py +++ b/file.py @@ -20,28 +20,13 @@ class FileActions: if not file_path in self.app.open_files: # dont open file twice self.app.open_files[file_path] = File(self.app, file_path, file_path.split("/")[-1]) - def save_file(self, path): - oz_string = self.app.open_files[path].bit_editor.input.toPlainText() - data = self.app.utils.oz_string_to_bstring(oz_string) - - file = open(path, "wb") - file.write(data) - file.close() - - self.app.open_files[path].bit_editor.not_saved = False - def save_current_file(self): current_tab = self.app.gui.main_window.openFileTabs.currentWidget() current_file_path = current_tab.objectName() - self.save_file(current_file_path) - - def close_file(self, path, tab_index): - self.app.gui.main_window.openFileTabs.removeTab(tab_index) - del self.app.open_files[path] + self.app.open_files[current_file_path].save() def close_current_file(self): - tab_index = self.app.gui.main_window.openFileTabs.currentIndex() current_file_path = self.app.gui.main_window.openFileTabs.currentWidget().objectName() if self.app.open_files[current_file_path].bit_editor.not_saved: @@ -49,18 +34,16 @@ class FileActions: match save_or_not: case "save": - self.save_file(current_file_path) + self.app.open_files[current_file_path].save() case "cancel": return - self.close_file(current_file_path, tab_index) + self.app.open_files[current_file_path].close() def save_all_files(self): for file_path in self.app.open_files: - file = self.app.open_files[file_path] - - self.save_file(file.path) + self.app.open_files[file_path].save() class File: @@ -77,3 +60,17 @@ class File: self.content = file_content self.bit_editor = BitEditor(self.app, self) + + def close(self): + self.app.gui.main_window.openFileTabs.removeTab(self.bit_editor.tab_index) + del self.app.open_files[self.path] + + def save(self): + oz_string = self.app.open_files[self.path].bit_editor.input.toPlainText() + data = self.app.utils.oz_string_to_bstring(oz_string) + + file = open(self.path, "wb") + file.write(data) + file.close() + + self.app.open_files[self.path].bit_editor.not_saved = False