Skip to content

Welcome tab #13407

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 45 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 44 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
22e3822
Initial integration of QuickSettings
Jun 29, 2025
7958489
Improve the look and feel of theme quick settings
Jun 29, 2025
189d030
Remove the unnecessary parameter e from the QuickSettingsButton
Jun 29, 2025
aeb258e
Add performance optimization and external application detection setti…
Jul 1, 2025
a117f49
Merge remote-tracking branch 'upstream/main' into welcome-tab
Jul 1, 2025
47af7fa
Remove the confirmation dialog after quick settings
Jul 1, 2025
7be327c
Update CHANGELOG.md
Jul 1, 2025
0b34b04
Add online service configuration and citation key removal
Jul 3, 2025
2259dfe
Refactor and get consistent language
Jul 3, 2025
37449af
Merge remote-tracking branch 'upstream/main' into welcome-tab
Jul 3, 2025
a759db9
Allow theme option to be selected by clicking on the WireFrame
Jul 3, 2025
ed3a001
Remove usage of JetBrains annotation
Jul 3, 2025
e296fd1
Retract change to Base.css
Jul 3, 2025
a0af2e8
Fix according to Trag
Jul 3, 2025
2e47ab0
Fix CHANGELOG
Jul 3, 2025
e8fbd25
Merge remote-tracking branch 'upstream/main' into welcome-tab
Jul 4, 2025
196f385
Style change according to the discussion
Jul 4, 2025
ff5dcf2
Integrate Walthrough to the WelcomeTab
Jul 6, 2025
5eb23ed
Merge remote-tracking branch 'upstream/main' into welcome-tab
Jul 10, 2025
5d3d719
Fix according to Trag bot
Jul 10, 2025
a831fb2
Slight refactoring and improve the push to application resolution
Jul 11, 2025
1b30f7f
Merge branch 'main' into welcome-tab
Yubo-Cao Jul 11, 2025
1309675
Quick fix after the merge
Yubo-Cao Jul 11, 2025
37eaf71
Quick improvement on the elegance of Wireframe styling
Yubo-Cao Jul 11, 2025
792ce4e
Fix the spelling issue with Texmaker
Yubo-Cao Jul 11, 2025
78e8148
Get rid of the qs icon button
Yubo-Cao Jul 11, 2025
6a6485f
Small tweaks
Yubo-Cao Jul 18, 2025
704d76e
Merge remote-tracking branch 'upstream/main' into welcome-tab
Yubo-Cao Jul 18, 2025
3845a44
Replace with modern Java API
Yubo-Cao Jul 18, 2025
5ea5809
Replace with modern Java API
Yubo-Cao Jul 18, 2025
e15eede
Fix localization
Yubo-Cao Jul 19, 2025
ce7ce88
Implement the new UI interface
Yubo-Cao Jul 19, 2025
a1f7aa1
Refactor +change CHANGELOG
Yubo-Cao Jul 19, 2025
d127472
Revert a change that breaks the Walkthrough...
Yubo-Cao Jul 19, 2025
64e3829
Continued refactoring
Yubo-Cao Jul 19, 2025
0a3d81f
Apply fix per Trag
Yubo-Cao Jul 19, 2025
d28be6b
Apply fix per Trag
Yubo-Cao Jul 19, 2025
ab260b4
Apply fix per Trag
Yubo-Cao Jul 19, 2025
6b827c9
Fix Rewrite
Yubo-Cao Jul 19, 2025
aadcecb
Fix per Trag
Yubo-Cao Jul 19, 2025
69999b4
Revert walkthrough patches and get in sync with main
Yubo-Cao Jul 19, 2025
aa33d51
Address some comments made by Carl
Yubo-Cao Jul 19, 2025
312bd84
Fix according to Trag
Yubo-Cao Jul 19, 2025
89a06a5
Significant refactoring to follow the MVVM style
Yubo-Cao Jul 20, 2025
b80ea84
Refactor view model names and fix some Trag comment
Yubo-Cao Jul 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
- When adding an entry to a library, a warning is displayed if said entry already exists in an active library. [#13261](https://github.com/JabRef/jabref/issues/13261)
- We added the field `monthfiled` to the default list of fields to resolve BibTeX-Strings for [#13375](https://github.com/JabRef/jabref/issues/13375)
- We added a new ID based fetcher for [EuropePMC](https://europepmc.org/). [#13389](https://github.com/JabRef/jabref/pull/13389)
- We added an initial [cite as you write](https://retorque.re/zotero-better-bibtex/citing/cayw/) endpoint. [#13187](https://github.com/JabRef/jabref/issues/13187)
- We added an initial [cite as you write](https://retorque.re/zotero-better-bibtex/citing/cayw/) endpoint. [#13187](https://github.com/JabRef/jabref/issues/13187)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

duplicate of line 22 (existing artifact)

- We added quick settings for welcome tab. [#12664](https://github.com/JabRef/jabref/issues/12664)

### Changed

Expand Down
2 changes: 1 addition & 1 deletion jabgui/src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
// endregion

provides org.tinylog.writers.Writer
with org.jabref.gui.logging.GuiWriter;
with org.jabref.gui.logging.GuiWriter;

// Preferences and XML
requires java.prefs;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,12 +181,14 @@ public enum StandardActions implements Action {
OPEN_FACEBOOK("Facebook", Localization.lang("Opens JabRef's Facebook page"), IconTheme.JabRefIcons.FACEBOOK),
OPEN_LINKEDIN("LinkedIn", Localization.lang("Opens JabRef's LinkedIn page"), IconTheme.JabRefIcons.LINKEDIN),
OPEN_MASTODON("Mastodon", Localization.lang("Opens JabRef's Mastodon page"), IconTheme.JabRefIcons.MASTODON),
OPEN_PRIVACY_POLICY("Privacy policy", Localization.lang("Opens JabRef's privacy policy"), IconTheme.JabRefIcons.BOOK),
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")),
OPEN_GITHUB("GitHub", Localization.lang("Opens JabRef's GitHub page"), IconTheme.JabRefIcons.GITHUB),
WALKTHROUGH_MENU(Localization.lang("Walkthroughs"), IconTheme.JabRefIcons.BOOK),
MAIN_FILE_DIRECTORY_WALKTHROUGH(Localization.lang("Configure main file directory"), IconTheme.JabRefIcons.LATEX_FILE_DIRECTORY),
CUSTOMIZE_ENTRY_TABLE_WALKTHROUGH(Localization.lang("Customize entry table"), IconTheme.JabRefIcons.TOGGLE_GROUPS),
DONATE(Localization.lang("Donate to JabRef"), Localization.lang("Donate to JabRef"), IconTheme.JabRefIcons.DONATE),
OPEN_FORUM(Localization.lang("Community forum"), Localization.lang("Community forum"), IconTheme.JabRefIcons.FORUM),
ERROR_CONSOLE(Localization.lang("View event log"), Localization.lang("Display all error messages")),
Expand Down
2 changes: 1 addition & 1 deletion jabgui/src/main/java/org/jabref/gui/frame/JabRefFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
import org.jabref.gui.LibraryTab;
import org.jabref.gui.LibraryTabContainer;
import org.jabref.gui.StateManager;
import org.jabref.gui.WelcomeTab;
import org.jabref.gui.actions.ActionFactory;
import org.jabref.gui.actions.ActionHelper;
import org.jabref.gui.actions.SimpleCommand;
Expand All @@ -53,6 +52,7 @@
import org.jabref.gui.undo.RedoAction;
import org.jabref.gui.undo.UndoAction;
import org.jabref.gui.util.BindingsHelper;
import org.jabref.gui.welcome.WelcomeTab;
import org.jabref.logic.UiCommand;
import org.jabref.logic.ai.AiService;
import org.jabref.logic.journals.JournalAbbreviationRepository;
Expand Down
6 changes: 4 additions & 2 deletions jabgui/src/main/java/org/jabref/gui/frame/MainMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ private void createMenu() {
// Work around for mac only issue, where cmd+v on a dialogue triggers the paste action of menu item, resulting in addition of the pasted content in the MainTable.
// If the mainscreen is not focused, the actions captured by menu are consumed.
boolean isStageUnfocused = !Injector.instantiateModelOrService(Stage.class).focusedProperty().get();

if (OS.OS_X && isStageUnfocused) {
event.consume();
}
Expand Down Expand Up @@ -376,7 +376,8 @@ private void createMenu() {
new SeparatorMenuItem(),

factory.createSubMenu(StandardActions.WALKTHROUGH_MENU,
factory.createMenuItem(StandardActions.MAIN_FILE_DIRECTORY_WALKTHROUGH, new WalkthroughAction("mainFileDirectory"))
factory.createMenuItem(StandardActions.MAIN_FILE_DIRECTORY_WALKTHROUGH, new WalkthroughAction("mainFileDirectory")),
factory.createMenuItem(StandardActions.CUSTOMIZE_ENTRY_TABLE_WALKTHROUGH, new WalkthroughAction("customizeEntryTable"))
),

new SeparatorMenuItem(),
Expand All @@ -389,6 +390,7 @@ private void createMenu() {
factory.createMenuItem(StandardActions.SEARCH_FOR_UPDATES, new SearchForUpdateAction(preferences, dialogService, taskExecutor)),
factory.createSubMenu(StandardActions.WEB_MENU,
factory.createMenuItem(StandardActions.OPEN_WEBPAGE, new OpenBrowserAction(URLs.WEBPAGE_URL, dialogService, preferences.getExternalApplicationsPreferences())),
factory.createMenuItem(StandardActions.OPEN_PRIVACY_POLICY, new OpenBrowserAction(URLs.PRIVACY_POLICY_URL, dialogService, preferences.getExternalApplicationsPreferences())),
factory.createMenuItem(StandardActions.OPEN_BLOG, new OpenBrowserAction(URLs.BLOG_URL, dialogService, preferences.getExternalApplicationsPreferences())),
factory.createMenuItem(StandardActions.OPEN_LINKEDIN, new OpenBrowserAction(URLs.LINKEDIN_URL, dialogService, preferences.getExternalApplicationsPreferences())),
factory.createMenuItem(StandardActions.OPEN_FACEBOOK, new OpenBrowserAction(URLs.FACEBOOK_URL, dialogService, preferences.getExternalApplicationsPreferences())),
Expand Down
9 changes: 9 additions & 0 deletions jabgui/src/main/java/org/jabref/gui/util/URLs.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,15 @@ public class URLs {
public static final String CHANGELOG_URL = "https://github.com/JabRef/jabref/blob/main/CHANGELOG.md";
public static final String HELP_URL = "https://docs.jabref.org/";

// Quick Settings URLs
public static final String FILE_LINKS_DOC = "https://docs.jabref.org/finding-sorting-and-cleaning-entries/filelinks";
public static final String CUSTOM_THEME_DOC = "https://docs.jabref.org/advanced/custom-themes";
public static final String PERFORMANCE_DOC = "https://docs.jabref.org/faq#q-i-have-a-huge-library.-what-can-i-do-to-mitigate-performance-issues";
public static final String PUSH_TO_APPLICATIONS_DOC = "https://docs.jabref.org/cite/pushtoapplications";
public static final String ONLINE_SERVICES_DOC = "https://docs.jabref.org/collect/import-using-online-bibliographic-database";
public static final String GROBID_DOC = "https://docs.jabref.org/collect/newentryfromplaintext#grobid";
public static final String ENTRY_TABLE_COLUMNS_DOC = "https://docs.jabref.org/advanced/main-window";

// AboutDialogViewModel URLs
public static final String HOMEPAGE_URL = "https://www.jabref.org";
public static final String DONATION_URL = "https://donations.jabref.org";
Expand Down
34 changes: 34 additions & 0 deletions jabgui/src/main/java/org/jabref/gui/util/component/HelpButton.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.jabref.gui.util.component;

import javafx.scene.control.Button;

import org.jabref.gui.DialogService;
import org.jabref.gui.edit.OpenBrowserAction;
import org.jabref.gui.icon.IconTheme;
import org.jabref.gui.preferences.GuiPreferences;

import com.airhacks.afterburner.injection.Injector;
import org.jspecify.annotations.NonNull;

public class HelpButton extends Button {
public HelpButton() {
setGraphic(IconTheme.JabRefIcons.HELP.getGraphicNode());
getStyleClass().add("icon-button");
setPrefSize(28, 28);
setMinSize(28, 28);
}

public HelpButton(@NonNull String url) {
this();
setHelpPage(url);
}

public void setHelpPage(@NonNull String helpDocumentationUrl) {
setOnAction(
_ -> new OpenBrowserAction(helpDocumentationUrl,
Injector.instantiateModelOrService(DialogService.class),
Injector.instantiateModelOrService(GuiPreferences.class).getExternalApplicationsPreferences()
).execute()
);
}
}
Loading
Loading