ChangeLog

Diff 0.10.1 to 0.11.0

- New online search: Unpaywall (can only search for freetext or DOI)
- New online search: Google Books (can only search of ISBN)
- Updating online search engine: Springer Nature Link, ScienceDirect, IDEAS/RePEc
  BioRxiv, MedRxiv
- Searching for PDF files in SciHub (can be removed at compile time)
- KDE Bug 444779: Adding zbMATH Open OAI-PMH search
- Retrieving favicons by evaluation online search's webpage instead of hard-coding
  favicon URLs
- KDE Bug 403750, 413367: Allow to resize and reorder columns in the main
  bibliography view
- KDE Bug 400672: Save only selected elements in a new bibliography file
- KDE Bug 460315: Allow to sort elements' identifiers and keys sorted
- KDE Bug 460316: Provide a command line program ('kbibtex-cli') to perform various
  operations like converting bibliographies between different formats and reformatting
  entries' keys according to some template
- Adding SPDX identifiers to source files (SPDX-License-Identifier and
  SPDX-FileCopyrightText)
- Improving support for Greek 'mu' versus 'micro' symbol
- Refactoring FileExporterBibTeX and FileImporterBibTeX classes, among others for
  better handling of text encodings incompatible with ASCII, such as UTF-16
- Adding exporter for Word XML bibliography
- Improving support for Greek 'mu' versus 'micro' symbol
- Refactoring usage of Qt 5 and KDE Framework 5 libraries that became deprecated
  during the move to Qt 6 and KDE Frameworks 6.
  Includes contributions by Nicolas Fella <nicolas.fella@gmx.de>
- Fixing issues with closed QBuffer instances
- Fixing issues and warnings with localization
- Better support for JabRef's special structure for 'file' fields
- Various improvements in XML export, now available in 'Save Copy As' operations
- Migrating away from QtXmlPatterns (no longer available in Qt6): ArXiv, IEEE Xplore, PubMed, Springer Link, zbMATH
- Addressing linter and compiler warnings about potentially problematic code
- Removing support for Qt WebKit
- Various clean-ups and code modernizations
- Adding scripts to compile and run KBibTeX in PodMan containers mimicing various
  Linux distributions
- Re-introducing ICU as a hard dependency due to loss of QTextCodec from Qt6

Various contributions by Albert Astals Cid <aacid@kde.org>, Antoni Bella Pérez
<antonibella5@yahoo.com>, Friedrich W. H. Kossebau <kossebau@kde.org>, Luigi Toscano
<luigi.toscano@tiscali.it>, Matthias Mailänder <matthias@mailaender.name>, Nicolas Fella
<nicolas.fella@gmx.de>, Pino Toscano <pino@kde.org>, Volker Krause <vkrause@kde.org>,
Yann Büchau <nobodyinperson@posteo.de>, Yuri Chornoivan <yurchor@ukr.net>, yuu yuu
<yuu@tutamail.com>
See Git repository for details.

Diff 0.10.0 to 0.10.1

- KDE Bug 467803: Accepting empty string as valid copy reference command
- KDE Bug 470750: 'View Document' should check for existance of local PDF at keypress
- KDE Bug 470169: Add a 'don't ask again' checkbox when notifying the user that KBibTeX
  is not the default bibliography editor
- KDE Bug 478056: Linked Documents are opened via resolved path, not given path

Diff 0.9.3.2 to 0.10.0

- New online search: Semantic Scholar
- Migrating Inspire Hep to REST API
- Fixing and revamping ACM's Digital Library (a.k.a. ACM Portal) online search
- Refactoring NSA ADS to use official API
- Use Qt's own QOAuth1 class instead of external library QOAuth
- Providing .gitlab-ci.yml to enable continuous integration at GitLab
  (see https://gitlab.com/tfischer/kbibtex-ci/pipelines)
- Greatly refactoring and modernizing CMakeLists.txt files, generation of camel-case
  headers, private/public linking to libraries, ...
- Tabs in the entry editor can show short messages to use, e.g. in which tab DOIs or URLs
  are to be entered
- Updating BibSearch code: cover page improved, preparing code for translations,
  adding progress bar
- Refactoring most regular 'enum's to become 'enum class'es
- Preferences class greatly refactored: Based on JSON description, a Python script will
  generate a C++ class/header pair providing all necessary functions and enums
- Cleaning header includes and include guards
- Preferring Qt classes over KDE counterparts, e.g. KLineEdit -> QLineEdit
  or KComboBox -> QComboBox
- Migrating many old-style casts like '(int)' to new-style casts like 'static_cast<..>(..)'
- Fixing missing <bibliography> tag in XML export
- Fixing issues when searching for PDF files ('Find PDF')
- Fixing UI issues with ColorLabelWidget
- Preferring QSignalBlocker over manually temporarily disconnecting/disabling signals
- Refactoring QSignalMapper into many small lambda-based 'connect's
- Refactoring small slot functions into lambda functions
- Using KRatingPainter instead of home-made StarRating's paint function
- Various improvements and refactoring when (PDF) files get associated with an entry
- KDE Bug 424033: Can't associate a file with a relative path without having the file copied
- Having ICU as an optional dependency only, provide internal, static translation from
  Basic Multilingual Plane (BMP) characters to ASCII-only representations
- Adding and extending numerous automated tests
- Code modernizations such as using QFontMetrics' 'horizontalAdvance(..)'
  instead of 'width(..)'
- Using QUrl's 'isValid()' instead of 'isEmpty()'
- Cleaner code, e.g. using std::numeric_limits<int>::max() instead of magic constant
  0x00ffffff
- QDebug output uses categories consistently
- KDE Bug 421612: When suggesting entry ids, do not count 'small words'
- Across classes, moving code into private subclasses to minimize public interface
- Updating translations (contributions by various authors)
- Numerous other fixes, clean-ups, refactoring, ...
- KDE Bug 423976: When formatting IDs, non-word characters should be used as word separators
- KDE Bug 426856: File encoding is not always stored
- KDE Bug 379443: Slowdown when loading citation with many authors
- KDE Bug 433005: Cannot unselect entry list view columns in BibLaTeX mode
- KDE Bug 433084, 453455: Fixing crash when opening .bib file
- KDE Invent issue 1: Properly handling letter modifiers such as \c{e} instead of \ce

Diff 0.9.3.1 to 0.9.3.2

- KDE Bug 464606: Reactivating installation of translations
- KDE Bug 464607: Removing dependency on Qt5's NetworkAuth

Diff 0.9.2 to 0.9.3.1

- Fixing crashes with newer Qt versions (Albert Astals Cid <aacid@kde.org>)
- Revamping various online searches by backporting updates from branch 'kbibtex/0.10':
  ACM's Digital Library, SpringerLink, JStor, NASA Astrophysics Data System, bioRxiv,
  InspireHEP
- Fixing minor issues with build system
- Fixing potential crash in BibTeX importer code
- KDE Bug 459150: Fix creation of URL from user input
- KDE Bug 463398: Predefined keywords are not remembered
- Fixing various smaller issues
- Adding Qt5's NetworkAuth as new explicit dependency

Diff 0.9.1 to 0.9.2

- Updating favicon URLs
- KDE Bug 409281: (PDF) files associated with newly saved bibliography files can only be
  associated with absolute URLs, not relative URLs as should be possible
- KDE Bug 414375, 414385: Fixing potential crash due to defining TRANSLATION_DOMAIN
- KDE Bug 414195: Deselecting all fields on BibTeX Viewer hides the field sorting header
- KDE Bug 417164: File URLs passed by command line preceed over LRU
- KDE Bug 401553: View documents containing question mark characters
- Fix bug preventing editing of comments
- KDE Bug 417210: Edit Element dialog closes without confirming, possibly losing edits

Diff 0.9 to 0.9.1

- Fixing GUI issues in preferences/settings
- Fixing id extraction during duplicate search
- Various minor fixes

Diff 0.8.2 to 0.9

- Can be compiled under Windows via Craft
- Integrating 'BibSearch', a mobile variant of KBibTeX using QML
  (Sailfish OS only as of now)
- Refactoring of id suggestion editor
- Making building Zotero support compile-time optional
- Internal refactoring of singleton variables and configuration
  settings
- Adding considerable number of QtText-based tests
- Migrating from QRegExp to QRegularExpression class
- Using Kate's text editor component for BibTeX sources
- Validating user-entered BibTeX sources while typing
- More verbose diagnostics while loading BibTeX or RIS data
- Various bugfixes in Encoder and BibTeX import classes thanks to
  improved automated tests
- Various small improvements for better robustness, performance, and
  memory efficiency
- KDE Bug 392137: Make entry type (and more fields) available in entry
  id suggestion setup
- KDE Bug 396597: BibLaTeX uses "file" instead of "localfile"
- KDE Bugs 405504/406692: Correct handling of ligatures like "st"
- Fixing resource leakage as identified by Coverity Scan:
  CID 325572, 325573
- Integrating commits by Alexander Dunlap, Antonio Rojas, Erik
  Quaeghebeur, Frederik Schwarzer, Pino Toscano, and Yuri Chornoivan

Diff 0.8.1 to 0.8.2

- KDE Bug 388892: Formatting error when saving file ( switching " and } )
- KDE Bug 394659: Crash after compilation 
- KDE Bug 396343: When saving the file, I am always warned that file has changed in disk 
- KDE Bug 396598: Bibliography system options contains duplicates 
- KDE Bug 397027: ScienceDirect search broken 
- KDE Bug 397604: Untranslated strings from bibtexfields.cpp and bibtexentries.cpp 
- KDE Bug 398136: KBibTeX crashes when editing element 
- KDE Bug 401470: Don't remove leading whitespace in macros
- Using official APIs for IEEE Xplore and ScienceDirect
- Fixing resource leakage as identified by Coverity Scan:
  CID 287670, 287669
- Fixing issues as identified by clazy
- Migrating from HTTP to HTTPS protocol in various places
- In encoder classes, migrating away from raw char and char* to Qt classes
- Various smaller fixes

Diff 0.8 to 0.8.1

- Fixing incorrect version number computation

Diff 0.7 to 0.8

Porting from Qt4 to Qt5, from KDE4 (kdelibs) to KDE Frameworks 5, as well as updating
various dependencies in the process (e.g. Qt5-based poppler)

- Removing old scripts and configuration files
- Updating/adding translations
- Removing dependency on Qxt as well as sources in src/3rdparty/libqxt
- Refactoring various files' location
- Various fundamental classes have only optional dependency on KDE Frameworks 5
  (default for KDE-based builds, but allows using those classes in Qt5-only setups)
- Various modernizations of C++ code towards C++11, including deprecation of SIGNAL/SLOT
- Moving bibliography files that previously resided in testset/ into their own Git repository
  (kbibtex-testset)
- Removing ISBNdb as it is no longer a free service
- KDE Bug 393032: Updating list of journal abbreviations
- KDE Bug 393224: LyX pipe detection (issues with Kile 3 fixed)
- KDE Bug 391198: Preview image/vnd.djvu+multipage files
- KDE Bug 389306: Removal of libQxt
- KDE Bug 387638: Locating correct QtOAuth library fixed
- KDE Bug 388688: Screenshots for appdata updated
- KDE Bug 386226: Character '~' not recognized in localfile entry
- KDE Bug 352517: Invalid report, but more verbose output will be logged
- KDE Bug 384741: Wrong ID Reported in Duplicate Dialog
- KDE Bug 381119: Do not refer to defunct Gna! anymore
  (note: Gna! infrastructure shut down before all materials (postings) could be retrieved)
- KDE Bug 378497: Fixing crash when closing settings dialog
- KDE Bug 368732: More options for ID generation: volume number, first page
- Numerous small fixes and changes, run 'git diff v0.6.2..v0.7' for details

Contributing authors include: Allen Winter, Andreas Sturmlechner, Andrius Štikonas, Antonio Rojas,
Bastien Roucaries, Burkhard Lück, Christoph Feck, Frederik Schwarzer, Joao Carreira,
Juergen Spitzmueller, Luigi Toscano, Pino Toscano, Raymond Wooninck, Thomas Fischer, and
Yuri Chornoivan

Diff 0.6.2 to 0.7

- Dependency on Qt WebKit can be disabled at compile time
- New dependency on ICU, used to transliterate text to plain ASCII
- Generally improved code quality as detected by code checkers such as Clazy or Coverity
- New online search: bioRxiv
- Various minor fixes
- Search in Zotero is rate limited to avoid overloading server
- Using KWallet to store Zotero credentials
- Adding basic DBUS support to, for example, open files or paste text

Diff 0.6.1 to 0.6.2

- KDE Bug 377401: https://bugs.kde.org/show_bug.cgi?id=377401
  KBibTeX fails to load zotero bibliography

Diff 0.6 to 0.6.1

- KDE Bug 351455: https://bugs.kde.org/show_bug.cgi?id=351455
  Removing soversion from KBibTeX Part
- KDE Bug 353898: https://bugs.kde.org/show_bug.cgi?id=353898
  Fixing build issues on ARM architecture
- KDE Bug 354785: https://bugs.kde.org/show_bug.cgi?id=354785
  Using QTextDocument/QTextEdit instead of WebKit/WebEngine: more lightweight and supported on all platforms
- Correcting choke on PubMed searches to 10 seconds
- Fixing search issues for ACM, Google Scholar, JSTOR, and ScienceDirect
- Setting foreground color of colored rows to either black or white for better readability
- Disabling OCLC WorldCat (request for support denied by this organization)
- Generally improved code quality as detected by code checkers such as Clazy or Coverity
- Fixing handling of URLs and their protocols for local files
- Fixing setting default id suggestion
- Adding 'Keywords' field to .desktop file
- Removing file that was licensed under CC BY-NC, but never got installed
- Improved Unicode support
- Better handling quotation marks and protective curly brackets around titles
- Updating translations

Diff 0.5.2 to 0.6

- Allowing "unity builds", i.e. merging source code files for faster compilation
- Enabling BibUtils support to import/export exotic file formats
- Entries can be rated with stars
- Adding entry type for Master's thesis
- Setting entry identifiers automatically if configured by user
- Files (e.g. PDF) can be 'associated' with an entry, including moving/copying/renaming the file to match the bibliography's location and the entry's id
- In the element editor, unused tabs are no longer just disabled, but hidden instead
- Automatic column-resizing improved
- Bibliographies can be imported from Zotero
- Adding user interface translations to various languages
- New online search engines: CERN Document Server, DOI, IDEAS (RePEc), MR Lookup; fixes to existing search engines
- New dockets for file settings, file statistics, and browsing Zotero bibliographies
- Value selected in the value list can be added or removed from selected entries
- Enhancing the Id Suggestion system
- Various fixes as suggested by KDE's code analysis tool Krazy
- Numerous small fixes and changes, run 'git diff v0.5.2..v0.6' for details

Diff 0.5.1 to 0.5.2

- Migrating to KDE's Git infrastructure
- Gna Bug 22418: http://gna.org/bugs/?22418:
  Relative paths fail to get resolved
- KDE Bug 339086: https://bugs.kde.org/show_bug.cgi?id=339086
  Fixing ScienceDirect search
- KDE Bug 343855: https://bugs.kde.org/show_bug.cgi?id=343855
  'Copy Reference' setting in GUI correctly stored
- KDE Bug 344495: https://bugs.kde.org/show_bug.cgi?id=344495
  Uninitialized variable causes crash
- KDE Bug 344497: https://bugs.kde.org/show_bug.cgi?id=344497
  Message next to Import button in Search Results
- Various minor changes and backports from 0.6.x
  Run   git log v0.5.1..v0.5.2   for a more detailed change log

Diff 0.5 to 0.5.1

- KDE Bug 329724: https://bugs.kde.org/show_bug.cgi?id=329724
  Fixing sorting issue in main list
- KDE Bug 329750: https://bugs.kde.org/show_bug.cgi?id=329750
  KBibTeX will set itself as default bibliography editor in KDE
- KDE Bug 330700: https://bugs.kde.org/show_bug.cgi?id=330700
  Crash when finding PDFs
- KDE Bug 332043: https://bugs.kde.org/show_bug.cgi?id=332043
  Fixing crash in id suggestion editor
- Gentoo Bug 498932: https://bugs.gentoo.org/show_bug.cgi?id=498932
  Fixing compilation issue
- Gna Bug 21581: http://gna.org/bugs/?21581
  Restoring session state (1)
- Gna Bug 21545: http://gna.org/bugs/?21545
  Restoring session state (2)
- Debian Bug 689310: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=689310
  Correctly parsing command line arguments if relative paths are given
- Various minor clean-ups and improvements
  Run   git log v0.5..v0.5.1   for a more detailed change log

Diff 0.4.1 to 0.5

- Initial support for BibLaTeX
- Id Suggestion editor like available in old KDE3 version
- "Find PDF" function to locate PDF files through web search engines
- New online database searches: MathSciNet, Ingenta Connect, Inspire Hep, SAO/NASA ADS, ISBN DB, JStor
- Improved memory management
- Numerous bug fixes and improvements

Diff 0.4 to 0.4.1

- Web searches: Improved support for user-triggered cancelling
- SpringerLink search: GUI changes, using api.springer.com for search
- PubMed: Limiting search requests per time
- ACM Portal: Retrieving "month", fixing HTTP header
- JSTOR: fixing HTTP header
- Google Scholar: Updates to compensate for changes in Google's web layout; handling redirects
- Science Direct: Updates to compensate for changes in Science Direct's web layout; handling redirects
- arXiv: Trying to extract bibliographic information from journal strings
- BibSonomy: Specifying number of hits to find
- Minor changes in IEEExplore search; non-functional due to Qt bug?
- Web search uses KDE's proxy settings
- Using KDE subsystem to open external files (e.g. PDF files)
- Adding preview for images (in addition to PDF or HTML files); handling references to arXiv
- Squeezing long file names in user interface
- Handling quit actions more gracefully
- Improving interface to external programs such as pdflatex
- More robust XSL transformations
- BibTeX import: guessing encoding information left by JabRef, more informative debug output, improved handling of multiple fields with same name
- Reference preview: supporting dark color schemes
- Fixing sorting in value list
- Fixes in setting color tag to entries
- Fixes in name formatting
- Keeping user interface read-only for read-only use cases
- Numerous bug fixes, closing memory leaks, speed improvements
- Fixes in duplicate merging code: remove fields user doesn't want to keep

Diff 0.3 to 0.4

- Support for Windows (compiles out of the box)
- Configuration file system refactored
- Adding more online search engines: SpringerLink, PubMed, ACM Digital Library, JSTOR, IEEE Xplorer, Science Direct
- Improving all other online search engines: Google Scholar, arXiv, BibSonomy
- "List of Values" refactored, allows to search for items
- Introducing preferences dialog to manage various settings
- Improved support for drag'n'drop throughout the program
- Improving tagging elements with color
- Introducing global keyword list to select from
- Editing widgets get "history" to select from
- Widget for cross references allows to select from existing elements
- Introducing duplicate finding and merging code and user interface
- Improvements in usability of filter line edit
- File view can resize and order columns, settings get stored
- Improving file importer and exporter filters
- BibTeX references can be sent to LyX via a pipe
- Numerous bug fixes
