diff --git a/build.gradle b/build.gradle index 9b39cf11101..2db03f600f6 100644 --- a/build.gradle +++ b/build.gradle @@ -121,7 +121,7 @@ dependencies { compile 'net.java.dev.glazedlists:glazedlists_java15:1.9.1' - compile 'com.google.guava:guava:27.1-jre' + compile 'com.google.guava:guava:28.0-jre' // JavaFX stuff compile 'de.jensd:fontawesomefx-commons:8.15' @@ -142,7 +142,7 @@ dependencies { compile 'com.mashape.unirest:unirest-java:1.4.9' // >1.8.0-beta is required for java 9 compatibility - compile 'org.slf4j:slf4j-api:1.8.0-beta4' + compile 'org.slf4j:slf4j-api:2.0.0-alpha0' compile 'org.apache.logging.log4j:log4j-slf4j18-impl:2.11.2' compile 'org.apache.logging.log4j:log4j-jcl:2.11.2' compile 'org.apache.logging.log4j:log4j-api:2.11.2' diff --git a/src/main/java/org/jabref/Globals.java b/src/main/java/org/jabref/Globals.java index 1a5cc0ee385..0c26f8f6d38 100644 --- a/src/main/java/org/jabref/Globals.java +++ b/src/main/java/org/jabref/Globals.java @@ -1,6 +1,7 @@ package org.jabref; import java.awt.GraphicsEnvironment; +import java.io.IOException; import java.util.Optional; import java.util.UUID; @@ -24,6 +25,7 @@ import org.jabref.preferences.JabRefPreferences; import com.google.common.base.StandardSystemProperty; +import com.mashape.unirest.http.Unirest; import com.microsoft.applicationinsights.TelemetryClient; import com.microsoft.applicationinsights.TelemetryConfiguration; import com.microsoft.applicationinsights.internal.shutdown.SDKShutdownActivity; @@ -125,6 +127,9 @@ public static void shutdownThreadPools() { public static void stopBackgroundTasks() { stopTelemetryClient(); + try { + Unirest.shutdown(); + } catch (IOException ignore) { } } public static Optional getTelemetryClient() { diff --git a/src/main/java/org/jabref/gui/Base.css b/src/main/java/org/jabref/gui/Base.css index 2db5a049c00..c913bb5ad9e 100644 --- a/src/main/java/org/jabref/gui/Base.css +++ b/src/main/java/org/jabref/gui/Base.css @@ -1028,11 +1028,20 @@ We want to have a look that matches our icons in the tool-bar */ -fx-background-color: -jr-error; } +.titleHeader { + -fx-font-size: 150%; + -fx-padding: 0em 0em 0.5em 0em; +} + .sectionHeader { - -fx-font-size: 1.5em; - -fx-padding: 1em 0em 1em 0em; + -fx-font-size: 130%; + -fx-padding: 1em 0em 0.2em 0em; } .dialog-pane { -fx-background-color: -fx-control-inner-background; } + +.preference-sidepane { + -fx-background-color: -jr-sidepane-background; +} diff --git a/src/main/java/org/jabref/gui/JabRefFrame.java b/src/main/java/org/jabref/gui/JabRefFrame.java index ef9074973d9..73f838d6315 100644 --- a/src/main/java/org/jabref/gui/JabRefFrame.java +++ b/src/main/java/org/jabref/gui/JabRefFrame.java @@ -759,7 +759,7 @@ private MenuBar createMenu() { new SeparatorMenuItem(), - factory.createMenuItem(StandardActions.SET_FILE_LINKS, new AutoLinkFilesAction(this, prefs, stateManager, undoManager)) + factory.createMenuItem(StandardActions.SET_FILE_LINKS, new AutoLinkFilesAction(this, prefs, stateManager, undoManager, Globals.TASK_EXECUTOR)) ); // PushToApplication diff --git a/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java b/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java index 5f4ca318ec2..33b35573a18 100644 --- a/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java +++ b/src/main/java/org/jabref/gui/entryeditor/OtherFieldsTab.java @@ -37,6 +37,7 @@ protected Collection determineFieldsToShow(BibEntry entry, EntryType ent .filter(field -> !allKnownFields.contains(field)).collect(Collectors.toList()); otherFields.removeAll(entryType.getDeprecatedFields()); + otherFields.removeAll(entryType.getOptionalFields()); otherFields.remove(BibEntry.KEY_FIELD); otherFields.removeAll(customTabFieldNames); return otherFields; diff --git a/src/main/java/org/jabref/gui/externalfiles/AutoLinkFilesAction.java b/src/main/java/org/jabref/gui/externalfiles/AutoLinkFilesAction.java index 74a9d3aea77..a2c23ebf6a5 100644 --- a/src/main/java/org/jabref/gui/externalfiles/AutoLinkFilesAction.java +++ b/src/main/java/org/jabref/gui/externalfiles/AutoLinkFilesAction.java @@ -13,6 +13,7 @@ import org.jabref.gui.externalfiletype.ExternalFileTypes; import org.jabref.gui.undo.NamedCompound; import org.jabref.gui.util.BindingsHelper; +import org.jabref.gui.util.TaskExecutor; import org.jabref.logic.l10n.Localization; import org.jabref.model.database.BibDatabaseContext; import org.jabref.model.entry.BibEntry; @@ -31,12 +32,14 @@ public class AutoLinkFilesAction extends SimpleCommand { private final JabRefPreferences preferences; private final StateManager stateManager; private UndoManager undoManager; + private TaskExecutor taskExecutor; - public AutoLinkFilesAction(JabRefFrame frame, JabRefPreferences preferences, StateManager stateManager, UndoManager undoManager) { + public AutoLinkFilesAction(JabRefFrame frame, JabRefPreferences preferences, StateManager stateManager, UndoManager undoManager, TaskExecutor taskExecutor) { this.dialogService = frame.getDialogService(); this.preferences = preferences; this.stateManager = stateManager; this.undoManager = undoManager; + this.taskExecutor = taskExecutor; this.executable.bind(needsDatabase(this.stateManager).and(needsEntriesSelected(stateManager))); this.statusMessage.bind(BindingsHelper.ifThenElse(executable, "", Localization.lang("This operation requires one or more entries to be selected."))); @@ -51,6 +54,7 @@ public void execute() { final NamedCompound nc = new NamedCompound(Localization.lang("Automatically set file links")); AutoSetFileLinksUtil util = new AutoSetFileLinksUtil(database, preferences.getFilePreferences(), preferences.getAutoLinkPreferences(), ExternalFileTypes.getInstance()); Task> linkFilesTask = new Task>() { + @Override protected List call() { return util.linkAssociatedFiles(entries, nc); @@ -71,9 +75,9 @@ protected void succeeded() { }; dialogService.showProgressDialogAndWait( - Localization.lang("Automatically setting file links"), - Localization.lang("Searching for files"), - linkFilesTask - ); + Localization.lang("Automatically setting file links"), + Localization.lang("Searching for files"), + linkFilesTask); + taskExecutor.execute(linkFilesTask); } } diff --git a/src/main/java/org/jabref/gui/preferences/ExternalTab.fxml b/src/main/java/org/jabref/gui/preferences/ExternalTab.fxml new file mode 100644 index 00000000000..3876eace1bd --- /dev/null +++ b/src/main/java/org/jabref/gui/preferences/ExternalTab.fxml @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + +