From 5548f8f04eb257d148292b6fedff6c2c86518237 Mon Sep 17 00:00:00 2001 From: Stephen Beitzel Date: Tue, 6 Nov 2018 13:12:52 -0800 Subject: [PATCH] Set auto-update checkbox enable/disable when reading preferences (#4446) * When initializing the UI from prefs, fire an event to make sure dependent controls get updated. Drive-by code cleanup -- enums are singletons; don't call enum.equals(), just use ==. * Update changelog to document fix. * Refactor enable/disable logic to its own method * Revert CHANGELOG. Change checkbox disable/enable logic to use FX bind / observable. --- .../java/org/jabref/gui/preferences/GeneralTab.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/jabref/gui/preferences/GeneralTab.java b/src/main/java/org/jabref/gui/preferences/GeneralTab.java index 2cb74aca865..8e065aab85c 100644 --- a/src/main/java/org/jabref/gui/preferences/GeneralTab.java +++ b/src/main/java/org/jabref/gui/preferences/GeneralTab.java @@ -26,6 +26,8 @@ import org.jabref.model.entry.InternalBibtexFields; import org.jabref.preferences.JabRefPreferences; +import static javafx.beans.binding.Bindings.not; + class GeneralTab extends Pane implements PrefsTab { private final CheckBox useOwner; @@ -59,10 +61,7 @@ public GeneralTab(DialogService dialogService, JabRefPreferences prefs) { updateTimeStamp = new CheckBox(Localization.lang("Update timestamp on modification")); useTimeStamp = new CheckBox(Localization.lang("Mark new entries with addition date") + ". " + Localization.lang("Date format") + ':'); - if (!useTimeStamp.isSelected()) { - updateTimeStamp.setDisable(true); - } - useTimeStamp.setOnAction(e->updateTimeStamp.setDisable(!useTimeStamp.isSelected())); + updateTimeStamp.disableProperty().bind(not(useTimeStamp.selectedProperty())); overwriteOwner = new CheckBox(Localization.lang("Overwrite")); overwriteTimeStamp = new CheckBox(Localization.lang("If a pasted or imported entry already has the field set, overwrite.")); enforceLegalKeys = new CheckBox(Localization.lang("Enforce legal characters in BibTeX keys")); @@ -182,9 +181,9 @@ public void storeSettings() { // Update name of the time stamp field based on preferences InternalBibtexFields.updateTimeStampField(prefs.get(JabRefPreferences.TIME_STAMP_FIELD)); prefs.setDefaultEncoding(encodings.getValue()); - prefs.putBoolean(JabRefPreferences.BIBLATEX_DEFAULT_MODE, biblatexMode.getValue().equals(BibDatabaseMode.BIBLATEX)); + prefs.putBoolean(JabRefPreferences.BIBLATEX_DEFAULT_MODE, biblatexMode.getValue() == BibDatabaseMode.BIBLATEX); - if (!languageSelection.getValue().equals(prefs.getLanguage())) { + if (languageSelection.getValue() != prefs.getLanguage()) { prefs.setLanguage(languageSelection.getValue()); Localization.setLanguage(languageSelection.getValue());