diff --git a/src/main/java/app/MainController.java b/src/main/java/app/MainController.java index 0a078ee..8b9d189 100644 --- a/src/main/java/app/MainController.java +++ b/src/main/java/app/MainController.java @@ -13,7 +13,6 @@ import app.controllers.*; import app.events.ExitApplicationEvent; import app.events.LanguageChangedEvent; import app.events.OpenLinkInBrowserEvent; -import app.events.SaveFileEvent; import app.events.ThemeChangedEvent; import app.model.Model; import javafx.application.HostServices; @@ -138,13 +137,9 @@ public class MainController implements Initializable { int g = JOptionPane.showConfirmDialog(null, "Your files are not saved.\nSave before exit?", "Exit", JOptionPane.YES_NO_OPTION); - if (g == JOptionPane.YES_OPTION) { - this.eventBus.post(new SaveFileEvent()); - Platform.exit(); - } - } else { - Platform.exit(); + if (g == JOptionPane.YES_OPTION) + this.editorController.saveCodeArea(Model.getActiveFilePath().isEmpty()); } - + Platform.exit(); } } diff --git a/src/main/java/app/service/FileOperations.java b/src/main/java/app/service/FileOperations.java index 0f71145..6215aca 100644 --- a/src/main/java/app/service/FileOperations.java +++ b/src/main/java/app/service/FileOperations.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.nio.file.Path; +import java.util.NoSuchElementException; import java.util.Optional; import java.util.Scanner; @@ -48,9 +49,15 @@ public class FileOperations { } public static boolean saveFileWithDialog(Stage stage, String content) { - File chosenLocation = DialogBoxes.showSaveFileWithDialog(stage); - if (chosenLocation == null) + File chosenLocation; + + try { + chosenLocation = DialogBoxes.showSaveFileWithDialog(stage); + } catch (NoSuchElementException e) { return false; + } + + if (chosenLocation == null) return false; if (saveFile(chosenLocation.toPath(), content)) { Model.setActiveFilePath(Optional.of(chosenLocation.toPath()));