jabref icon indicating copy to clipboard operation
jabref copied to clipboard

Add 15 non-standard BibLaTeX entry types with .withType() method

Open shubhamk0205 opened this issue 2 weeks ago • 0 comments

Closes #12963

Adds 15 non-standard BibLaTeX entry types (Artwork, Audio, Bibnote, Commentary, Image, Jurisdiction, Legislation, Legal, Letter, Movie, Music, Performance, Review, Standard, Video) that are hard-coded and only available in BibLaTeX mode. These types are displayed in a dedicated "Non-standard Types" group in the New Entry dialog and in the context menu. The implementation introduces a .withType() method to BibEntryType that allows creating type variants with the same field definitions, enabling all 15 types to be implemented as one-liners based on the MISC entry type.

Steps to test

Prerequisites: Ensure the library is in BibLaTeX mode (Library → Library Properties → General → Library mode = "biblatex").

  1. New Entry dialog: Press Ctrl+N → Scroll to "Non-standard types" section → Verify all 15 types are visible with tooltips → Click any type to create an entry → Verify correct type is set.

  2. Context menu: Right-click an entry → "Change entry type" → "Non-standard Types" → Verify all 15 types listed → Select a type → Verify entry type changes → Confirm no duplicates in main menu.

  3. BibTeX mode: Switch to BibTeX mode → Open New Entry dialog → Verify "Non-standard types" section is hidden → Right-click entry → Verify "Non-standard Types" submenu is not present.

  4. Persistence: Create entry with non-standard type → Add fields → Save library → Close and reopen → Verify entry type persists.

Screenshots

image image

Mandatory checks

  • [x] I own the copyright of the code submitted and I license it under the MIT license
  • [x] I manually tested my changes in running JabRef (always required)
  • [x] I added JUnit tests for changes (if applicable)
  • [x] I added screenshots in the PR description (if change is visible to the user)
  • [x] I described the change in CHANGELOG.md in a way that is understandable for the average user (if change is visible to the user)
  • [x] 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.

shubhamk0205 avatar Dec 06 '25 01:12 shubhamk0205