Skip to content

Conversation

@CodeRishiX
Copy link

@CodeRishiX CodeRishiX commented Oct 25, 2025

Closes #14083

Converted fixed-value ComboBoxes in the Preferences dialog & Web Search to SearchableComboBoxes for improved usability.
Updated sections include General, Web Search, Entry Types, and External Programs.

Steps to test

In Web Search, click the Service dropdown and use keyboard input to quickly jump to and cycle among matching services.

In Preferences → General, open the Language dropdown and filter languages by typing.

In Preferences → Entry Types, add or edit a field and observe that the Field selection dropdown now live-filters as you type.

In Preferences → External Programs → Push Applications → Application to push entries to, use the dropdown to confirm it filters results dynamically as you type.

Example
Screenshot 2025-10-22 195814

Known Observations

While testing Preferences → General → Language, I noticed that the SearchableComboBox only matches exact text.
For example, searching for “espanol” does not bring up “Español,” and “filipino” does not match “Tagalog/Filipino.”
This affects certain languages (e.g., Español, Deutsch, Suomi, Nederlands, Tagalog/Filipino, Français) where accents or alternate spellings prevent matches.

In Preferences → AI → Chat model dropdown, users can type inside the field, but it does not filter or search the choices as expected. Instead, it allows input but does not match or autocomplete available models. This may cause confusion, as it appears to be editable but does not work as a searchable/filterable dropdown.

Mandatory checks

  • I own the copyright of the code submitted and I license it under the MIT license
  • I manually tested my changes in running JabRef (always required)
  • [/] I added JUnit tests for changes (if applicable)
  • I added screenshots in the PR description (if change is visible to the user)
  • I described the change in CHANGELOG.md in a way that is understandable for the average user (if change is visible to the user)
  • I checked the user documentation: Is the information available and up to date? If not, I created an issue at https://github.com/JabRef/user-documentation/issues or, even better, I submitted a pull request updating file(s) in https://github.com/JabRef/user-documentation/tree/main/en.

Comment on lines 44 to 45
<SearchableComboBox fx:id="pushToApplicationCombo"
prefWidth="200.0" GridPane.columnIndex="1"/>
Copy link
Member

Choose a reason for hiding this comment

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

editable false?

Copy link
Author

Choose a reason for hiding this comment

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

Thank you for pointing that out. I have added editable="false" as suggested.
I will push the updated code shortly.

@calixtus
Copy link
Member

This covers also #14082 , an issue that was already assigned to @Memeel . So the other should be merged first and this one after, to have the commiter history show proper credit.

@CodeRishiX please look out for issues already assigned next time. JabRef tries to be a OSS beginner friendly project where everybody following the rules gets a chance.

@calixtus
Copy link
Member

Merge after #14189

@CodeRishiX
Copy link
Author

This covers also #14082 , an issue that was already assigned to @Memeel . So the other should be merged first and this one after, to have the commiter history show proper credit.

@CodeRishiX please look out for issues already assigned next time. JabRef tries to be a OSS beginner friendly project where everybody following the rules gets a chance.

Thanks for letting me know! I'll make sure to check issue assignments before working next time.

@Siedlerchr
Copy link
Member

@CodeRishiX The other PR was just merged for the entry types, can you please resolve the merge conflicts now?=

@CodeRishiX
Copy link
Author

@CodeRishiX The other PR was just merged for the entry types, can you please resolve the merge conflicts now?=

Sure.

@jabref-machine
Copy link
Collaborator

JUnit tests of jablib are failing. You can see which checks are failing by locating the box "Some checks were not successful" on the pull request page. To see the test output, locate "Source Code Tests / Unit tests (pull_request)" and click on it.

You can then run these tests in IntelliJ to reproduce the failing tests locally. We offer a quick test running howto in the section Final build system checks in our setup guide.

@CodeRishiX
Copy link
Author

@CodeRishiX The other PR was just merged for the entry types, can you please resolve the merge conflicts now?=

Hi @Siedlerchr, after resolving the changelog conflict, I see that it's now failing on 2 Jabilib unit tests.
I've checked (https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.html#final-build-system-checks) in our setup guide, and the test passes on my machine. For this PR, I have not touched any code related to jabilib (only CHANGELOG.md and UI files).

Since these failures did not happen in my earlier commits and I haven't changed related code.

Could you please advise on how to proceed.
image

@Siedlerchr
Copy link
Member

if you click on the details of the failing test you see


> Task :jablib:test
org.jabref.logic.l10n.LocalizationConsistencyTest

  Test findObsoleteLocalizationKeys() FAILED (1.6s)

  java.lang.RuntimeException: javafx.fxml.LoadException: 
  /home/runner/work/jabref/jabref/jablib/../jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml:116
      at org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findObsoleteLocalizationKeys(LocalizationConsistencyTest.java:149)
  Caused by: javafx.fxml.LoadException: 
  /home/runner/work/jabref/jabref/jablib/../jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml:116
      at app/org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findObsoleteLocalizationKeys(LocalizationConsistencyTest.java:149)
  Caused by: com.fasterxml.aalto.WFCException: Unexpected end tag: expected </HBox>
   at [row,col {unknown-source}]: [116,12]
      at app/org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findObsoleteLocalizationKeys(LocalizationConsistencyTest.java:149)

  Test findMissingLocalizationKeys() FAILED

  java.lang.RuntimeException: javafx.fxml.LoadException: 
  /home/runner/work/jabref/jabref/jablib/../jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml:116
      at org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findMissingLocalizationKeys(LocalizationConsistencyTest.java:128)
  Caused by: javafx.fxml.LoadException: 
  /home/runner/work/jabref/jabref/jablib/../jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml:116
      at app/org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findMissingLocalizationKeys(LocalizationConsistencyTest.java:128)
  Caused by: com.fasterxml.aalto.WFCException: Unexpected end tag: expected </HBox>
   at [row,col {unknown-source}]: [116,12]
      at app/org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findMissingLocalizationKeys(LocalizationConsistencyTest.java:128)

@CodeRishiX
Copy link
Author

if you click on the details of the failing test you see


> Task :jablib:test
org.jabref.logic.l10n.LocalizationConsistencyTest

  Test findObsoleteLocalizationKeys() FAILED (1.6s)

  java.lang.RuntimeException: javafx.fxml.LoadException: 
  /home/runner/work/jabref/jabref/jablib/../jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml:116
      at org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findObsoleteLocalizationKeys(LocalizationConsistencyTest.java:149)
  Caused by: javafx.fxml.LoadException: 
  /home/runner/work/jabref/jabref/jablib/../jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml:116
      at app/org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findObsoleteLocalizationKeys(LocalizationConsistencyTest.java:149)
  Caused by: com.fasterxml.aalto.WFCException: Unexpected end tag: expected </HBox>
   at [row,col {unknown-source}]: [116,12]
      at app/org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findObsoleteLocalizationKeys(LocalizationConsistencyTest.java:149)

  Test findMissingLocalizationKeys() FAILED

  java.lang.RuntimeException: javafx.fxml.LoadException: 
  /home/runner/work/jabref/jabref/jablib/../jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml:116
      at org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findMissingLocalizationKeys(LocalizationConsistencyTest.java:128)
  Caused by: javafx.fxml.LoadException: 
  /home/runner/work/jabref/jabref/jablib/../jabgui/src/main/resources/org/jabref/gui/preferences/customentrytypes/CustomEntryTypesTab.fxml:116
      at app/org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findMissingLocalizationKeys(LocalizationConsistencyTest.java:128)
  Caused by: com.fasterxml.aalto.WFCException: Unexpected end tag: expected </HBox>
   at [row,col {unknown-source}]: [116,12]
      at app/org.jabref.jablib/org.jabref.logic.l10n.LocalizationConsistencyTest.findMissingLocalizationKeys(LocalizationConsistencyTest.java:128)

@Siedlerchr Hi! Thanks for the clarification.

Just to share what I noticed from my side: before the recent merge, my feature branch was working fine, and the CustomEntryTypesTab.fxml file had no issues. After pulling the latest changes, this test failure started appearing. I did not modify this part of the FXML, so it looks like the issue was introduced during the merge.

After looking at the file, I noticed that there might be a duplicate block with addNewField / addNewFieldButton, and I also saw repeated fx:id values. It also seems like one tag might not be properly closed.
I’m not completely sure, but these might be causing the FXML load error. Could you please take a look?

Since these changes are not made by me & I’m still new to this kind of workflow, could you please guide me on what I should do next?

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Web Search: Enable search by letter

4 participants