diff --git a/PlayWall/assets/de/tobias/playpad/assets/lang/_de.properties b/PlayWall/assets/de/tobias/playpad/assets/lang/_de.properties index 4d8d70ce1861ba03463b4e7c68789e987cc74829..caad2f1746434c5efa0901e0001f390f814997e3 100644 --- a/PlayWall/assets/de/tobias/playpad/assets/lang/_de.properties +++ b/PlayWall/assets/de/tobias/playpad/assets/lang/_de.properties @@ -64,6 +64,7 @@ UI.Window.Settings.Layout.Title=Layout UI.Window.Settings.Player.Title=Player UI.Window.Settings.Audio.Title=Audio UI.Window.Settings.Updates.Title=Updates +UI.Window.Settings.Paths.Title=Ordner # UI - Dialog - DragAndDrop UI.Dialog.DragAndDrop.Header=Hinweis @@ -144,6 +145,7 @@ Error.Project.Save=Das Projekt {} konnte nicht gespeichert werden. ({}) Error.Project.Rename=Das Projekt konnte nicht umbenannt werden. ({}) Error.Project.Delete=Das Projekt konnte nicht gel�scht werden. ({}) Error.Project.Export=Das Projekt {} konnte nicht exportiert werden. ({}) +Error.Project.MediaPath=Der neue Ordner muss au�erhalb des alten Medienordners liegen. # Error - Pad - Enum Error.Pad.FILE_NOT_FOUND=Die Datei {} konnte nicht gefunden werden. diff --git a/PlayWall/assets/de/tobias/playpad/assets/lang/ui_de.properties b/PlayWall/assets/de/tobias/playpad/assets/lang/ui_de.properties index 347214a9facf30eb4cc963477a3785bf0c721af5..60b6e8199cdf6dc0962bcd1243b5fcb732984e07 100644 --- a/PlayWall/assets/de/tobias/playpad/assets/lang/ui_de.properties +++ b/PlayWall/assets/de/tobias/playpad/assets/lang/ui_de.properties @@ -91,7 +91,7 @@ settings.keys.textfield.search=Suchen... settings.paths.label.media=Mediendateien: settings.paths.button.choose=W�hlen... -settings.paths.checkbox.mediaActive=Mediendateien in Medienordner kopieren (oder am Orgenialpfad lassen) // TODO +settings.paths.checkbox.mediaActive=Mediendateien in Medienordner kopieren (oder am Orgenialpfad lassen) settings.button.finish=Fertig settings.checkbox.activate=Aktivieren diff --git a/PlayWall/src/de/tobias/playpad/Strings.java b/PlayWall/src/de/tobias/playpad/Strings.java index 22a764fa04aa0e6f524a5140827f8f00acaab6b3..5153a5e69daa141b85ea055121b15262370d9eb7 100644 --- a/PlayWall/src/de/tobias/playpad/Strings.java +++ b/PlayWall/src/de/tobias/playpad/Strings.java @@ -61,6 +61,7 @@ public class Strings { public static final String UI_Window_Settings_Player_Title = "UI.Window.Settings.Player.Title"; public static final String UI_Window_Settings_Audio_Title = "UI.Window.Settings.Audio.Title"; public static final String UI_Window_Settings_Updates_Title = "UI.Window.Settings.Updates.Title"; + public static final String UI_Window_Settings_Paths_Title = "UI.Window.Settings.Paths.Title"; // UI - Dialogs - DragAndDrop public static final String UI_Dialog_DragAndDrop_Header = "UI.Dialog.DragAndDrop.Header"; @@ -141,6 +142,7 @@ public class Strings { public static final String Error_Project_Rename = "Error.Project.Rename"; public static final String Error_Project_Delete = "Error.Project.Delete"; public static final String Error_Project_Export = "Error.Project.Export"; + public static final String Error_Project_MediaPath = "Error.Project.MediaPath"; // Error - Pad public static final String Error_Pad_BaseName = "Error.Pad."; diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/PathsTabViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/PathsTabViewController.java index ed6db8b6486e507d1429dd8e4188f0126a1c8012..f755db2f957ed176db10b58954a8e7fb724b929c 100644 --- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/PathsTabViewController.java +++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/PathsTabViewController.java @@ -10,6 +10,7 @@ import java.util.List; import java.util.Optional; import de.tobias.playpad.PlayPadMain; +import de.tobias.playpad.Strings; import de.tobias.playpad.pad.Pad; import de.tobias.playpad.pad.PadStatus; import de.tobias.playpad.pad.conntent.PadContent; @@ -22,6 +23,7 @@ import de.tobias.playpad.viewcontroller.main.IMainViewController; import de.tobias.playpad.viewcontroller.option.IProjectReloadTask; import de.tobias.playpad.viewcontroller.option.ProjectSettingsTabViewController; import de.tobias.utils.util.FileUtils; +import de.tobias.utils.util.Localization; import javafx.application.Platform; import javafx.concurrent.Task; import javafx.event.ActionEvent; @@ -39,6 +41,7 @@ public class PathsTabViewController extends ProjectSettingsTabViewController imp @FXML private CheckBox useMediaPath; private transient boolean changedMediaPath = false; + private transient Optional<Path> currentMediaPath = Optional.empty(); private transient Optional<Path> oldMediaPath = Optional.empty(); public PathsTabViewController() { @@ -51,14 +54,25 @@ public class PathsTabViewController extends ProjectSettingsTabViewController imp File folder = chooser.showDialog(getStage()); if (folder != null) { Path path = folder.toPath(); + + if (currentMediaPath.isPresent()) { + boolean subDirectory = FileUtils.isSubDirectory(currentMediaPath.get(), path); + if (subDirectory) { + showErrorMessage(Localization.getString(Strings.Error_Project_MediaPath)); + return; + } + } + mediaPathTextField.setText(path.toString()); } } @Override public void loadSettings(ProjectSettings settings) { - if (settings.isUseMediaPath()) + if (settings.isUseMediaPath()) { mediaPathTextField.setText(settings.getMediaPath().toString()); + currentMediaPath = Optional.of(settings.getMediaPath()); + } useMediaPath.setSelected(settings.isUseMediaPath()); } @@ -68,8 +82,8 @@ public class PathsTabViewController extends ProjectSettingsTabViewController imp Path newPath = Paths.get(mediaPathTextField.getText()); if (settings.getMediaPath() != null) { if (!settings.getMediaPath().equals(newPath)) { - changedMediaPath = true; if (settings.getMediaPath() != null && !settings.getMediaPath().toString().isEmpty()) { + changedMediaPath = true; oldMediaPath = Optional.of(settings.getMediaPath()); } } @@ -78,7 +92,6 @@ public class PathsTabViewController extends ProjectSettingsTabViewController imp settings.setMediaPath(newPath); } settings.setUseMediaPath(useMediaPath.isSelected()); - } @Override @@ -88,7 +101,7 @@ public class PathsTabViewController extends ProjectSettingsTabViewController imp @Override public String name() { - return "Pfade (i18n)"; // TODO + return Localization.getString(Strings.UI_Window_Settings_Paths_Title); } // Reload Data @@ -119,7 +132,8 @@ public class PathsTabViewController extends ProjectSettingsTabViewController imp Files.copy(path, copiedFile, StandardCopyOption.REPLACE_EXISTING); - Platform.runLater(() -> { + Platform.runLater(() -> + { try { content.handlePath(copiedFile); } catch (NoSuchComponentException e) { @@ -150,7 +164,6 @@ public class PathsTabViewController extends ProjectSettingsTabViewController imp } } - // TODO Clear old media folder if (oldMediaPath.isPresent()) try { FileUtils.deleteDirectory(oldMediaPath.get());