diff --git a/.sonarcloud.properties b/.sonarcloud.properties new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/.sonarcloud.properties @@ -0,0 +1 @@ + diff --git a/CHANGELOG.md b/CHANGELOG.md index 88539afa5ac..c62dc2e347b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `# ### Changed -- We reintroduced the possibility to extract references from plain text (using GROBID) [#5614](https://github.com/JabRef/jabref/pull/5614) +- We reintroduced the possibility to extract references from plain text (using GROBID) [#5614](https://github.com/JabRef/jabref/pull/5614) - We changed the open office panel to show buttons in rows of three instead of going straight down to save space as the button expanded out to take up unnecessary horizontal space. [#5479](https://github.com/JabRef/jabref/issues/5479) - We cleaned up the group add/edit dialog. [#5826](https://github.com/JabRef/jabref/pull/5826) - We reintroduced the index column. [#5844](https://github.com/JabRef/jabref/pull/5844) @@ -37,8 +37,14 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `# - We fixed several issues concerning managing external file types: Now everything is usable and fully functional. Previously, there were problems with the radio buttons, with saving the settings and with loading an input field value. Furthermore, different behavior for Windows and other operating systems was given, which was unified as well. [#5846](https://github.com/JabRef/jabref/issues/5846) - We fixed an issue where entries containing Unicode charaters were not parsed correctly [#5899](https://github.com/JabRef/jabref/issues/5899) - We fixed an issue where an entry containing an external filename with curly braces could not be saved. Curly braces are now longer allowed in filenames. [#5899](https://github.com/JabRef/jabref/issues/5899) +- We fixed an issue where changing the type of an entry did not update the main table [#5906](https://github.com/JabRef/jabref/issues/5906) +- We fixed an issue where opening a library from the recent libraries menu was not possible [#5939](https://github.com/JabRef/jabref/issues/5939) +- We fixed an issue in the optics of the library properties, that cropped the dialog on scaled displays. [#5969](https://github.com/JabRef/jabref/issues/5969) - We fixed an issue where changing the type of an entry did not update the main table. [#5906](https://github.com/JabRef/jabref/issues/5906) - We fixed an issue where opening a library from the recent libraries menu was not possible. [#5939](https://github.com/JabRef/jabref/issues/5939) +- We fixed an issue where the most bottom group in the list got lost, if it was dragged on itself. [#5983](https://github.com/JabRef/jabref/issues/5983) +- We fixed an issue where changing entry type doesn't always work when biblatex source is shown. [#5905](https://github.com/JabRef/jabref/issues/5905) +- We fixed an issue where the group and the link column were not updated after changing the entry in the main table. [#5985](https://github.com/JabRef/jabref/issues/5985) ### Removed diff --git a/buildres/windows/JabRefHost.ps1 b/buildres/windows/JabRefHost.ps1 index f31df86f74e..9c876805305 100644 --- a/buildres/windows/JabRefHost.ps1 +++ b/buildres/windows/JabRefHost.ps1 @@ -11,7 +11,7 @@ function Respond($response) { } } -$jabRefExe = [System.IO.Path]::Combine($PSScriptRoot, "JabRef.exe") +$jabRefExe = [System.IO.Path]::Combine($PSScriptRoot, "runtime\\bin\\JabRef.bat") try { $reader = New-Object System.IO.BinaryReader([System.Console]::OpenStandardInput()) @@ -37,9 +37,10 @@ try { #$wshell = New-Object -ComObject Wscript.Shell #$wshell.Popup($message.Text,0,"JabRef", 0x0 + 0x30) - $messageText = $message.Text - $output = & $jabRefExe -importBibtex "$messageText" 2>&1 - #$output = & echoargs -importBibtex $messageText 2>&1 + $messageText = $message.Text.replace("`n"," ").replace("`r"," ") + $output = & $jabRefExe -importBibtex "$messageText" *>&1 + #$output = "$messageText" + #$wshell = New-Object -ComObject Wscript.Shell #$wshell.Popup($output,0,"JabRef", 0x0 + 0x30) return Respond @{message="ok";output="$output"} } finally { diff --git a/docs/code-quality.md b/docs/code-quality.md new file mode 100644 index 00000000000..fd46c7a9b93 --- /dev/null +++ b/docs/code-quality.md @@ -0,0 +1,12 @@ +# Code Quality + +We monitor the general source code quality at three places: + +* [Teamscale](https://www.cqse.eu/de/produkte/teamscale/landing/) is a popular German product analyzing code quality. The analysis results are available at . +* [codacy](https://www.codacy.com/) is a hosted service to monitor code quality. The code quality analysis for JabRef is available at . +* [codecov](https://codecov.io/) is a solution to check code coverage of test cases. The code coverage metrics for JabRef are available at . + +We strongly recommend to read following two books on code quality: + +* [Java by Comparison](java.by-comparison.com/) is a book by three JabRef developers which focuses on code improvements close to single statements. It is fast to read and one gains much information from each recommendation discussed in the book. +* [Effective Java](https://www.oreilly.com/library/view/effective-java-3rd/9780134686097/) is the standard book for advanced Java programming. Did you know that `enum` is the [recommended way to enforce a singleton instance of a class](https://learning.oreilly.com/library/view/effective-java-3rd/9780134686097/ch2.xhtml#lev3)? Did you know that one should [refer to objects by their interfaces](https://learning.oreilly.com/library/view/effective-java-3rd/9780134686097/ch9.xhtml#lev64)? diff --git a/docs/guidelines-for-setting-up-a-local-workspace.md b/docs/guidelines-for-setting-up-a-local-workspace.md index 1b803d7f70e..cd4ed16b91b 100644 --- a/docs/guidelines-for-setting-up-a-local-workspace.md +++ b/docs/guidelines-for-setting-up-a-local-workspace.md @@ -1,12 +1,12 @@ -# Setup a local workspace +# Set up a local workspace This guide explains how to set up your environment for development of JabRef. It includes information about prerequisites, configuring your IDE, and running JabRef locally to verify your setup. -For a complete step-by-step guide (using IntellJ as the IDE), have a look at the following video instructions: +For a complete step-by-step guide for Linux using IntellJ IDEA as the IDE, have a look at the following video instructions: -

- -

+ +JabRef development video tutorial + ## Prerequisites diff --git a/src/main/java/org/jabref/gui/JabRefFrame.java b/src/main/java/org/jabref/gui/JabRefFrame.java index ce6cf9092fa..55ff98067fb 100644 --- a/src/main/java/org/jabref/gui/JabRefFrame.java +++ b/src/main/java/org/jabref/gui/JabRefFrame.java @@ -499,7 +499,7 @@ private Node createToolbar() { factory.createIconButton(StandardActions.GENERATE_CITE_KEYS, new OldDatabaseCommandWrapper(Actions.MAKE_KEY, this, stateManager)), factory.createIconButton(StandardActions.CLEANUP_ENTRIES, new OldDatabaseCommandWrapper(Actions.CLEANUP, this, stateManager)), new Separator(Orientation.VERTICAL), - factory.createIconButton(StandardActions.FORK_ME, new OpenBrowserAction("https://github.com/JabRef/jabref")), + factory.createIconButton(StandardActions.OPEN_GITHUB, new OpenBrowserAction("https://github.com/JabRef/jabref")), factory.createIconButton(StandardActions.OPEN_FACEBOOK, new OpenBrowserAction("https://www.facebook.com/JabRef/")), factory.createIconButton(StandardActions.OPEN_TWITTER, new OpenBrowserAction("https://twitter.com/jabref_org")) ); @@ -717,18 +717,23 @@ private MenuBar createMenu() { new SeparatorMenuItem(), + factory.createMenuItem(StandardActions.REPLACE_ALL, new OldDatabaseCommandWrapper(Actions.REPLACE_ALL, this, stateManager)), + factory.createMenuItem(StandardActions.GENERATE_CITE_KEYS, new OldDatabaseCommandWrapper(Actions.MAKE_KEY, this, stateManager)), + + new SeparatorMenuItem(), + factory.createMenuItem(StandardActions.MANAGE_KEYWORDS, new ManageKeywordsAction(stateManager)) ); if (Globals.prefs.getBoolean(JabRefPreferences.SPECIALFIELDSENABLED)) { edit.getItems().addAll( + new SeparatorMenuItem(), SpecialFieldMenuItemFactory.createSpecialFieldMenuForActiveDatabase(SpecialField.RANKING, factory, undoManager), SpecialFieldMenuItemFactory.getSpecialFieldSingleItemForActiveDatabase(SpecialField.RELEVANCE, factory), SpecialFieldMenuItemFactory.getSpecialFieldSingleItemForActiveDatabase(SpecialField.QUALITY, factory), SpecialFieldMenuItemFactory.getSpecialFieldSingleItemForActiveDatabase(SpecialField.PRINTED, factory), SpecialFieldMenuItemFactory.createSpecialFieldMenuForActiveDatabase(SpecialField.PRIORITY, factory, undoManager), - SpecialFieldMenuItemFactory.createSpecialFieldMenuForActiveDatabase(SpecialField.READ_STATUS, factory, undoManager), - new SeparatorMenuItem() + SpecialFieldMenuItemFactory.createSpecialFieldMenuForActiveDatabase(SpecialField.READ_STATUS, factory, undoManager) ); } @@ -772,6 +777,9 @@ private MenuBar createMenu() { tools.getItems().addAll( factory.createMenuItem(StandardActions.PARSE_TEX, new ParseTexAction(stateManager)), factory.createMenuItem(StandardActions.NEW_SUB_LIBRARY_FROM_AUX, new NewSubLibraryAction(this, stateManager)), + + new SeparatorMenuItem(), + factory.createMenuItem(StandardActions.FIND_UNLINKED_FILES, new FindUnlinkedFilesAction(this, stateManager)), factory.createMenuItem(StandardActions.WRITE_XMP, new WriteXMPAction(stateManager, dialogService)), factory.createMenuItem(StandardActions.COPY_LINKED_FILES, new CopyFilesAction(stateManager, this.getDialogService())), @@ -783,8 +791,6 @@ private MenuBar createMenu() { new SeparatorMenuItem(), - factory.createMenuItem(StandardActions.GENERATE_CITE_KEYS, new OldDatabaseCommandWrapper(Actions.MAKE_KEY, this, stateManager)), - factory.createMenuItem(StandardActions.REPLACE_ALL, new OldDatabaseCommandWrapper(Actions.REPLACE_ALL, this, stateManager)), factory.createMenuItem(StandardActions.SEND_AS_EMAIL, new SendAsEMailAction(dialogService, stateManager)), pushToApplicationMenuItem, @@ -850,23 +856,19 @@ private MenuBar createMenu() { new SeparatorMenuItem(), + factory.createMenuItem(StandardActions.DONATE, new OpenBrowserAction("https://donations.jabref.org")), factory.createMenuItem(StandardActions.SEARCH_FOR_UPDATES, new SearchForUpdateAction(Globals.BUILD_INFO, prefs.getVersionPreferences(), dialogService, Globals.TASK_EXECUTOR)), factory.createSubMenu(StandardActions.WEB_MENU, factory.createMenuItem(StandardActions.OPEN_WEBPAGE, new OpenBrowserAction("https://jabref.org/")), factory.createMenuItem(StandardActions.OPEN_BLOG, new OpenBrowserAction("https://blog.jabref.org/")), factory.createMenuItem(StandardActions.OPEN_FACEBOOK, new OpenBrowserAction("https://www.facebook.com/JabRef/")), factory.createMenuItem(StandardActions.OPEN_TWITTER, new OpenBrowserAction("https://twitter.com/jabref_org")), + factory.createMenuItem(StandardActions.OPEN_GITHUB, new OpenBrowserAction("https://github.com/JabRef/jabref")), new SeparatorMenuItem(), - factory.createMenuItem(StandardActions.FORK_ME, new OpenBrowserAction("https://github.com/JabRef/jabref")), factory.createMenuItem(StandardActions.OPEN_DEV_VERSION_LINK, new OpenBrowserAction("https://builds.jabref.org/master/")), - factory.createMenuItem(StandardActions.OPEN_CHANGELOG, new OpenBrowserAction("https://github.com/JabRef/jabref/blob/master/CHANGELOG.md")), - - new SeparatorMenuItem(), - - factory.createMenuItem(StandardActions.DONATE, new OpenBrowserAction("https://donations.jabref.org")) - + factory.createMenuItem(StandardActions.OPEN_CHANGELOG, new OpenBrowserAction("https://github.com/JabRef/jabref/blob/master/CHANGELOG.md")) ), factory.createMenuItem(StandardActions.ABOUT, new AboutAction()) ); diff --git a/src/main/java/org/jabref/gui/SaveOrderConfigDisplay.fxml b/src/main/java/org/jabref/gui/SaveOrderConfigDisplay.fxml index 64fac7cdc94..17e458f2e81 100644 --- a/src/main/java/org/jabref/gui/SaveOrderConfigDisplay.fxml +++ b/src/main/java/org/jabref/gui/SaveOrderConfigDisplay.fxml @@ -24,37 +24,38 @@ - + - - - + + + + - - - - - - + + + - diff --git a/src/main/java/org/jabref/gui/actions/StandardActions.java b/src/main/java/org/jabref/gui/actions/StandardActions.java index 245c20e30d5..c1b7a2dfa7c 100644 --- a/src/main/java/org/jabref/gui/actions/StandardActions.java +++ b/src/main/java/org/jabref/gui/actions/StandardActions.java @@ -85,9 +85,9 @@ public enum StandardActions implements Action { TOOGLE_OO(Localization.lang("OpenOffice/LibreOffice"), IconTheme.JabRefIcons.FILE_OPENOFFICE, KeyBinding.OPEN_OPEN_OFFICE_LIBRE_OFFICE_CONNECTION), TOGGLE_WEB_SEARCH(Localization.lang("Web search"), Localization.lang("Toggle web search interface"), IconTheme.JabRefIcons.WWW, KeyBinding.WEB_SEARCH), - PARSE_TEX(Localization.lang("Search for Citations in LaTeX Files"), IconTheme.JabRefIcons.LATEX_CITATIONS), + PARSE_TEX(Localization.lang("Search for citations in LaTeX files..."), IconTheme.JabRefIcons.LATEX_CITATIONS), NEW_SUB_LIBRARY_FROM_AUX(Localization.lang("New sublibrary based on AUX file") + "...", Localization.lang("New BibTeX sublibrary") + Localization.lang("This feature generates a new library based on which entries are needed in an existing LaTeX document."), IconTheme.JabRefIcons.NEW), - WRITE_XMP(Localization.lang("Write XMP-metadata to PDFs"), Localization.lang("Will write XMP-metadata to the PDFs linked from selected entries."), KeyBinding.WRITE_XMP), + WRITE_XMP(Localization.lang("Write XMP metadata to PDFs"), Localization.lang("Will write XMP metadata to the PDFs linked from selected entries."), KeyBinding.WRITE_XMP), OPEN_FOLDER(Localization.lang("Open folder"), Localization.lang("Open folder"), KeyBinding.OPEN_FOLDER), OPEN_FILE(Localization.lang("Open file"), Localization.lang("Open file"), IconTheme.JabRefIcons.FILE, KeyBinding.OPEN_FILE), OPEN_CONSOLE(Localization.lang("Open terminal here"), Localization.lang("Open terminal here"), IconTheme.JabRefIcons.CONSOLE, KeyBinding.OPEN_CONSOLE), @@ -145,13 +145,13 @@ public enum StandardActions implements Action { HELP_NAME_FORMATTER(Localization.lang("Help on Name Formatting"), IconTheme.JabRefIcons.HELP, KeyBinding.HELP), HELP_SPECIAL_FIELDS(Localization.lang("Help on special fields"), IconTheme.JabRefIcons.HELP, KeyBinding.HELP), WEB_MENU(Localization.lang("JabRef resources")), - OPEN_WEBPAGE(Localization.lang("Website"), Localization.lang("Opens JabRef's website")), + OPEN_WEBPAGE(Localization.lang("Website"), Localization.lang("Opens JabRef's website"), IconTheme.JabRefIcons.HOME), OPEN_FACEBOOK("Facebook", Localization.lang("Opens JabRef's Facebook page"), IconTheme.JabRefIcons.FACEBOOK), OPEN_TWITTER("Twitter", Localization.lang("Opens JabRef's Twitter page"), IconTheme.JabRefIcons.TWITTER), OPEN_BLOG(Localization.lang("Blog"), Localization.lang("Opens JabRef's blog"), IconTheme.JabRefIcons.BLOG), OPEN_DEV_VERSION_LINK(Localization.lang("Development version"), Localization.lang("Opens a link where the current development version can be downloaded")), OPEN_CHANGELOG(Localization.lang("View change log"), Localization.lang("See what has been changed in the JabRef versions")), - FORK_ME(Localization.lang("Fork me on GitHub"), Localization.lang("Opens JabRef's GitHub page"), IconTheme.JabRefIcons.GITHUB), + OPEN_GITHUB("GitHub", Localization.lang("Opens JabRef's GitHub page"), IconTheme.JabRefIcons.GITHUB), DONATE(Localization.lang("Donate to JabRef"), Localization.lang("Donate to JabRef"), IconTheme.JabRefIcons.DONATE), OPEN_FORUM(Localization.lang("Online help forum"), Localization.lang("Online help forum"), IconTheme.JabRefIcons.FORUM), ERROR_CONSOLE(Localization.lang("View event log"), Localization.lang("Display all error messages")), diff --git a/src/main/java/org/jabref/gui/cleanup/FieldFormatterCleanupsPanel.java b/src/main/java/org/jabref/gui/cleanup/FieldFormatterCleanupsPanel.java index 7ef6dfc4d56..f75e08b9761 100644 --- a/src/main/java/org/jabref/gui/cleanup/FieldFormatterCleanupsPanel.java +++ b/src/main/java/org/jabref/gui/cleanup/FieldFormatterCleanupsPanel.java @@ -78,6 +78,9 @@ public void setValues(FieldFormatterCleanups formatterCleanups) { } private void buildLayout() { + setHgap(10.0); + setVgap(4.0); + ColumnConstraints first = new ColumnConstraints(); first.setPrefWidth(25); ColumnConstraints second = new ColumnConstraints(); @@ -101,6 +104,7 @@ private void buildLayout() { add(cleanupEnabled, 0, 0, 4, 1); actionsList = new ListView<>(actions); + actionsList.setMinHeight(100.0); actionsList.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); new ViewModelListCellFactory() .withText(action -> action.getField().getDisplayName() + ": " + action.getFormatter().getName()) @@ -161,6 +165,7 @@ private void updateDescription() { */ private GridPane getSelectorPanel() { GridPane builder = new GridPane(); + builder.setHgap(10.0); Set fields = FieldFactory.getCommonFields(); fields.add(InternalField.KEY_FIELD); Set fieldsString = fields.stream().map(Field::getDisplayName).sorted().collect(Collectors.toCollection(TreeSet::new)); diff --git a/src/main/java/org/jabref/gui/exporter/WriteXMPAction.java b/src/main/java/org/jabref/gui/exporter/WriteXMPAction.java index f275740f5a1..46c7166c67c 100644 --- a/src/main/java/org/jabref/gui/exporter/WriteXMPAction.java +++ b/src/main/java/org/jabref/gui/exporter/WriteXMPAction.java @@ -77,15 +77,15 @@ public void init() { if (entries.isEmpty()) { dialogService.showErrorDialogAndWait( - Localization.lang("Write XMP-metadata"), + Localization.lang("Write XMP metadata"), Localization.lang("This operation requires one or more entries to be selected.")); shouldContinue = false; return; } else { boolean confirm = dialogService.showConfirmationDialogAndWait( - Localization.lang("Write XMP-metadata"), - Localization.lang("Write XMP-metadata for all PDFs in current library?")); + Localization.lang("Write XMP metadata"), + Localization.lang("Write XMP metadata for all PDFs in current library?")); if (confirm) { shouldContinue = false; return; @@ -100,7 +100,7 @@ public void init() { } optionsDialog.open(); - dialogService.notify(Localization.lang("Writing XMP-metadata...")); + dialogService.notify(Localization.lang("Writing XMP metadata...")); } private void writeXMP() { @@ -183,7 +183,7 @@ class OptionsDialog extends FXDialog { private final TextArea progressArea; public OptionsDialog() { - super(AlertType.NONE, Localization.lang("Writing XMP-metadata for selected entries..."), false); + super(AlertType.NONE, Localization.lang("Writing XMP metadata for selected entries..."), false); okButton.setDisable(true); okButton.setOnAction(e -> dispose()); okButton.setPrefSize(100, 30); diff --git a/src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java b/src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java index 103a352fd03..949a05b559f 100644 --- a/src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java +++ b/src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java @@ -369,7 +369,7 @@ public void edit() { } public void writeXMPMetadata() { - // Localization.lang("Writing XMP-metadata...") + // Localization.lang("Writing XMP metadata...") BackgroundTask writeTask = BackgroundTask.wrap(() -> { Optional file = linkedFile.findIn(databaseContext, filePreferences); if (!file.isPresent()) { @@ -386,7 +386,7 @@ public void writeXMPMetadata() { return null; }); - // Localization.lang("Finished writing XMP-metadata.") + // Localization.lang("Finished writing XMP metadata.") // TODO: Show progress taskExecutor.execute(writeTask); diff --git a/src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditor.java b/src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditor.java index d41c7beafcf..263c8c8ad0c 100644 --- a/src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditor.java +++ b/src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditor.java @@ -151,7 +151,7 @@ private static Node createFileDisplay(LinkedFileViewModel linkedFile) { acceptAutoLinkedFile.getStyleClass().setAll("icon-button"); Button writeXMPMetadata = IconTheme.JabRefIcons.IMPORT.asButton(); - writeXMPMetadata.setTooltip(new Tooltip(Localization.lang("Write BibTeXEntry as XMP-metadata to PDF."))); + writeXMPMetadata.setTooltip(new Tooltip(Localization.lang("Write BibTeXEntry as XMP metadata to PDF."))); writeXMPMetadata.visibleProperty().bind(linkedFile.canWriteXMPMetadataProperty()); writeXMPMetadata.setOnAction(event -> linkedFile.writeXMPMetadata()); writeXMPMetadata.getStyleClass().setAll("icon-button"); diff --git a/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java b/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java index e8cb54656c7..2b0d70b4885 100644 --- a/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java +++ b/src/main/java/org/jabref/gui/groups/GroupNodeViewModel.java @@ -291,10 +291,14 @@ public Optional getParent() { } public void draggedOn(GroupNodeViewModel target, DroppingMouseLocation mouseLocation) { + // No action, if the target is the same as the source + if (this.equals(target)) { + return; + } + Optional targetParent = target.getParent(); if (targetParent.isPresent()) { int targetIndex = target.getPositionInParent(); - // In case we want to move an item in the same parent // and the item is moved down, we need to adjust the target index if (targetParent.equals(getParent())) { diff --git a/src/main/java/org/jabref/gui/icon/IconTheme.java b/src/main/java/org/jabref/gui/icon/IconTheme.java index 2df5017c21f..112df9d206e 100644 --- a/src/main/java/org/jabref/gui/icon/IconTheme.java +++ b/src/main/java/org/jabref/gui/icon/IconTheme.java @@ -299,7 +299,8 @@ public enum JabRefIcons implements JabRefIcon { REMOVE_ABBREVIATION_LIST(MaterialDesignIcon.FOLDER_REMOVE), ADD_ABBREVIATION(MaterialDesignIcon.PLAYLIST_PLUS), REMOVE_ABBREVIATION(MaterialDesignIcon.PLAYLIST_MINUS), - NEW_ENTRY_FROM_PLAIN_TEXT(MaterialDesignIcon.PLUS_BOX); + NEW_ENTRY_FROM_PLAIN_TEXT(MaterialDesignIcon.PLUS_BOX), + HOME(MaterialDesignIcon.HOME); private final JabRefIcon icon; diff --git a/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesDialog.fxml b/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesDialog.fxml index 12f7febeb96..7d43bd84e46 100644 --- a/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesDialog.fxml +++ b/src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesDialog.fxml @@ -1,69 +1,83 @@ - - + - + + + + + + + + + + + + + + + - - - + + + + + + - - - + + + - - - - - - - - + + + + + + + - - - - - - - - -