mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-05-23 05:01:28 +00:00
condensed vault list implemented
This commit is contained in:
@@ -60,6 +60,7 @@ public class Settings {
|
||||
public final ObjectProperty<NodeOrientation> userInterfaceOrientation;
|
||||
public final StringProperty licenseKey;
|
||||
public final BooleanProperty showTrayIcon;
|
||||
public final BooleanProperty useCondensedMode;
|
||||
public final IntegerProperty windowXPosition;
|
||||
public final IntegerProperty windowYPosition;
|
||||
public final IntegerProperty windowWidth;
|
||||
@@ -96,6 +97,7 @@ public class Settings {
|
||||
this.userInterfaceOrientation = new SimpleObjectProperty<>(this, "userInterfaceOrientation", parseEnum(json.uiOrientation, NodeOrientation.class, NodeOrientation.LEFT_TO_RIGHT));
|
||||
this.licenseKey = new SimpleStringProperty(this, "licenseKey", json.licenseKey);
|
||||
this.showTrayIcon = new SimpleBooleanProperty(this, "showTrayIcon", json.showTrayIcon);
|
||||
this.useCondensedMode = new SimpleBooleanProperty(this, "useCondensedMode", json.useCondensedMode);
|
||||
this.windowXPosition = new SimpleIntegerProperty(this, "windowXPosition", json.windowXPosition);
|
||||
this.windowYPosition = new SimpleIntegerProperty(this, "windowYPosition", json.windowYPosition);
|
||||
this.windowWidth = new SimpleIntegerProperty(this, "windowWidth", json.windowWidth);
|
||||
@@ -122,6 +124,7 @@ public class Settings {
|
||||
userInterfaceOrientation.addListener(this::somethingChanged);
|
||||
licenseKey.addListener(this::somethingChanged);
|
||||
showTrayIcon.addListener(this::somethingChanged);
|
||||
useCondensedMode.addListener(this::somethingChanged);
|
||||
windowXPosition.addListener(this::somethingChanged);
|
||||
windowYPosition.addListener(this::somethingChanged);
|
||||
windowWidth.addListener(this::somethingChanged);
|
||||
@@ -175,6 +178,7 @@ public class Settings {
|
||||
json.uiOrientation = userInterfaceOrientation.get().name();
|
||||
json.licenseKey = licenseKey.get();
|
||||
json.showTrayIcon = showTrayIcon.get();
|
||||
json.useCondensedMode = useCondensedMode.get();
|
||||
json.windowXPosition = windowXPosition.get();
|
||||
json.windowYPosition = windowYPosition.get();
|
||||
json.windowWidth = windowWidth.get();
|
||||
|
||||
@@ -54,6 +54,9 @@ class SettingsJson {
|
||||
@JsonProperty("showTrayIcon")
|
||||
boolean showTrayIcon;
|
||||
|
||||
@JsonProperty("useCondensedMode")
|
||||
boolean useCondensedMode;
|
||||
|
||||
@JsonProperty("startHidden")
|
||||
boolean startHidden = Settings.DEFAULT_START_HIDDEN;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.cryptomator.ui.mainwindow;
|
||||
|
||||
import org.cryptomator.common.settings.Settings;
|
||||
import org.cryptomator.common.vaults.Vault;
|
||||
import org.cryptomator.common.vaults.VaultState;
|
||||
import org.cryptomator.ui.common.Animations;
|
||||
@@ -9,6 +10,8 @@ import org.cryptomator.ui.controls.FontAwesome5Icon;
|
||||
import org.cryptomator.ui.controls.FontAwesome5IconView;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.beans.binding.BooleanBinding;
|
||||
import javafx.beans.property.ObjectProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
@@ -18,6 +21,7 @@ public class VaultListCellController implements FxController {
|
||||
|
||||
private final ObjectProperty<Vault> vault = new SimpleObjectProperty<>();
|
||||
private final ObservableValue<FontAwesome5Icon> glyph;
|
||||
private final BooleanBinding useCondensedMode;
|
||||
|
||||
private AutoAnimator spinAnimation;
|
||||
|
||||
@@ -25,8 +29,9 @@ public class VaultListCellController implements FxController {
|
||||
public FontAwesome5IconView vaultStateView;
|
||||
|
||||
@Inject
|
||||
VaultListCellController() {
|
||||
VaultListCellController(Settings settings) {
|
||||
this.glyph = vault.flatMap(Vault::stateProperty).map(this::getGlyphForVaultState);
|
||||
this.useCondensedMode = Bindings.createBooleanBinding(settings.useCondensedMode::get, settings.useCondensedMode);
|
||||
}
|
||||
|
||||
public void initialize() {
|
||||
@@ -68,6 +73,13 @@ public class VaultListCellController implements FxController {
|
||||
return vault.get();
|
||||
}
|
||||
|
||||
public BooleanBinding useCondensedModeProperty() {
|
||||
return useCondensedMode;
|
||||
}
|
||||
public boolean isUseCondensedMode() {
|
||||
return useCondensedMode.get();
|
||||
}
|
||||
|
||||
public void setVault(Vault value) {
|
||||
vault.set(value);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.cryptomator.ui.mainwindow;
|
||||
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.cryptomator.common.settings.Settings;
|
||||
import org.cryptomator.common.vaults.Vault;
|
||||
import org.cryptomator.common.vaults.VaultListManager;
|
||||
import org.cryptomator.cryptofs.CryptoFileSystemProvider;
|
||||
@@ -71,6 +72,7 @@ public class VaultListController implements FxController {
|
||||
private final BooleanProperty draggingVaultOver = new SimpleBooleanProperty();
|
||||
private final ResourceBundle resourceBundle;
|
||||
private final FxApplicationWindows appWindows;
|
||||
private final BooleanBinding useCondensedMode;
|
||||
|
||||
public ListView<Vault> vaultList;
|
||||
public VBox vbox;
|
||||
@@ -89,7 +91,8 @@ public class VaultListController implements FxController {
|
||||
RemoveVaultComponent.Builder removeVaultDialogue, //
|
||||
VaultListManager vaultListManager, //
|
||||
ResourceBundle resourceBundle, //
|
||||
FxApplicationWindows appWindows) {
|
||||
FxApplicationWindows appWindows, //
|
||||
Settings settings) {
|
||||
this.mainWindow = mainWindow;
|
||||
this.vaults = vaults;
|
||||
this.selectedVault = selectedVault;
|
||||
@@ -102,6 +105,7 @@ public class VaultListController implements FxController {
|
||||
this.appWindows = appWindows;
|
||||
|
||||
this.emptyVaultList = Bindings.isEmpty(vaults);
|
||||
this.useCondensedMode = Bindings.createBooleanBinding(settings.useCondensedMode::get, settings.useCondensedMode);
|
||||
|
||||
selectedVault.addListener(this::selectedVaultDidChange);
|
||||
}
|
||||
@@ -110,6 +114,9 @@ public class VaultListController implements FxController {
|
||||
vaultList.setItems(vaults);
|
||||
vaultList.setCellFactory(cellFactory);
|
||||
|
||||
vaultList.fixedCellSizeProperty().bind(Bindings.createDoubleBinding(() ->
|
||||
useCondensedMode.get() ? 30.0 : 60.0, useCondensedMode));
|
||||
|
||||
selectedVault.bind(vaultList.getSelectionModel().selectedItemProperty());
|
||||
vaults.addListener((ListChangeListener.Change<? extends Vault> c) -> {
|
||||
while (c.next()) {
|
||||
|
||||
@@ -37,6 +37,7 @@ public class InterfacePreferencesController implements FxController {
|
||||
private final SupportedLanguages supportedLanguages;
|
||||
public ChoiceBox<UiTheme> themeChoiceBox;
|
||||
public CheckBox showTrayIconCheckbox;
|
||||
public CheckBox useCondensedModeCheckbox;
|
||||
public ChoiceBox<String> preferredLanguageChoiceBox;
|
||||
public ToggleGroup nodeOrientation;
|
||||
public RadioButton nodeOrientationLtr;
|
||||
@@ -63,6 +64,7 @@ public class InterfacePreferencesController implements FxController {
|
||||
themeChoiceBox.setConverter(new UiThemeConverter(resourceBundle));
|
||||
|
||||
showTrayIconCheckbox.selectedProperty().bindBidirectional(settings.showTrayIcon);
|
||||
useCondensedModeCheckbox.selectedProperty().bindBidirectional(settings.useCondensedMode);
|
||||
|
||||
preferredLanguageChoiceBox.getItems().addAll(supportedLanguages.getLanguageTags());
|
||||
preferredLanguageChoiceBox.valueProperty().bindBidirectional(settings.language);
|
||||
|
||||
Reference in New Issue
Block a user