From 2cc7e80e921a095d02689f8bf46522ca6b7b2ae4 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 1 Mar 2020 17:07:23 +0100 Subject: [PATCH] Fixed #158 - menu shows option to view desktop mode even if touch mode is not active --- .../main/java/de/tobias/playpad/Strings.java | 4 -- .../DesktopMenuToolbarViewController.java | 40 ++++++++++++------- .../touch/TouchMenuToolbarViewController.java | 4 ++ .../main/MainViewController.java | 1 + .../main/MenuToolbarViewController.java | 2 + 5 files changed, 32 insertions(+), 19 deletions(-) diff --git a/PlayWall/src/main/java/de/tobias/playpad/Strings.java b/PlayWall/src/main/java/de/tobias/playpad/Strings.java index b0dd8185..b28adcf2 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/Strings.java +++ b/PlayWall/src/main/java/de/tobias/playpad/Strings.java @@ -232,10 +232,6 @@ public class Strings { // TriggerPoint - Enum public static final String TRIGGER_POINT = "TriggerPoint."; - // Main Layout - public static final String MAIN_LAYOUT_DESKTOP = "MainLayout.Desktop"; - public static final String MAIN_LAYOUT_TOUCH = "MainLayout.Touch"; - // Search public static final String SEARCH_BUTTON = "Search.Button"; public static final String SEARCH_PLACEHOLDER = "Search.Placeholder"; diff --git a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java index 6c5477e3..fc6d030e 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java +++ b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java @@ -82,6 +82,8 @@ import java.util.Optional; public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewController implements EventHandler<ActionEvent>, ChangeListener<DesktopEditMode> { + private static final String LAYOUT_MENU_ITEM_IDENTIFIER = "layout-menu-item"; + @FXML private MenuBar menuBar; @@ -230,6 +232,7 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro // Desktop Edit Mode Change Listener --> Update Button @Override public void changed(ObservableValue<? extends DesktopEditMode> observable, DesktopEditMode oldValue, DesktopEditMode newValue) { + // handle old mode if (oldValue == DesktopEditMode.DRAG) { for (IPadView view : mainViewController.getPadViews()) { @@ -291,30 +294,37 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro mainViewController.getPadViews().forEach(i -> i.getViewController().updateButtonDisable()); } - private void initLayoutMenu() { + @Override + public void initLayoutMenu() { ProfileSettings profileSettings = Profile.currentProfile().getProfileSettings(); Registry<MainLayoutFactory> mainLayouts = PlayPadPlugin.getRegistries().getMainLayouts(); + layoutMenu.getItems().removeIf(item -> LAYOUT_MENU_ITEM_IDENTIFIER.equals(item.getUserData())); + int index = 1; // Für Tastenkombination for (MainLayoutFactory connect : mainLayouts.getComponents()) { - if (!connect.getType().equals(profileSettings.getMainLayoutType())) { - MenuItem item = new MenuItem(connect.toString()); + if(connect.getType().equals(profileSettings.getMainLayoutType())) + { + continue; + } - item.setOnAction(e -> - { - mainViewController.setMainLayout(connect); - Profile.currentProfile().getProfileSettings().setMainLayoutType(connect.getType()); - }); + MenuItem item = new MenuItem(connect.toString()); + item.setUserData(LAYOUT_MENU_ITEM_IDENTIFIER); - // Key Combi - if (index < 10) { - item.setAccelerator(KeyCombination.keyCombination("Shortcut+" + index)); - } + item.setOnAction(e -> + { + mainViewController.setMainLayout(connect); + Profile.currentProfile().getProfileSettings().setMainLayoutType(connect.getType()); + }); - layoutMenu.getItems().add(item); - index++; + // Key combination + if (index < 10) { + item.setAccelerator(KeyCombination.keyCombination("Shortcut+" + index)); } - } + + layoutMenu.getItems().add(item); + index++; + } } @Override diff --git a/PlayWall/src/main/java/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java b/PlayWall/src/main/java/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java index 0ebc97bc..51f0e319 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java +++ b/PlayWall/src/main/java/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java @@ -156,4 +156,8 @@ public class TouchMenuToolbarViewController extends BasicMenuToolbarViewControll } } + @Override + public void initLayoutMenu() + { + } } \ No newline at end of file diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/MainViewController.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/MainViewController.java index bfe085df..408749b0 100644 --- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/MainViewController.java +++ b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/MainViewController.java @@ -591,6 +591,7 @@ public class MainViewController extends NVC implements IMainViewController, Noti this.mainLayout = mainLayoutConnect; initMainLayout(); + this.menuToolbarViewController.initLayoutMenu(); } /* diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java b/PlayWallCore/src/main/java/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java index bc6a2257..a72fc0d3 100644 --- a/PlayWallCore/src/main/java/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java +++ b/PlayWallCore/src/main/java/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java @@ -164,4 +164,6 @@ public abstract class MenuToolbarViewController extends NVC { * @param project neues Project */ public abstract void setOpenProject(Project project); + + public abstract void initLayoutMenu(); } -- GitLab