diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java index 1abb14457d876c41953cac103adcefd82aab0b82..42aef89e53ed779fcfa261933fced7dc1d29a9ba 100644 --- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java +++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java @@ -178,6 +178,20 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro fullScreenMenuItem.setAccelerator(KeyCombination.valueOf(keys.getKey("window_fullscreen").getKeyCode())); alwaysOnTopItem.setAccelerator(KeyCombination.valueOf(keys.getKey("window_top").getKeyCode())); + + newProjectMenuItem.setDisable(false); + openProjectMenuItem.setDisable(false); + saveProjectMenuItem.setDisable(false); + printProjectMenuItem.setDisable(false); + + dndModeMenuItem.setDisable(false); + errorMenu.setDisable(false); + pluginMenu.setDisable(false); + settingsMenuItem.setDisable(false); + globalSettingsMenuItem.setDisable(false); + + fullScreenMenuItem.setDisable(false); + alwaysOnTopItem.setDisable(false); } @Override @@ -234,8 +248,19 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro @Override public void deinit() { - toolbarHBox.prefWidthProperty().unbind(); - toolbarHBox.prefHeightProperty().unbind(); + newProjectMenuItem.setDisable(true); + openProjectMenuItem.setDisable(true); + saveProjectMenuItem.setDisable(true); + printProjectMenuItem.setDisable(true); + + dndModeMenuItem.setDisable(true); + errorMenu.setDisable(true); + pluginMenu.setDisable(true); + settingsMenuItem.setDisable(true); + globalSettingsMenuItem.setDisable(true); + + fullScreenMenuItem.setDisable(true); + alwaysOnTopItem.setDisable(true); // Disable Drag Mode wenn aktiv und diese Toolbar deaktiviert wird. if (dndModeMenuItem.isSelected()) { diff --git a/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java b/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java index 3e463aeb64931b9edbc97607f127bcfea036426f..cc38aada38590f189e598adee5e17670ad766a1b 100644 --- a/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java +++ b/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java @@ -39,14 +39,14 @@ public class TouchMenuToolbarViewController extends BasicMenuToolbarViewControll toolbarHBox.prefHeightProperty().bind(toolbar.minHeightProperty()); showLiveInfo(false); - + // Schriftgröße Icons FontIcon icon = (FontIcon) volumeDownLabel.getGraphic(); icon.setSize(35); icon = (FontIcon) volumeUpLabel.getGraphic(); icon.setSize(35); } - + @Override public void initPageButtons() { pageHBox.getChildren().clear(); @@ -64,9 +64,9 @@ public class TouchMenuToolbarViewController extends BasicMenuToolbarViewControll @Override public void loadKeybinding(KeyCollection keys) { - + } - + @Override public void setLocked(boolean looked) {} @@ -107,10 +107,7 @@ public class TouchMenuToolbarViewController extends BasicMenuToolbarViewControll } @Override - public void deinit() { - toolbarHBox.prefWidthProperty().unbind(); - toolbarHBox.prefHeightProperty().unbind(); - } + public void deinit() {} @Override public void showLiveInfo(boolean show) { diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java index 51e2c9ffe6cdb931fb08bf9a10c41d2ebdfd493f..d1eb43303d7f411b344626a2db2ac48686b27021 100644 --- a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java +++ b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java @@ -195,7 +195,7 @@ public class MainViewControllerV2 extends ViewController implements IMainViewCon ProfileSettings settings = Profile.currentProfile().getProfileSettings(); if (menuToolbarViewController != null) { - // menuToolbarViewController.deinit(); + menuToolbarViewController.deinit(); menuToolbarViewController.getVolumeSlider().valueProperty().unbindBidirectional(settings.volumeProperty()); menuToolbarViewController.getVolumeSlider().valueProperty().removeListener(volumeChangeListener); @@ -221,6 +221,10 @@ public class MainViewControllerV2 extends ViewController implements IMainViewCon GlobalSettings globalSettings = PlayPadPlugin.getImplementation().getGlobalSettings(); menuToolbarViewController.loadKeybinding(globalSettings.getKeyCollection()); + // Update Locked Listener + ProfileSettings profileSettings = Profile.currentProfile().getProfileSettings(); + lockedListener.changed(profileSettings.lockedProperty(), !profileSettings.isLocked(), profileSettings.isLocked()); + createPadViews(); showPage(currentPageShowing); diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/KeysTabViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/KeysTabViewController.java index 4781a824ebfe051e85448e3c3d7392c5d21b8320..6036bb4f44f4cce879d653faf1cc2aa83227cb25 100644 --- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/KeysTabViewController.java +++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/KeysTabViewController.java @@ -12,18 +12,21 @@ import de.tobias.utils.util.Localization; import de.tobias.utils.util.OS; import javafx.application.Platform; import javafx.beans.property.SimpleStringProperty; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.collections.transformation.FilteredList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.Scene; import javafx.scene.control.Alert; import javafx.scene.control.Alert.AlertType; -import javafx.scene.input.KeyCode; import javafx.scene.control.Button; import javafx.scene.control.ButtonType; import javafx.scene.control.Label; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextField; +import javafx.scene.input.KeyCode; import javafx.stage.Stage; public class KeysTabViewController extends GlobalSettingsTabViewController { @@ -39,6 +42,7 @@ public class KeysTabViewController extends GlobalSettingsTabViewController { @FXML private Button newShortcutButton; private Key currentKey; + private ObservableList<Key> keys = FXCollections.observableArrayList(); public KeysTabViewController() { super("keysTab", "de/tobias/playpad/assets/view/option/global/", PlayPadMain.getUiResourceBundle()); @@ -60,6 +64,7 @@ public class KeysTabViewController extends GlobalSettingsTabViewController { { setDetailView(c); }); + searchTextField.textProperty().addListener((a, b, c) -> search()); } private void setDetailView(Key key) { @@ -93,16 +98,19 @@ public class KeysTabViewController extends GlobalSettingsTabViewController { if (OS.isWindows() || macCondition) { String key = ev.getCode().getName(); - currentKey.setKey(key); - currentKey.setAlt(ev.isAltDown()); - currentKey.setMeta(ev.isMetaDown()); - currentKey.setCtrl(ev.isControlDown()); - currentKey.setShift(ev.isShiftDown()); + Key newKey = new Key(currentKey.getId(), key, ev.isControlDown(), ev.isAltDown(), ev.isMetaDown(), ev.isShiftDown()); - shortcutLabel.setText(currentKey.toString()); + GlobalSettings globalSettings = PlayPadPlugin.getImplementation().getGlobalSettings(); + boolean conflict = globalSettings.getKeyCollection().keysConflict(newKey); + if (!conflict) { + globalSettings.getKeyCollection().editKey(newKey); - Platform.runLater(() -> ((Stage) scene.getWindow()).close()); + shortcutLabel.setText(currentKey.toString()); + Platform.runLater(() -> ((Stage) scene.getWindow()).close()); + } else { + showErrorMessage("Konflikt"); // TODO Localize + } } }); @@ -113,7 +121,8 @@ public class KeysTabViewController extends GlobalSettingsTabViewController { @Override public void loadSettings(GlobalSettings settings) { - table.getItems().setAll(settings.getKeyCollection().getKeys()); + keys.setAll(settings.getKeyCollection().getKeys()); + table.setItems(keys); } @Override @@ -125,7 +134,7 @@ public class KeysTabViewController extends GlobalSettingsTabViewController { public boolean needReload() { return true; } - + @Override public void reload(GlobalSettings settings, Project project, IMainViewController controller) { controller.loadKeybinding(settings.getKeyCollection()); @@ -142,4 +151,15 @@ public class KeysTabViewController extends GlobalSettingsTabViewController { return "Keyboard (I18N)"; } + private void search() { + FilteredList<Key> filteredData = new FilteredList<>(keys, s -> true); + String search = searchTextField.getText(); + if (search == null || search.length() == 0) { + filteredData.setPredicate(s -> true); + } else { + GlobalSettings globalSettings = PlayPadPlugin.getImplementation().getGlobalSettings(); + filteredData.setPredicate(s -> globalSettings.getKeyCollection().getName(s.getId()).toLowerCase().startsWith(search.toLowerCase())); + } + table.setItems(filteredData); + } } diff --git a/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java b/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java index 8e41c287a6439f0f5515cfde3c3ca5820831a32b..a547fc2c93e395e6ca203ac50c0e39315b7681dd 100644 --- a/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java +++ b/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java @@ -46,7 +46,7 @@ public class KeyCollection { public boolean keysConflict(Key key) { for (Key k : keys.values()) { - if (k.getKeyCode().equals(key)) { + if (k.getKeyCode().equals(key.getKeyCode())) { return true; } } @@ -92,9 +92,7 @@ public class KeyCollection { String name = loadName(keyElement, bundle); Key key = keySerializer.loadElement(keyElement); - - System.out.println(key); - + names.put(key.getId(), name); register(key); } @@ -112,4 +110,14 @@ public class KeyCollection { } return null; } + + public void editKey(Key newKey) { + Key savedKey = getKey(newKey.getId()); + + savedKey.setAlt(newKey.isAlt()); + savedKey.setCtrl(newKey.isCtrl()); + savedKey.setMeta(newKey.isMeta()); + savedKey.setShift(newKey.isShift()); + savedKey.setKey(newKey.getKey()); + } }