2023/09/16 - 2.2.0:
- setup.py has been replaced by pyproject.toml
- doclist: optimization: Now that Gtk.Template are available. Use them
  instead of reloading Gtk widget trees.
- doclist: optimization: only load thumbnails and labels of documents actually
  visible in the document list.
- settings.storage: try to warn users that using an already existing folder
  with Paperwork is a bad idea (unless it has the file structure expected by
  Paperwork, of course)
- fix uncaught exception when the user clicks many times the button 'next
  page'.
- fix import of password-protected PDF files.
- doclist thumbnails: handle gracefully corrupted thumbnails/documents.
- Flatpak workaround: when running in Flatpak, always run first 'fc-cache -f'
  to make sure that text will be rendered correctly in PDF pages.
- Import dialog: remember last import location
  (thanks to Guillaume Girol)
- Export dialog: fix title
  (thanks to Guillaume Girol)

2023/01/08 - 2.1.2:
- Optim: mainwindow.docproperties: optim reload doc properties only if the doc properties are actually visible (it was a huge CPU waste) (thanks to pie@#openpaperwork)
- Fix: docview: make sure the currently-active page is always the currently-highlighted one
- Fix: docview: remove an obsolete workaround preventing 'doc_goto_page()' to work correctly right after a call to 'doc_open()'
- page editor: when clicking apply, make it obvious the user may have to wait.
  Sometimes Paperwork has already jobs queued and cannot apply the changes
  immediately --> user has to wait
- mainwindow.pageview.boxes: Fix crash: in some rare cases, we may have 2 word
  boxes with the same coordinates --> when sorting the boxes by position, we
  may have to implement __lt__ on NBox.

2022/01/31 - 2.1.1:
- drop unused dependency on dateutil
- Doc deletion: Fix broken spanish translation: Wrong Python formatter has
  been used
- model.help.intro: Handle gracefully the case where the package maintainer
  forgot to include the introduction documents

2021/12/05 - 2.1.0:
- Responsive UI (thanks to Mathieu Jourdan)
- Add support for password-protected PDF files
- Export: add a button sendig the document by mail instead of exporting to disk
  (thanks to Guillaume Girol)
- Add confirmation when deleting label from all documents
- Add option to redo ocr on many documents in one shot
- Add option to move a page from one document to another (drag'n'drop
  isn't obvious to all users)
- Page menu: add an option to move pages inside a document
  (drag'n'drop isn't obvious to all users)
- Mouse middle button can now be used to scroll in a document (auto-scrolling)
- Add dependency on Libhandy

2021/05/24 - 2.0.3:
- GTK: (may be important for package maintainers):
  "make data" --> "screenshot.sh": Download the test documents from a Git
  repository instead of a .tar.gz. See Gitlab issue #961.
- GTK: Doc/page export: Work around bug in Gnome platform 40 (Flatpak) (caused
  a full crash of Paperwork ; Segfault)
- GTK: Doc/page export: Fix use of GtkFileChooserNative so Paperwork can exit
  correctly after its use.
- GTK: Doc renaming (date change): Prevent the user from giving an invalid name
  to a document
- GTK: Doc/page export: Handle gracefully errors (for instance Permission
  Denied)
- GTK: word boxes loading: Add missing progress notification
- GTK: Import: When importing in an existing document, refresh correctly the
  GUI is the target document is currently opened.
- GTK: LaTeX User manual: various fixes suggested by tomf on Weblate
- Swedish translations added

2021/01/01 - 2.0.2:
- pageview.boxes: add workaround regarding unexpected Poppler exceptions on
  some PDF documents
  (see https://gitlab.freedesktop.org/poppler/poppler/-/issues/1020 )
- add a command "paperwork-gtk import": Open the GUI and import the documents
  given as arguments (thanks to Guillaume Girol)
- desktop file: associate "paperwork-gtk install" to PDF and images files,
  so users can import files directly from their file browser (thanks to
  Guillaume Girol)
- add plugin 'sync_on_start':
  Start the full synchronization when the GUI is started, but only if the
  configuration allows it. (Before this plugin, synchronization was started
  directly in the 'main.py')
- advanced search: prevent the user from opening the dialog twice
  (not supported)
- Help documents: Fix for people who seem to have no locale configured (?!)
- settings/scanner/flatpak: Fix the dialog explaining how to enable Flatpak:
  Once the dialog has been closed and destroy, it could not be opened correctly
  again.
- drawer.scan: Workaround regarding scanners reporting an image too big for
  Cairo ImageSurface (some Fujitsu scanners)
- settings/storage: when opening the file chooser to select the work directory,
  pre-select the current work directory
- GTK: boxes.search: do not highlight the keywords "and" and "or".
  They are used in Whoosh query syntax, but it's useless to highlight them in
  documents.

2020/11/15 - 2.0.1:
- take into account that document IDs may not be the expected date+time
  format (no uncaught exception should be raised in that case)
- doclist: Fix: When the document list, scroll to the currently-opened
  document.
- settings/calibration: Disable the calibration settings button if no scanner
  is selected
- update notifications: make sure the funny strings are displayed translated
- Include tests in Pypi package (thanks to Elliott Sales de Andrade)

2020/10/17 - 2.0:
- Full rewrite
- Use of plugin system of openpaperwork_core to split features
- PDF can be edited
- Pages can be reinitialized to their initial states (reset)
- Settings dialog have been revamp
- Scan source selection is done in the main window now instead of the settings
  dialog
- No multi-scan dialog anymore: clicking "scan" always scan until the end of
  feed
- An automatic bug report submission system has been added

2019/12/20 - 1.3.1:
- Add spanish translations (thanks to Iñigo Figuero)
- Frontend: Fix multi-scan dialog / scanning from feeder
- Frontend: When looking for the scanner, if the exact ID is not found,
  fix fall back code
- Frontend: About dialog: Add patrons

2019/08/17 - 1.3.0:
- Switch from Pyinsane2 to Libinsane
- Replace application menu by primary menu (new Gnome recommendation)
(thanks to Mathieu Jourdan)
- Remove documentations 'hacking' and 'translating'. They are in the Wiki
  now.
- Fix: Make sure the main window is restored at its previous size
  correctly each time Paperwork starts.
- Settings window: If no scanner has been found and we are running inside
  a Flatpak container, show a popup to the user explaining how to enable and
  configure Saned.
- Drop custom heuristic page orientation detection. Only use tool
  orientation detection. If it fails, default to the original orientation.
- Fix: Ignore word boxes starting at (0, 0) (Tesseract bug ?) (thanks to
  Jonas Wloka and Balló György)
- Install icons in the correct hicolor sub-directory (thanks to
  Elliott Sales de Andrade)
- Fix warnings related to regexes escaping + various other cleanups (thanks
  to Elliott Sales de Andrade)

2018/03/01 - 1.2.4:
- Main window/pages/mouse handlers: Fix infinite loop in signal handling when
  the mouse goes over buttons drawn over pages.

2018/02/01 - 1.2.3:
- Flatpak: Fix support of other GTK themes (Dark Adwaita, etc)
- French translations: shorten the translation of "Matching papers" because
  otherwise it messes with the UI
- Export dialog: Clicking on export->{document|page} a second time will first
  close the first export dialog.

2017/11/14 - 1.2.2:
- DnD: Fix double-delete: when moving the last page of a document
  to another, don't delete the source document (it's up to the
  backend code to delete it)
- Flatpak support
- CSS: Add border around application button to make it more visible

2017/08/26 - 1.2.1:
- Add source code of Windows installer (NSIS installer) generator
- Scanner support / Multi-scan: Cancel also successful scan session. Otherwise
  some scanner won't allow new scan sessions later.
- Remove gi version warnings when starting (thanks to Matthieu Coudron)
- Documentation: Add missing stdeb dependencies (thanks to Notkea)
- paperwork-shell: Fix command 'scan'
- paperwork-shell install: add docstring
- Fix dialog 'about'

2017/07/11 - 1.2.0:
- Installation: A new command has been added: "paperwork-shell install".
  This command installs icons and shortcut in the desktop menus.
- Add integrated documentations:
  + Introduction to Paperwork (added to the documents when Paperworks starts
    for the first time)
  + User manual (not complete yet)
  + Developer's guide
  + Translator's guide
- Text in pages can be selected
- Text in pages can be copied in clipboard
- Automatically look for updates (disabled by default ; see settings)
- Send anonymous usage statistics (disabled by default ; see settings)
- Export: Add simplification methods 'grayscale', 'black and white', and
  'grayscale + soft'. They produce much smaller documents
- setup.py: Properly package resources files (glade, images, css) and load them
  using pkg_resources. (thanks to Alexandre Vaissière)
- Import: After import, propose the user to move files to trash after import
  (thanks to Mathieu Schopfer)
- Import: Allow selecting multiple files in the file chooser dialog
- Import: Clearly show in the file chooser dialog which file formats are
  supported
- Import: Use notifications instead of popups
- Virtualenv: also look for translation files (thanks to Alexandre Vaissière)
- Export: Remove the text field + save button ; request the target file
  location when the user actually clicks on 'export'
- Export: Display a notification when exports are finished
- Search: When searching, display a search bar to browse the document(s)
- Search: new keyboard shortcuts: F3 (next) + Shift+F3 (previous)
- Settings: Remove "Disable OCR" from the language list. It's redundant with
  the check box above the language list
- non-Gnome / non-Unity environements : Move the application menu to the left
  headerbar (top left of the main window)
- paperwork-shell chkdeps: look for libsane too
- localize.sh: Also include the translations for paperwork-backend
- Settings: Use pycountry to translate the language names + remove 'equ'
  and 'osd'
- GUI: change the way left panes are switched to reduce issues with GTK+
- Internal: Switch everything to URIs (required for correct Gio use)
- Devel: Add basic command line arguments (thanks to Mathieu
  Coudron):
  + -d for debug output
  + -v for version

2017/02/09 - 1.1.2:
- Doc date changing: Fix for Windows: Don't display the document while
  renaming its folder --> it keeps a file descriptor opened to its PDF
  file and prevent the renaming

2017/02/05 - 1.1.1:
- Fix document list refresh problem (mostly visible on Ubuntu)

2017/01/30 - 1.1.0:
- Windows: Activation mechanism has been disabled for now
- Workarounds for Gtk-3.20.x / GLib 2.50 (Ubuntu):
  - Work around weird behavior of GLib.idle_add (multiple calls)
  - Work around lack of refresh of document list
- Import: Display how many image files, PDFs, documents and pages have been
  imported.
- Automatic Color Equalization: Reduce the 'circle side-effect' by increasing
  the number of samples used.
- paperwork-shell scan: Quit after scanning
- Settings window: "Source" becomes "Default source" (cosmetic)
- Export: Don't lock the UI
- Export: Display the progression of the export
- Improve keyword highlighting: Highlight words identical to search keywords
  (as before) and also words close enough (example: 'flesh' when 'flesch'
  is being search)
- Optim: Document list: Only display display the first 100 elements of the
  list, and extend it only when required. Reduces GTK latency
  (GtkListBox doesn't scale very well above 100 elements).
- Optim: Improve PDF rendering speed: Let the libpoppler take care of the
  rendering size (see backend:page.get_image())
- Optim: Reduce the number of useless calls to redraw()

2016/12/04 - 1.0.6:
- Diagnostic: Limit the number of lines kept in memory (avoid running out of
  memory in case of endless loop)
- Diagnostic: Log all the uncaught exceptions
- PDF import: When importing a big PDF, clearly show the progression of the
  import
- Multiple document selection: Fix the way Ctrl/Shift keys are handled (bug
  was that multiple selection mode remained stuck sometimes)

2016/11/22 - 1.0.5:
- Setting the resolution on the scanner may not actually work. If it is not
  possible to set the resolution, fall back on the current one.
- Improve tolerance to crappy scanner drivers: don't stop
  if pyinsane2.maximize_scan_area() fails

2016/11/18 - 1.0.4:
- Windows: Fix import error dialog
- Windows: Fix GtkLinkButtons (didn't do anything when clicked)

2016/11/17 - 1.0.3:
- Windows: Fix opening of export dialog
- Application menu button: Make its style consistent with the other buttons in
  the header bar
- Label list: Add a button to delete labels
- Label editor: Fix the reloading of the label list when a label has been
 changed
- Label editor/Color picker: Fix the switch of the mouse cursor to a pipette
- Small Paperwork icons: add a discrete blue background to make the icon more
  visible
- Main window: When on "new document", disable the page number entry field +
  the view settings button
- Fix icons (application icon, main window, about dialog)


2016/11/13 - 1.0.2:
* Fix export dialog:
  - Don't use GtkWidget.set_visible(False) / GtkWidget.set_visible(True)
    anymore to avoid weird GTK behavior when reopening
  - Fix endless loop that occured with some versions of the GLib
* French translations: "Scanner" --> "Numeriser"
* Windows support: Fix translations support
* CSS: Add small padding to make sure the GtkEntry and GtkButton in the header
  bar all have the same heights on all environments.
* Fix menu icon: Add PNG versions of the PAperwork icon.


2016/11/10 - 1.0.1:
* Config: Fix pycountry db lookup (prevent Paperwork's first start)
* Pyinstaller: Add .ico + .png in the package


2016/11/09 - 1.0:
* Export: generated PDF now includes the text from the OCR
* New command 'paperwork-shell scan' that starts Paperwork and immediately
  tries to scan a page
* 'paperwork-chkdeps' has been replaced by 'paperwork-shell'
* Export: Add an option to automatically simplify the content (makes it
  smaller in size)
* Import: Display a popup when the import fails
* Page editing: Add an option to adjust automatically colors
* Page editing: Fix display when making many edit operations at once (Rotation
  Cropping + ...)
* When starting, instead of displaying an empty document, display Paperwork's
  logo and the version (if different of "1.0")
* Improve zooming/unzooming with Ctrl+MouseWheel (try to target the mouse
  cursor)
* Allow scrolling using the middle click
* Support for pyinstaller packaging
* Fix running the OCR while scanning at the same time
* Split backend and frontend (separate Python packages and separate Git
  repositories)
* Handle very long label names more gracefully
* Word box highlighting: Highlight correctly all the boxes
* Fix spinner animation when getting an icon size other than the expected one
* Switch to Python 3
* Switch from Pyinsane to Pyinsane2
* Fix file descriptor leak related to PDFs
* Add a dialog to help bug diagnostics
* Replace gnome spinner by a custom spinner


2016/04/06 - 0.3.2:
* paperwork-chkdeps: Fix check for python-gi-cairo. When python-gi-cairo
  is not installed, sometimes, an exception pops up at an unexpected moment
  and the script remained stuck.
* Add Dockerfile to generate a docker image+container to test Paperwork


2016/02/25 - 0.3.1.1:
* Fix crappy dependency list


2016/02/25 - 0.3.1:
* Fix label learning
* Fix headerbar widget sizes


2016/02/16 - 0.3.0.1:
* Fix Paperwork packaging (.css files were not included)


2016/02/15 - 0.3.0:
* Whole GUI redesigned
* Added: dialog to make advanced searches
* New dependency: simplebayes
* Removed dependencies:
  - scikit* (replaced by simplebayes)
  - numpy* (replaced by simplesbayes)
  - gir1.2-gladeui (obsolete)


2015/11/25 - 0.2.5:
* Scanner support: Fujitsu scanners: handle options 'page-height' and
  'page-width'
* Scanner support: Brother MVC-J410: set mode correctly
  (value = '24bit Color' instead of 'Color' ...)
* Documents: add support for new label format that will be used in
  Paperwork >= 0.3.0
* paperwork-chkdeps: look for required icon themes
* Fix: work even if the spinner icon is not available
* Fix: paperwork-chkdeps: work even if Gtk is not yet installed
* Fix: PDF: reduce file descriptor leak
* Fix: With Pillow >= 3.x, calls to Image.rotate() must specify expand=True
* Fix: At startup, when updating the index, prevent infinite loop


2015/04/21 - 0.2.4:
* Fix python-whoosh 2.7 support


2015/04/03 - 0.2.3:
* Whenever possible, page orientation detection is now done using OCR tool
  feature (Tesseract >= 3.3.0). It's much faster and reliable.
* Fix doc indexation: last and first words of each lines weren't split
  correctly


2015/01/11 - 0.2.2:
* PDF + OCR: text wasn't indexed correctly
* Img doc: indexed text contains extra and useless data. As a side-effect,
  label prediction accuracy was strongly reduced.
  Rebuilding your index is strongly recommended
  ("rm -rf ~/.local/share/paperwork" + restarting Paperwork)


2014/12/19 - 0.2.1:
* Settings window : add help links
* Install process :
  - Extra dependencies are now detected by another script than setup.py
  - More missing dependencies are detected (aspell, tesseract, language
    packs, etc)
* Bug fixes :
  - Button 'open parent directory' doesn't remain stuck anymore when using
    the file manager Thunar
  - Settings window : Fix the way the file chooser is used (avoid
    selecting the wrong work directory by mistake)
  - Scanners support : Make it possible to use scanners even if some basic
    options are missing (source, resolution, etc)
  - When starting, don't remove empty directories anymore
  - Searching : Make sure diacritics characters are not a problem anymore
  - Import : accept file path containing spaces


2014/09/21 - 0.2:
* Improved search : whoosh.FuzzyTerm is now used
* Label look has been improved
* Menubar has been removed and replaced by an application menu
* Label prediction : when a new document is scanned, predicted labels are
  automatically set on it
* Pages are not displayed separately anymore
* New settings: scan source, number of orientations to try, OCR can be
  disabled
* Scans are displayed in real time


2014/07/08 - 0.1.3:
- Fix scanner support : don't try to set scanner options that are not active


2013/12/29 - 0.1.2:
- Improve scanner support: option names and values cases are not always the
  same on all the scanners
- Multiscan: fix multiscan end
- Translations: add german translations
- Settings window: display correctly Tesseract languages like 'deu-frak'


2013/10/03 - 0.1.1:
- Page list: fix display of page list longer than 100 pages
- Scanner support:
  - Fix support of scanners returning the supported resolutions as a range
    instead of an array
  - Fix: Always make sure the scan area is as big as it can be
- Fix: When OCR is disabled, fix scan and page editing
- Fix "no scanner found" popup (partial backport only, still slightly buggy)
- Scripts:
  - Add script scripts/obfuscate.py
  - Fix/Improve the output of scripts/stats.py


2013/08/08 - 0.1:
- Initial release
