From 501e6feee441eb0155b9430432467481f80d53d5 Mon Sep 17 00:00:00 2001 From: InAnYan Date: Sat, 13 Sep 2025 12:33:27 +0300 Subject: [PATCH 1/9] feat(citation-key-generator): add support for transliterating fields in citation key --- .../CitationKeyPatternTab.java | 2 + .../CitationKeyPatternTabViewModel.java | 7 ++++ .../CitationKeyPatternTab.fxml | 1 + .../AutoRenameFileOnEntryChangeTest.java | 1 + .../CitationKeyGenerator.java | 29 ++++++++++++- .../CitationKeyPatternPreferences.java | 42 +++++++++++++++++-- .../preferences/JabRefCliPreferences.java | 5 +++ .../CitationKeyGeneratorTest.java | 9 ++++ .../MakeLabelWithDatabaseTest.java | 6 +++ .../MakeLabelWithoutDatabaseTest.java | 1 + .../org/jabref/logic/crawler/CrawlerTest.java | 14 +------ .../logic/crawler/StudyRepositoryTest.java | 16 +------ .../logic/integrity/IntegrityCheckTest.java | 22 ++-------- 13 files changed, 105 insertions(+), 50 deletions(-) diff --git a/jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.java b/jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.java index dac2489ca0e..f1622a84cc6 100644 --- a/jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.java @@ -21,6 +21,7 @@ public class CitationKeyPatternTab extends AbstractPreferenceTabView implements PreferencesTab { + @FXML private CheckBox transliterateFields; @FXML private CheckBox overwriteAllow; @FXML private CheckBox overwriteWarning; @FXML private CheckBox generateOnSave; @@ -48,6 +49,7 @@ public String getTabName() { public void initialize() { this.viewModel = new CitationKeyPatternTabViewModel(preferences.getCitationKeyPatternPreferences(), preferences.getImporterPreferences()); + transliterateFields.selectedProperty().bindBidirectional(viewModel.transliterateFieldsProperty()); overwriteAllow.selectedProperty().bindBidirectional(viewModel.overwriteAllowProperty()); overwriteWarning.selectedProperty().bindBidirectional(viewModel.overwriteWarningProperty()); generateOnSave.selectedProperty().bindBidirectional(viewModel.generateOnSaveProperty()); diff --git a/jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTabViewModel.java b/jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTabViewModel.java index 2ccfdf85897..f9c7a32320f 100644 --- a/jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTabViewModel.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTabViewModel.java @@ -19,6 +19,7 @@ public class CitationKeyPatternTabViewModel implements PreferenceTabViewModel { + private final BooleanProperty transliterateFieldsProperty = new SimpleBooleanProperty(); private final BooleanProperty overwriteAllowProperty = new SimpleBooleanProperty(); private final BooleanProperty overwriteWarningProperty = new SimpleBooleanProperty(); private final BooleanProperty generateOnSaveProperty = new SimpleBooleanProperty(); @@ -53,6 +54,7 @@ public CitationKeyPatternTabViewModel(CitationKeyPatternPreferences keyPatternPr @Override public void setValues() { + transliterateFieldsProperty.setValue(keyPatternPreferences.shouldTransliterateFields()); overwriteAllowProperty.setValue(!keyPatternPreferences.shouldAvoidOverwriteCiteKey()); overwriteWarningProperty.setValue(keyPatternPreferences.shouldWarnBeforeOverwriteCiteKey()); generateOnSaveProperty.setValue(keyPatternPreferences.shouldGenerateCiteKeysBeforeSaving()); @@ -106,6 +108,7 @@ public void storeSettings() { keySuffix = CitationKeyPatternPreferences.KeySuffix.SECOND_WITH_B; } + keyPatternPreferences.setShouldTransliterateFields(transliterateFieldsProperty.getValue()); keyPatternPreferences.setAvoidOverwriteCiteKey(!overwriteAllowProperty.getValue()); keyPatternPreferences.setWarnBeforeOverwriteCiteKey(overwriteWarningProperty.getValue()); keyPatternPreferences.setGenerateCiteKeysBeforeSaving(generateOnSaveProperty.getValue()); @@ -117,6 +120,10 @@ public void storeSettings() { keyPatternPreferences.setKeyPatterns(newKeyPattern); } + public BooleanProperty transliterateFieldsProperty() { + return transliterateFieldsProperty; + } + public BooleanProperty overwriteAllowProperty() { return overwriteAllowProperty; } diff --git a/jabgui/src/main/resources/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.fxml b/jabgui/src/main/resources/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.fxml index adc13ae7070..e119c410a1a 100644 --- a/jabgui/src/main/resources/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.fxml +++ b/jabgui/src/main/resources/org/jabref/gui/preferences/citationkeypattern/CitationKeyPatternTab.fxml @@ -20,6 +20,7 @@