From c8f6a1a2923d52b2c73dcbf1c1a40eba032b8e33 Mon Sep 17 00:00:00 2001 From: Stekeblad Date: Sat, 9 Nov 2019 23:27:41 +0100 Subject: [PATCH] Say Hello to version 1.3 - MainWindowController now implements IWindowController - Added Wiki link for MetaDataToolWindow --- .../videouploader/jfxExtension/MyStage.java | 5 ++ .../stekeblad/videouploader/main/Main.java | 46 ++++++++----------- .../main/mainWindowController.java | 3 +- .../videouploader/utils/ConfigManager.java | 2 +- .../videouploader/utils/Constants.java | 2 + .../MetaDataToolWindowController.java | 2 +- 6 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/main/java/io/github/stekeblad/videouploader/jfxExtension/MyStage.java b/src/main/java/io/github/stekeblad/videouploader/jfxExtension/MyStage.java index 4a034f0..b8121e3 100644 --- a/src/main/java/io/github/stekeblad/videouploader/jfxExtension/MyStage.java +++ b/src/main/java/io/github/stekeblad/videouploader/jfxExtension/MyStage.java @@ -65,6 +65,11 @@ private void triggerController(Object controller) { } else { event.consume(); } + + // Make sure all settings is saved on exit do not save when not needed + if (myWindowPropertyName.equals(ConfigManager.WindowPropertyNames.MAIN)) { + ConfigManager.INSTANCE.saveSettings(); + } }); cont.myInit(); } diff --git a/src/main/java/io/github/stekeblad/videouploader/main/Main.java b/src/main/java/io/github/stekeblad/videouploader/main/Main.java index 7674d9e..da37e18 100644 --- a/src/main/java/io/github/stekeblad/videouploader/main/Main.java +++ b/src/main/java/io/github/stekeblad/videouploader/main/Main.java @@ -1,16 +1,17 @@ package io.github.stekeblad.videouploader.main; +import io.github.stekeblad.videouploader.jfxExtension.MyStage; import io.github.stekeblad.videouploader.utils.AlertUtils; import io.github.stekeblad.videouploader.utils.ConfigManager; +import io.github.stekeblad.videouploader.utils.Constants; import io.github.stekeblad.videouploader.utils.translation.TranslationBundles; import io.github.stekeblad.videouploader.utils.translation.Translations; import io.github.stekeblad.videouploader.utils.translation.TranslationsManager; import javafx.application.Application; import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; import javafx.stage.Stage; +import java.io.IOException; import java.util.Locale; /** @@ -20,33 +21,29 @@ public class Main extends Application { @Override public void start(Stage primaryStage) { - FXMLLoader loader = new FXMLLoader(getClass().getResource("mainWindow.fxml")); - Parent root; try { - root = loader.load(); + loadTranslations(); } catch (Exception e) { - AlertUtils.exceptionDialog("Stekeblads Video Uploader", - "Unable to load main window, the program will exit", e); + e.printStackTrace(); + AlertUtils.exceptionDialog("ERROR", + "Failed to load translations, unable to launch. Your detected language: " + Locale.getDefault(), e); return; } - loadTranslations(); Translations trans = TranslationsManager.getTranslation(TranslationBundles.BASE); - primaryStage.setTitle(trans.getString("app_name")); - primaryStage.setScene(new Scene(root, 900, 825)); - // Register MainWindowController.onWindowClose() to be called when the close button is clicked - mainWindowController controller = loader.getController(); - primaryStage.setOnCloseRequest(event -> { - if(! controller.onWindowClose()) { - // Close or not close based on return value - event.consume(); - } - }); - controller.myInit(); - primaryStage.show(); - } - private void loadTranslations() { try { + FXMLLoader loader = new FXMLLoader(getClass().getResource("mainWindow.fxml")); + MyStage stage = new MyStage(ConfigManager.WindowPropertyNames.MAIN); + stage.makeScene(loader.load(), Constants.MAIN_WINDOW_DIMENSIONS_RESTRICTION); + stage.setTitle(trans.getString("app_name")); + stage.prepareControllerAndShow(loader.getController()); + } catch (IOException e) { + AlertUtils.exceptionDialog("Stekeblads Video Uploader", + "Unable to load main window, the program will exit", e); + } + } + + private void loadTranslations() throws Exception { ConfigManager configManager = ConfigManager.INSTANCE; configManager.configManager(); String localeString = configManager.getSelectedLanguage(); @@ -57,11 +54,6 @@ private void loadTranslations() { locale = Locale.getDefault(); } TranslationsManager.loadAllTranslations(locale); - } catch (Exception e) { - e.printStackTrace(); - AlertUtils.exceptionDialog("ERROR", - "Failed to load a translation, unable to launch. Your detected language: " + Locale.getDefault(), e); - } } diff --git a/src/main/java/io/github/stekeblad/videouploader/main/mainWindowController.java b/src/main/java/io/github/stekeblad/videouploader/main/mainWindowController.java index 1d1b2c6..d8b30a2 100644 --- a/src/main/java/io/github/stekeblad/videouploader/main/mainWindowController.java +++ b/src/main/java/io/github/stekeblad/videouploader/main/mainWindowController.java @@ -1,5 +1,6 @@ package io.github.stekeblad.videouploader.main; +import io.github.stekeblad.videouploader.jfxExtension.IWindowController; import io.github.stekeblad.videouploader.jfxExtension.MyStage; import io.github.stekeblad.videouploader.utils.AlertUtils; import io.github.stekeblad.videouploader.utils.ConfigManager; @@ -46,7 +47,7 @@ import static io.github.stekeblad.videouploader.youtube.VideoInformationBase.THUMBNAIL_FILE_FORMAT; import static javafx.scene.control.ProgressIndicator.INDETERMINATE_PROGRESS; -public class mainWindowController { +public class mainWindowController implements IWindowController { public AnchorPane mainWindowPane; public ToolBar toolbar; public ListView listView; diff --git a/src/main/java/io/github/stekeblad/videouploader/utils/ConfigManager.java b/src/main/java/io/github/stekeblad/videouploader/utils/ConfigManager.java index eea75aa..5762473 100644 --- a/src/main/java/io/github/stekeblad/videouploader/utils/ConfigManager.java +++ b/src/main/java/io/github/stekeblad/videouploader/utils/ConfigManager.java @@ -101,7 +101,7 @@ private void loadSettings() { setIfMissing("ui_language", String.valueOf(Locale.getDefault())); setIfMissing(WIN_SIZE + WindowPropertyNames.MAIN, "900x825"); - setIfMissing(WIN_LOC + WindowPropertyNames.MAIN, "50x50"); + setIfMissing(WIN_LOC + WindowPropertyNames.MAIN, "150x100"); setIfMissing(WIN_SIZE + WindowPropertyNames.PRESETS, "725x700"); setIfMissing(WIN_LOC + WindowPropertyNames.PRESETS, "150x100"); setIfMissing(WIN_SIZE + WindowPropertyNames.SETTINGS, "500x500"); diff --git a/src/main/java/io/github/stekeblad/videouploader/utils/Constants.java b/src/main/java/io/github/stekeblad/videouploader/utils/Constants.java index 09fd497..a9ae126 100644 --- a/src/main/java/io/github/stekeblad/videouploader/utils/Constants.java +++ b/src/main/java/io/github/stekeblad/videouploader/utils/Constants.java @@ -20,6 +20,8 @@ public class Constants { public static final String DEFAULT_LOCALE = "default (english)"; + public static final WindowDimensionsRestriction MAIN_WINDOW_DIMENSIONS_RESTRICTION = + new WindowDimensionsRestriction(800, 1500, 400, 3000); public static final WindowDimensionsRestriction SETTINGS_WINDOW_DIMENSIONS_RESTRICTION = new WindowDimensionsRestriction(550, 550, 450, 450); public static final WindowDimensionsRestriction PLAYLISTS_WINDOW_DIMENSIONS_RESTRICTION = diff --git a/src/main/java/io/github/stekeblad/videouploader/windowControllers/MetaDataToolWindowController.java b/src/main/java/io/github/stekeblad/videouploader/windowControllers/MetaDataToolWindowController.java index b2656f5..dbef3ce 100644 --- a/src/main/java/io/github/stekeblad/videouploader/windowControllers/MetaDataToolWindowController.java +++ b/src/main/java/io/github/stekeblad/videouploader/windowControllers/MetaDataToolWindowController.java @@ -42,7 +42,7 @@ public void myInit() { // F1 for wiki on this window MetaDataToolWindow.getScene().setOnKeyPressed(event -> { if (event.getCode() == KeyCode.F1) { - OpenInBrowser.openInBrowser("https://github.com/Stekeblad/Stekeblads-Video-Uploader/wiki/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); + OpenInBrowser.openInBrowser("https://github.com/Stekeblad/Stekeblads-Video-Uploader/wiki/Meta-Data-Tool-Window"); event.consume(); } });