Version 4.4.3 released Oct 30 2026
----------------------------------
* The OutputBox paints its background, so that it stays dark when a style sheet applies
  to it, which it did not in 4.4.2 (#52)

Version 4.4.2 released Oct 30 2026
----------------------------------
* The dark background of the OutputBox is set on its viewport only, so that the Fusion
  style does not draw the scroll bar grooves black (#51)
* The 1× and 2× outer and zip group icons have the same colours and extent, and the
  Python file icon is a Fugue document icon with the Python logo (#48)

Version 4.4.1 released Oct 28 2026
----------------------------------
* qtutils.icons.Icon returns a plain QIcon instead of an instance of a QIcon subclass,
  so that an Icon returned from the data() or headerData() of a Python item model is
  drawn (#47)

Version 4.4.0 released Oct 27 2026
----------------------------------
* The OutputBox font is Ubuntu Mono at 15 pixels on every platform, instead of 11
  points (13 on macOS). FONT_SIZE is replaced by FONT_PIXEL_SIZE

Version 4.3.0 released Oct 27 2026
----------------------------------
* Icons are drawn from their 2× image on a high DPI screen under PyQt5 and PyQt6 as
  well as PySide6, and on a screen attached after the application started: UiLoader
  sets every icon of a .ui file with its 2× variant, qtutils.icons.Icon makes a QIcon
  with the 2× variant in code, and qtutils.icons.in_mode renders an icon in a mode
* Added IconLabel, a widget that displays an icon in place of a QLabel with a pixmap.
  UiLoader promotes it from .ui files with the header qtutils/widgets.h
* Under PyQt5, importing qtutils.icons enables the use of high DPI pixmaps

Version 4.2.0 released Oct 27 2026
----------------------------------
* Python 3.11 or later is required
* Added "Clear output" to the OutputBox context menu (#2)
* Icons are 16×16 with the 2× versions as "@2x" variants, so that raw pixmaps are the
  right size and Qt picks the 2× version on high DPI displays, including for icons
  referenced without the ".png" extension
* Widgets set to scroll to the end, such as the OutputBox, stay at the end when content
  is added while they are hidden (labscript-suite/runmanager#32)
* qtlock is no longer enforced by default. Set the environment variable
  QTUTILS_ENFORCE_QTLOCK to a value other than "" or "0" to raise an exception on Qt
  calls from a non-main thread that does not hold qtlock
* OutputBox.shutdown() adds the remaining queued text to the box. Previously, called
  from the main thread with text queued it never returned, and called from another
  thread it could leave the main thread blocked

Version 4.0 released xxxx 2024
------------------------------
* Added PySide6 support, dropped PySide2 support
* Bundled the entire Ubuntu font family rather than only monospaced fonts

Version 3.1 released Apr 7 2023
-------------------------------
* Added 2× resolution icons appropriate for high DPI displays

Version 3.0 released Jun 20 2020
-------------------------------
* Packaging changes after moving project to GitHub

Version 2.2.2 released Jul 20 2018
----------------------------------
* Fixed packaging issues with previous release that led to fonts not being bundled.

Version 2.2.0 released Jul 20 2018
----------------------------------
* Added tentative PySide2 (i.e. Qt for Python) support.
* Added alias QtCore.QItemSelectionModel -> QtGui.QItemSelectionModel on PyQt4.
* Added support for carriage returns in OutputBox.
* Bundled Ubuntu monospace font for consistent font in OutputBox across platforms.
  This font is bundled under the terms of the Ubuntu font license included in this
  repository.
* Allow a zmq Context to be passed to OutputBox at instantiation. This allows a custom
  Context to be used, intended for use with a zprocess.SecureContext for encrypted
  messages.
* Allow the binding interface to be specified for OutputBox. This allows the OutputBox
  to potentially receive messages over the network. Intended for use with zprocess's 
  in-development remote processes features.
* Added this changelog file.
