diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e7175ba2ec..bb55b134ed3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,6 +51,7 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv - We fixed an issue where the entry preview highlight was not working when searching before opening the entry editor. [#11659](https://github.com/JabRef/jabref/pull/11659) - We fixed an issue where text in Dark mode inside "Citation information" was not readable. [#11512](https://github.com/JabRef/jabref/issues/11512) - We fixed an issue where the selection of an entry in the table lost after searching for a group. [#3176](https://github.com/JabRef/jabref/issues/3176) +- We fixed the non-functionality of the option "Automatically sync bibliography when inserting citations" in the OpenOffice panel, when enabled in case of JStyles. [#11684](https://github.com/JabRef/jabref/issues/11684) ### Removed diff --git a/build.gradle b/build.gradle index 6252c37b26e..d348f85ac69 100644 --- a/build.gradle +++ b/build.gradle @@ -172,15 +172,15 @@ dependencies { implementation "org.apache.lucene:lucene-highlighter:$luceneVersion" implementation group: 'org.apache.commons', name: 'commons-csv', version: '1.11.0' - implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.16.0' + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.17.0' implementation group: 'org.apache.commons', name: 'commons-text', version: '1.12.0' - implementation 'commons-logging:commons-logging:1.3.3' + implementation 'commons-logging:commons-logging:1.3.4' implementation 'com.h2database:h2-mvstore:2.3.232' // required for reading write-protected PDFs - see https://github.com/JabRef/jabref/pull/942#issuecomment-209252635 implementation 'org.bouncycastle:bcprov-jdk18on:1.78.1' - implementation 'commons-cli:commons-cli:1.8.0' + implementation 'commons-cli:commons-cli:1.9.0' // region: LibreOffice implementation 'org.libreoffice:unoloader:24.2.3' @@ -340,7 +340,7 @@ dependencies { exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8' } // GemxFX also (transitively) depends on kotlin - implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.10' + implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.20' implementation 'commons-io:commons-io:2.16.1' @@ -348,7 +348,7 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0' testImplementation 'org.junit.platform:junit-platform-launcher:1.10.3' - testImplementation 'org.mockito:mockito-core:5.12.0' + testImplementation 'org.mockito:mockito-core:5.13.0' testImplementation 'org.xmlunit:xmlunit-core:2.10.0' testImplementation 'org.xmlunit:xmlunit-matchers:2.10.0' testRuntimeOnly 'com.tngtech.archunit:archunit-junit5-engine:1.3.0' diff --git a/docs/decisions/0031-use-current-tab-for-deciding-style-type-for-oo.md b/docs/decisions/0031-use-current-tab-for-deciding-style-type-for-oo.md index c8a78bd9f34..05c9e8481bf 100644 --- a/docs/decisions/0031-use-current-tab-for-deciding-style-type-for-oo.md +++ b/docs/decisions/0031-use-current-tab-for-deciding-style-type-for-oo.md @@ -2,7 +2,7 @@ nav_order: 31 parent: Decision Records --- -# Use currently active Style tab in Select Style Dialog to decide which style to activate +# Use currently active tab in Select style (OO Panel) to decide style type ## Context and Problem Statement diff --git a/src/main/java/org/jabref/gui/openoffice/OOBibBase.java b/src/main/java/org/jabref/gui/openoffice/OOBibBase.java index 8c1b6233ce4..2a19cfe7149 100644 --- a/src/main/java/org/jabref/gui/openoffice/OOBibBase.java +++ b/src/main/java/org/jabref/gui/openoffice/OOBibBase.java @@ -68,11 +68,8 @@ public class OOBibBase { private final DialogService dialogService; - // After inserting a citation, if ooPrefs.getSyncWhenCiting() returns true, shall we also update the bibliography? - private final boolean refreshBibliographyDuringSyncWhenCiting; - // Shall we add "Cited on pages: ..." to resolved bibliography entries? - private final boolean alwaysAddCitedOnPages; + private final boolean alwaysAddCitedOnPages; // TODO (see comment above) private final OOBibBaseConnect connection; @@ -86,7 +83,6 @@ public OOBibBase(Path loPath, DialogService dialogService) this.dialogService = dialogService; this.connection = new OOBibBaseConnect(loPath, dialogService); - this.refreshBibliographyDuringSyncWhenCiting = false; this.alwaysAddCitedOnPages = false; } @@ -576,27 +572,19 @@ public void guiActionInsertEntry(List entries, } /* - * For sync we need a FunctionalTextViewCursor. + * For sync we need a FunctionalTextViewCursor and an open database. */ OOResult fcursor = null; if (syncOptions.isPresent()) { fcursor = getFunctionalTextViewCursor(doc, errorTitle); - if (testDialog(errorTitle, fcursor.asVoidResult())) { - return; - } - } - - syncOptions - .map(e -> e.setUpdateBibliography(this.refreshBibliographyDuringSyncWhenCiting)) - .map(e -> e.setAlwaysAddCitedOnPages(this.alwaysAddCitedOnPages)); - - if (syncOptions.isPresent()) { - if (testDialog(databaseIsRequired(syncOptions.get().databases, + if (testDialog(errorTitle, fcursor.asVoidResult()) || testDialog(databaseIsRequired(syncOptions.get().databases, OOError::noDataBaseIsOpenForSyncingAfterCitation))) { return; } } + syncOptions.map(e -> e.setAlwaysAddCitedOnPages(this.alwaysAddCitedOnPages)); // TODO: Provide option to user: this is always false + try { UnoUndo.enterUndoContext(doc, "Insert citation"); @@ -873,7 +861,7 @@ public void guiActionUpdateDocument(List databases, OOStyle style) Update.SyncOptions syncOptions = new Update.SyncOptions(databases); syncOptions .setUpdateBibliography(true) - .setAlwaysAddCitedOnPages(this.alwaysAddCitedOnPages); + .setAlwaysAddCitedOnPages(this.alwaysAddCitedOnPages); // TODO: Provide option to user: this is always false unresolvedKeys = Update.synchronizeDocument(doc, frontend, jStyle, fcursor.get(), syncOptions); } finally { diff --git a/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java b/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java index 4e51e6ec5c1..c4416876ed8 100644 --- a/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java +++ b/src/main/java/org/jabref/gui/openoffice/OpenOfficePanel.java @@ -553,6 +553,10 @@ private void pushEntries(CitationType citationType, boolean addPageInfo) { ? Optional.of(new Update.SyncOptions(getBaseList())) : Optional.empty(); + // Sync options are non-null only when "Automatically sync bibliography when inserting citations" is enabled + if (syncOptions.isPresent() && preferencesService.getOpenOfficePreferences().getSyncWhenCiting()) { + syncOptions.get().setUpdateBibliography(true); + } ooBase.guiActionInsertEntry(entries, bibDatabaseContext, entryTypesManager, diff --git a/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLCitationOOAdapter.java b/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLCitationOOAdapter.java index 0ae03cf03e3..9b529754431 100644 --- a/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLCitationOOAdapter.java +++ b/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLCitationOOAdapter.java @@ -148,7 +148,7 @@ public void insertBibliography(XTextCursor cursor, CitationStyle selectedStyle, OOText title = OOFormat.paragraph(OOText.fromString(CSLFormatUtils.DEFAULT_BIBLIOGRAPHY_TITLE), CSLFormatUtils.DEFAULT_BIBLIOGRAPHY_HEADER_PARAGRAPH_FORMAT); OOTextIntoOO.write(document, cursor, OOText.fromString(title.toString())); - OOText ooBreak = OOFormat.paragraph(OOText.fromString(""), "Body Text"); + OOText ooBreak = OOFormat.paragraph(OOText.fromString(""), CSLFormatUtils.DEFAULT_BIBLIOGRAPHY_BODY_PARAGRAPH_FORMAT); OOTextIntoOO.write(document, cursor, ooBreak); String style = selectedStyle.getSource(); diff --git a/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtils.java b/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtils.java index 0666a411cf7..0ae50cb4716 100644 --- a/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtils.java +++ b/src/main/java/org/jabref/logic/openoffice/oocsltext/CSLFormatUtils.java @@ -29,6 +29,8 @@ public class CSLFormatUtils { public static final String DEFAULT_BIBLIOGRAPHY_TITLE = "References"; public static final String DEFAULT_BIBLIOGRAPHY_HEADER_PARAGRAPH_FORMAT = "Heading 2"; + public static final String DEFAULT_BIBLIOGRAPHY_BODY_PARAGRAPH_FORMAT = "Body Text"; + public static final CitationStyleOutputFormat OUTPUT_FORMAT = CitationStyleOutputFormat.HTML; private static final Pattern YEAR_IN_CITATION_PATTERN = Pattern.compile("(.)(.*), (\\d{4}.*)"); diff --git a/src/main/resources/csl-locales b/src/main/resources/csl-locales index 195bef843f8..7eeb36257a6 160000 --- a/src/main/resources/csl-locales +++ b/src/main/resources/csl-locales @@ -1 +1 @@ -Subproject commit 195bef843f87fc917be45ab3eca60536e4ef4626 +Subproject commit 7eeb36257a68cb1907bd04f0eaa08d9ed238cbe6 diff --git a/src/main/resources/csl-styles b/src/main/resources/csl-styles index 35ac18dc5f6..2b15b1fbc19 160000 --- a/src/main/resources/csl-styles +++ b/src/main/resources/csl-styles @@ -1 +1 @@ -Subproject commit 35ac18dc5f6376a0ecf2858f429e8539bab7f276 +Subproject commit 2b15b1fbc190e003b555486f46ce1112fd95defc