diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f83695e2a1..8fd7bb6f77c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -66,6 +66,7 @@ inserting new citations in a OpenOffic/LibreOffice document. [#6957](https://git - We fixed an issue, when pulling changes from shared database via shortcut caused creation of a new tech report [6867](https://github.com/JabRef/jabref/issues/6867) - We fixed an issue where the JabRef GUI does not highlight the "All entries" group on start-up [#6691](https://github.com/JabRef/jabref/issues/6691) - We fixed an issue where a custom dark theme was not applied to the entry preview tab [7068](https://github.com/JabRef/jabref/issues/7068) +- We fixed an issue where modifications to the Custom preview layout in the preferences were not saved [#6447](https://github.com/JabRef/jabref/issues/6447) ### Removed diff --git a/src/main/java/org/jabref/gui/preferences/PreviewTabView.java b/src/main/java/org/jabref/gui/preferences/PreviewTabView.java index 8ddafe09a47..50cb774c6fd 100644 --- a/src/main/java/org/jabref/gui/preferences/PreviewTabView.java +++ b/src/main/java/org/jabref/gui/preferences/PreviewTabView.java @@ -118,7 +118,7 @@ public void initialize() { availableListView.itemsProperty().bindBidirectional(viewModel.availableListProperty()); viewModel.availableSelectionModelProperty().setValue(availableListView.getSelectionModel()); new ViewModelListCellFactory() - .withText(PreviewLayout::getName) + .withText(PreviewLayout::getDisplayName) .install(availableListView); availableListView.setOnDragOver(this::dragOver); availableListView.setOnDragDetected(this::dragDetectedInAvailable); @@ -129,7 +129,7 @@ public void initialize() { chosenListView.itemsProperty().bindBidirectional(viewModel.chosenListProperty()); viewModel.chosenSelectionModelProperty().setValue(chosenListView.getSelectionModel()); new ViewModelListCellFactory() - .withText(PreviewLayout::getName) + .withText(PreviewLayout::getDisplayName) .setOnDragDropped(this::dragDroppedInChosenCell) .install(chosenListView); chosenListView.setOnDragOver(this::dragOver); @@ -197,7 +197,7 @@ private void jumpToSearchKey(ListView list, KeyEvent keypressed) lastKeyPressTime = System.currentTimeMillis(); - list.getItems().stream().filter(item -> item.getName().toLowerCase().startsWith(listSearchTerm)) + list.getItems().stream().filter(item -> item.getDisplayName().toLowerCase().startsWith(listSearchTerm)) .findFirst().ifPresent(list::scrollTo); } diff --git a/src/main/java/org/jabref/gui/preferences/PreviewTabViewModel.java b/src/main/java/org/jabref/gui/preferences/PreviewTabViewModel.java index 87479ec4d1c..1d879c5258f 100644 --- a/src/main/java/org/jabref/gui/preferences/PreviewTabViewModel.java +++ b/src/main/java/org/jabref/gui/preferences/PreviewTabViewModel.java @@ -91,8 +91,9 @@ public PreviewTabViewModel(DialogService dialogService, PreferencesService prefe initialPreviewPreferences = preferences.getPreviewPreferences(); sourceTextProperty.addListener((observable, oldValue, newValue) -> { - if (getCurrentLayout() instanceof TextBasedPreviewLayout) { - ((TextBasedPreviewLayout) getCurrentLayout()).setText(sourceTextProperty.getValue().replace("\n", "__NEWLINE__")); + var currentLayout = getCurrentLayout(); + if (currentLayout instanceof TextBasedPreviewLayout) { + ((TextBasedPreviewLayout) currentLayout).setText(sourceTextProperty.getValue().replace("\n", "__NEWLINE__")); } }); @@ -112,6 +113,7 @@ public BooleanProperty showAsExtraTabProperty() { return showAsExtraTab; } + @Override public void setValues() { showAsExtraTab.set(initialPreviewPreferences.showPreviewAsExtraTab()); chosenListProperty().getValue().clear(); @@ -174,13 +176,14 @@ private PreviewLayout findLayoutByName(String name) { private PreviewLayout getCurrentLayout() { if (!chosenSelectionModelProperty.getValue().getSelectedItems().isEmpty()) { return chosenSelectionModelProperty.getValue().getSelectedItems().get(0); + } if (!chosenListProperty.getValue().isEmpty()) { return chosenListProperty.getValue().get(0); } - PreviewLayout layout = findLayoutByName("Preview"); + PreviewLayout layout = findLayoutByName(TextBasedPreviewLayout.NAME); if (layout == null) { layout = initialPreviewPreferences.getTextBasedPreviewLayout(); } @@ -196,7 +199,7 @@ public void storeSettings() { chosenListProperty.add(previewPreferences.getTextBasedPreviewLayout()); } - PreviewLayout previewStyle = findLayoutByName("Preview"); + PreviewLayout previewStyle = findLayoutByName(TextBasedPreviewLayout.NAME); if (previewStyle == null) { previewStyle = previewPreferences.getTextBasedPreviewLayout(); } @@ -257,7 +260,7 @@ public void removeFromChosen() { chosenSelectionModelProperty.getValue().clearSelection(); chosenListProperty.removeAll(selected); availableListProperty.addAll(selected); - availableListProperty.sort((a, b) -> a.getName().compareToIgnoreCase(b.getName())); + availableListProperty.sort((a, b) -> a.getDisplayName().compareToIgnoreCase(b.getDisplayName())); } public void selectedInChosenUp() { @@ -413,7 +416,7 @@ public boolean dragDropped(ListProperty targetList, Dragboard dra success = true; if (targetList == availableListProperty) { - targetList.getValue().sort((a, b) -> a.getName().compareToIgnoreCase(b.getName())); + targetList.getValue().sort((a, b) -> a.getDisplayName().compareToIgnoreCase(b.getDisplayName())); } } } diff --git a/src/main/java/org/jabref/gui/preview/PreviewPanel.java b/src/main/java/org/jabref/gui/preview/PreviewPanel.java index 113e65fe0c0..aa77683129c 100644 --- a/src/main/java/org/jabref/gui/preview/PreviewPanel.java +++ b/src/main/java/org/jabref/gui/preview/PreviewPanel.java @@ -111,7 +111,7 @@ private void updateLayout(PreviewPreferences previewPreferences, boolean init) { previewView.setLayout(currentPreviewStyle); preferences.storePreviewPreferences(previewPreferences); if (!init) { - dialogService.notify(Localization.lang("Preview style changed to: %0", currentPreviewStyle.getName())); + dialogService.notify(Localization.lang("Preview style changed to: %0", currentPreviewStyle.getDisplayName())); } } diff --git a/src/main/java/org/jabref/gui/preview/PreviewViewer.java b/src/main/java/org/jabref/gui/preview/PreviewViewer.java index c6515d61e67..5d3e526985d 100644 --- a/src/main/java/org/jabref/gui/preview/PreviewViewer.java +++ b/src/main/java/org/jabref/gui/preview/PreviewViewer.java @@ -188,7 +188,7 @@ private void update() { BackgroundTask .wrap(() -> layout.generatePreview(entry.get(), database.getDatabase())) - .onRunning(() -> setPreviewText("" + Localization.lang("Processing %0", Localization.lang("Citation Style")) + ": " + layout.getName() + " ..." + "")) + .onRunning(() -> setPreviewText("" + Localization.lang("Processing %0", Localization.lang("Citation Style")) + ": " + layout.getDisplayName() + " ..." + "")) .onSuccess(this::setPreviewText) .onFailure(exception -> { LOGGER.error("Error while generating citation style", exception); diff --git a/src/main/java/org/jabref/logic/bst/BstPreviewLayout.java b/src/main/java/org/jabref/logic/bst/BstPreviewLayout.java index 312df6bbf98..545dce5ba6d 100644 --- a/src/main/java/org/jabref/logic/bst/BstPreviewLayout.java +++ b/src/main/java/org/jabref/logic/bst/BstPreviewLayout.java @@ -76,6 +76,11 @@ public String generatePreview(BibEntry originalEntry, BibDatabase database) { return result; } + @Override + public String getDisplayName() { + return name; + } + @Override public String getName() { return name; diff --git a/src/main/java/org/jabref/logic/citationstyle/CitationStylePreviewLayout.java b/src/main/java/org/jabref/logic/citationstyle/CitationStylePreviewLayout.java index d40e86c7414..82f7df56f2b 100644 --- a/src/main/java/org/jabref/logic/citationstyle/CitationStylePreviewLayout.java +++ b/src/main/java/org/jabref/logic/citationstyle/CitationStylePreviewLayout.java @@ -5,7 +5,7 @@ import org.jabref.model.entry.BibEntry; public class CitationStylePreviewLayout implements PreviewLayout { - private CitationStyle citationStyle; + private final CitationStyle citationStyle; public CitationStylePreviewLayout(CitationStyle citationStyle) { this.citationStyle = citationStyle; @@ -17,7 +17,7 @@ public String generatePreview(BibEntry entry, BibDatabase database) { } @Override - public String getName() { + public String getDisplayName() { return citationStyle.getTitle(); } @@ -28,4 +28,9 @@ public String getSource() { public String getFilePath() { return citationStyle.getFilePath(); } + + @Override + public String getName() { + return citationStyle.getTitle(); + } } diff --git a/src/main/java/org/jabref/logic/layout/TextBasedPreviewLayout.java b/src/main/java/org/jabref/logic/layout/TextBasedPreviewLayout.java index 07d1b7a82ba..a3bd00c9f30 100644 --- a/src/main/java/org/jabref/logic/layout/TextBasedPreviewLayout.java +++ b/src/main/java/org/jabref/logic/layout/TextBasedPreviewLayout.java @@ -15,8 +15,9 @@ * Implements the preview based JabRef's Custom export fitlters. */ public class TextBasedPreviewLayout implements PreviewLayout { - private static final Logger LOGGER = LoggerFactory.getLogger(TextBasedPreviewLayout.class); + public static final String NAME = "PREVIEW"; + private static final Logger LOGGER = LoggerFactory.getLogger(TextBasedPreviewLayout.class); private Layout layout; private String text; private LayoutFormatterPreferences layoutFormatterPreferences; @@ -56,6 +57,11 @@ public String getText() { @Override public String getName() { + return NAME; + } + + @Override + public String getDisplayName() { return Localization.lang("Customized preview style"); } } diff --git a/src/main/java/org/jabref/logic/preview/PreviewLayout.java b/src/main/java/org/jabref/logic/preview/PreviewLayout.java index 3f6626924b0..0fbd70f7839 100644 --- a/src/main/java/org/jabref/logic/preview/PreviewLayout.java +++ b/src/main/java/org/jabref/logic/preview/PreviewLayout.java @@ -10,5 +10,7 @@ public interface PreviewLayout { String generatePreview(BibEntry entry, BibDatabase database); + String getDisplayName(); + String getName(); } diff --git a/src/main/java/org/jabref/preferences/JabRefPreferences.java b/src/main/java/org/jabref/preferences/JabRefPreferences.java index 2e908686c38..0febc154239 100644 --- a/src/main/java/org/jabref/preferences/JabRefPreferences.java +++ b/src/main/java/org/jabref/preferences/JabRefPreferences.java @@ -2409,7 +2409,7 @@ public void storePreviewPreferences(PreviewPreferences previewPreferences) { if (layout instanceof CitationStylePreviewLayout) { return ((CitationStylePreviewLayout) layout).getFilePath(); } else { - return layout.getName(); + return layout.getDisplayName(); } }).collect(Collectors.toList())); putDouble(PREVIEW_PANEL_HEIGHT, previewPreferences.getPreviewPanelDividerPosition().doubleValue());