Procházet zdrojové kódy

Add disable all keyrings setting checkbox
and connect it to the settings file

Ralph Plawetzki před 2 roky
rodič
revize
e6c7fed662

+ 5 - 0
src/main/java/org/cryptomator/common/settings/Settings.java

@@ -33,6 +33,7 @@ public class Settings {
 	public static final boolean DEFAULT_CHECK_FOR_UPDATES = false;
 	public static final boolean DEFAULT_START_HIDDEN = false;
 	public static final boolean DEFAULT_AUTO_CLOSE_VAULTS = false;
+	public static final boolean DEFAULT_DISABLE_ALL_KEYRINGS = false;
 	public static final int DEFAULT_PORT = 42427;
 	public static final int DEFAULT_NUM_TRAY_NOTIFICATIONS = 3;
 	public static final WebDavUrlScheme DEFAULT_GVFS_SCHEME = WebDavUrlScheme.DAV;
@@ -53,6 +54,7 @@ public class Settings {
 	private final BooleanProperty checkForUpdates = new SimpleBooleanProperty(DEFAULT_CHECK_FOR_UPDATES);
 	private final BooleanProperty startHidden = new SimpleBooleanProperty(DEFAULT_START_HIDDEN);
 	private final BooleanProperty autoCloseVaults = new SimpleBooleanProperty(DEFAULT_AUTO_CLOSE_VAULTS);
+	private final BooleanProperty disableAllKeyrings = new SimpleBooleanProperty(DEFAULT_DISABLE_ALL_KEYRINGS);
 	private final IntegerProperty port = new SimpleIntegerProperty(DEFAULT_PORT);
 	private final IntegerProperty numTrayNotifications = new SimpleIntegerProperty(DEFAULT_NUM_TRAY_NOTIFICATIONS);
 	private final ObjectProperty<WebDavUrlScheme> preferredGvfsScheme = new SimpleObjectProperty<>(DEFAULT_GVFS_SCHEME);
@@ -85,6 +87,7 @@ public class Settings {
 		checkForUpdates.addListener(this::somethingChanged);
 		startHidden.addListener(this::somethingChanged);
 		autoCloseVaults.addListener(this::somethingChanged);
+		disableAllKeyrings.addListener(this::somethingChanged);
 		port.addListener(this::somethingChanged);
 		numTrayNotifications.addListener(this::somethingChanged);
 		preferredGvfsScheme.addListener(this::somethingChanged);
@@ -140,6 +143,8 @@ public class Settings {
 		return autoCloseVaults;
 	}
 
+	public BooleanProperty disableAllKeyrings() { return disableAllKeyrings; }
+
 	public IntegerProperty port() {
 		return port;
 	}

+ 2 - 0
src/main/java/org/cryptomator/common/settings/SettingsJsonAdapter.java

@@ -50,6 +50,7 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
 		out.name("theme").value(value.theme().get().name());
 		out.name("uiOrientation").value(value.userInterfaceOrientation().get().name());
 		out.name("keychainProvider").value(value.keychainProvider().get());
+		out.name("disableAllKeyrings").value(value.disableAllKeyrings().get());
 		out.name("licenseKey").value(value.licenseKey().get());
 		out.name("showMinimizeButton").value(value.showMinimizeButton().get());
 		out.name("showTrayIcon").value(value.showTrayIcon().get());
@@ -92,6 +93,7 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
 				case "theme" -> settings.theme().set(parseUiTheme(in.nextString()));
 				case "uiOrientation" -> settings.userInterfaceOrientation().set(parseUiOrientation(in.nextString()));
 				case "keychainProvider" -> settings.keychainProvider().set(in.nextString());
+				case "disableAllKeyrings" -> settings.disableAllKeyrings().set(in.nextBoolean());
 				case "licenseKey" -> settings.licenseKey().set(in.nextString());
 				case "showMinimizeButton" -> settings.showMinimizeButton().set(in.nextBoolean());
 				case "showTrayIcon" -> settings.showTrayIcon().set(in.nextBoolean());

+ 2 - 0
src/main/java/org/cryptomator/ui/preferences/GeneralPreferencesController.java

@@ -33,6 +33,7 @@ public class GeneralPreferencesController implements FxController {
 	private final Application application;
 	private final Environment environment;
 	private final List<KeychainAccessProvider> keychainAccessProviders;
+	public CheckBox disableAllKeyringsCheckbox;
 	private final FxApplicationWindows appWindows;
 	public ChoiceBox<KeychainAccessProvider> keychainBackendChoiceBox;
 	public CheckBox startHiddenCheckbox;
@@ -64,6 +65,7 @@ public class GeneralPreferencesController implements FxController {
 		keychainBackendChoiceBox.setValue(keychainSettingsConverter.fromString(settings.keychainProvider().get()));
 		keychainBackendChoiceBox.setConverter(new KeychainProviderDisplayNameConverter());
 		Bindings.bindBidirectional(settings.keychainProvider(), keychainBackendChoiceBox.valueProperty(), keychainSettingsConverter);
+		disableAllKeyringsCheckbox.selectedProperty().bindBidirectional(settings.disableAllKeyrings());
 	}
 
 	public boolean isAutoStartSupported() {

+ 1 - 0
src/main/resources/fxml/preferences_general.fxml

@@ -29,6 +29,7 @@
 		<HBox spacing="12" alignment="CENTER_LEFT">
 			<Label text="%preferences.general.keychainBackend"/>
 			<ChoiceBox fx:id="keychainBackendChoiceBox"/>
+			<CheckBox text="%preferences.general.disableAllKeyrings" fx:id="disableAllKeyringsCheckbox"/>
 		</HBox>
 
 		<Region VBox.vgrow="ALWAYS"/>

+ 1 - 0
src/main/resources/i18n/strings.properties

@@ -235,6 +235,7 @@ preferences.general.debugLogging=Enable debug logging
 preferences.general.debugDirectory=Reveal log files
 preferences.general.autoStart=Launch Cryptomator on system start
 preferences.general.keychainBackend=Store passwords with
+preferences.general.disableAllKeyrings=Disable all keyrings
 ## Interface
 preferences.interface=Interface
 preferences.interface.theme=Look & Feel