Process CLI arguments before starting gui#9217
Conversation
|
Yeah, coding tobi is back. |
|
There seems to be a design flaw in my eyes: The ArgumentsProcessor reads and loads some databases on startup before running the gui and hands them already opened and loaded to the GUI or the CLI. But this has nothing to do with this PR, so should be adressed in another PR. |
Good point, this would improve the opening of files by double-clicking a bit (or at least the user would get an earlier visual feedback). But that's something for a next PR. |
|
I've now moved the controversial default file directory business to #9222. The rest is cleanup up based on previous feedback (thanks!) and should be good to go. |
|
Thanks for the review! Failing test are not due to this PR, so merging now. |
|
We should have two reviewers - especially by architecturally significant changes! |
* upstream/main: (42 commits) Place subgroups w.r.t. alphabetical ordering (#9228) DOAB Fetcher now fetches ISBN and imprint fields where possible (#9229) ISSUE-9145: implement isbn fetcher (#9205) Remove explicit javafx jmod stuff (#9245) New Crowdin updates (#9239) Support Arabic language (#9243) Process CLI arguments before starting gui (#9217) Update README Decision Records link (#9241) Opening a file removes duplicate keywords and triggers lib changed (#9216) New Crowdin updates (#9237) Add Ukrainian as language (#9236) Add ADR-0026 on using Swing's FileChooser (#9235) Log exception (#9227) Fix archunit (#9234) Bump tika-core from 2.4.1 to 2.5.0 (#9232) Check group type before showing dialog in edit group (#8909) Fix unexpected closing of preferences dialog (#9225) Fix typo in connection error message (#9226) Improve VSCode config (#9218) Searching for an entry on the web shouldn't take forever (#9199) ... # Conflicts: # build.gradle # lib/afterburner.fx.jar # src/main/java/org/jabref/cli/Launcher.java # src/main/java/org/jabref/gui/EntryTypeView.java # src/main/java/org/jabref/gui/auximport/FromAuxDialog.java # src/main/java/org/jabref/gui/bibtexextractor/ExtractBibtexDialog.java # src/main/java/org/jabref/gui/collab/ExternalChangesResolverDialog.java # src/main/java/org/jabref/gui/commonfxcontrols/CitationKeyPatternPanel.java # src/main/java/org/jabref/gui/contentselector/ContentSelectorDialogView.java # src/main/java/org/jabref/gui/customentrytypes/CustomizeEntryTypeDialogView.java # src/main/java/org/jabref/gui/documentviewer/DocumentViewerView.java # src/main/java/org/jabref/gui/edit/ManageKeywordsDialog.java # src/main/java/org/jabref/gui/entryeditor/EntryEditor.java # src/main/java/org/jabref/gui/entryeditor/fileannotationtab/FileAnnotationTabView.java # src/main/java/org/jabref/gui/errorconsole/ErrorConsoleView.java # src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialogView.java # src/main/java/org/jabref/gui/externalfiles/UnlinkedFilesDialogView.java # src/main/java/org/jabref/gui/help/AboutDialogView.java # src/main/java/org/jabref/gui/importer/ImportCustomEntryTypesDialog.java # src/main/java/org/jabref/gui/importer/ImportEntriesDialog.java # src/main/java/org/jabref/gui/integrity/IntegrityCheckDialog.java # src/main/java/org/jabref/gui/libraryproperties/AbstractPropertiesTabView.java # src/main/java/org/jabref/gui/libraryproperties/LibraryPropertiesView.java # src/main/java/org/jabref/gui/libraryproperties/constants/ConstantsPropertiesView.java # src/main/java/org/jabref/gui/libraryproperties/general/GeneralPropertiesView.java # src/main/java/org/jabref/gui/libraryproperties/keypattern/KeyPatternPropertiesView.java # src/main/java/org/jabref/gui/libraryproperties/saving/SavingPropertiesView.java # src/main/java/org/jabref/gui/linkedfile/LinkedFileEditDialogView.java # src/main/java/org/jabref/gui/openoffice/ManageCitationsDialogView.java # src/main/java/org/jabref/gui/openoffice/StyleSelectDialogView.java # src/main/java/org/jabref/gui/preferences/AbstractPreferenceTabView.java # src/main/java/org/jabref/gui/preferences/PreferencesDialogView.java # src/main/java/org/jabref/gui/preferences/customexporter/CustomExporterTab.java # src/main/java/org/jabref/gui/preferences/externalfiletypes/EditExternalFileTypeEntryDialog.java # src/main/java/org/jabref/gui/preferences/journals/JournalAbbreviationsTab.java # src/main/java/org/jabref/gui/preferences/keybindings/KeyBindingsTab.java # src/main/java/org/jabref/gui/preferences/preview/PreviewTab.java # src/main/java/org/jabref/gui/preferences/protectedterms/ProtectedTermsTab.java # src/main/java/org/jabref/gui/search/GlobalSearchResultDialog.java # src/main/java/org/jabref/gui/shared/SharedDatabaseLoginDialogView.java # src/main/java/org/jabref/gui/slr/ManageStudyDefinitionView.java # src/main/java/org/jabref/gui/texparser/ParseLatexDialogView.java # src/main/java/org/jabref/gui/texparser/ParseLatexResultView.java
This reverts commit c827c43.
This moves the whole parsing of CLI args and basic initalization to the very beginning, even before the JavaFX toolkit is even started. In this way, the response time for the CLI is improved very much, which is particularily important for the browser extension.
I wanted to do this for a very long time, but it was not possible since the preferences pulled-in too much of the GUI. But with the latest refactors, this is no longer the case 🎉
Also:
CHANGELOG.mddescribed in a way that is understandable for the average user (if applicable)