2.23.0
 - feat: add zoom-in functionality for contour plots (#211)
 - fix: cache selected event per dataset in QuickView (#196)
 - enh: add new logo (scope view and block matrix)
2.22.2
 - fix: error message dialog limited to traceback length of three
 - fix: copy error text to clipboard did not work in error message dialog
 - enh: decorate QEvent-accepting slots in `main.py`
 - enh: do not export "contour" to HDF5 files ("mask" is sufficient and faster)
 - docs: add missing image for data export
 - ref: only use closeEvent when exiting DCscope GUI
 - setup: bump dclab to 0.67.0
2.22.1
 - feat: notify user when loaded data have different pipeline hashes (#217)
 - fix: prevent accidental polygon filter creation (#148)
 - fix: disable QuickView controls when there is no data to display
 - fix: IndexError when trying to show a deleted slot in QuickView (#214)
 - setup: bump dclab to 0.64.0 (refresh DCOR basins)
 - ref: simplify contour data retrieval and caching in plot_cache.py
2.22.0
 - feat: export image data as video (#202)
 - fix: persist feature selection in QuickView when switching data slots (#206)
 - fix: show correct progress during data export (#138)
 - docs: properly employ license GPL-3.0-or-later
 - ref: fix deprecation warnings
 - setup: bump dclab to 0.63.0
2.21.5
 - fix: disable table graphs widget when an image-type table is shown
 - fix: accessing table data from DCOR
 - enh: do not keep dataset references in QuickView, only remember IDs
 - enh: use bulk emodulus computation as viscosity calculator
 - setup: bump dclab to 0.62.13
2.21.4
 - fix: incorrect path list check when loading broken dataset
 - fix: duplicate filters via block matrix results in AttributeError (#184)
 - fix: plot sizes chaotic due to improper use of setFixedSize (#176)
 - fix: plot size not set correctly when loading session
 - fix: base automated plot size adjustment on minimal plot dimensions (#180)
 - docs: update screenshot scripts and refresh screenshots
 - enh: allow to change plot window size via edge handles (#51)
 - setup: migrate pyqtgraph from 0.13.3 to 0.13.6 (#109)
2.21.3
 - enh: support displaying unnamed table data
 - setup: bump dclab to 0.62.11
2.21.2
 - fix: signal race condition when editing filters in AnalysisView (#148)
 - fix: signal race condition when editing plots in AnalysisView (#172)
 - enh: use QuickView selection to navigate AnalysisView slots and filters
 - enh: when batch-loading datasets, allow individual files to fail
 - enh: auto-select logs in AnalysisView
 - enh: improve table graph selection (remember graph, clear if unavailable)
2.21.1
 - fix: maximize image size in QuickView
 - fix: colormap for QPI data only updating for one image view in QuickView
 - ref: QuickView code needed tidying up
2.21.0
 - feat: implement showing dataset basins in the analysis view (#182)
 - feat: implement showing dataset logs in the analysis view (#140)
 - feat: implement showing dataset tables in the analysis view (#141)
 - enh: more Quick View default choices than "deform" and "area_um"
 - enh: update icon theme
 - docs: document new features in Analysis View
 - setup: pygments (for json formatting) is now an explicit dependency
 - setup: bump dclab to 0.62.9
 - ref: simplify logic in Analysis View
 - ref: do not override `QtWidgets`' `__setstate__` and `__getstate__`;
   use `write_pipeline_state` and `read_pipeline_state` instead
2.20.1
 - fix: regression TypeError when trying to plot contour data
2.20.0
 - feat: display and handle quantitative phase imaging data
 - fix: filter range control not updating limits, displaying value "100" (#183)
 - fix: filter range control not updating handles when resized
 - enh: improve plotting performance in QuickView polygon selection mode
2.19.1
 - fix: "buyukurganci-2022" was not actually the default viscosity model
 - ref: remove distutils dependency
 - docs: add developer's section
2.19.0
 - feat: support accessing private S3 basins (#174)
 - enh: enable lut selection in analysis view plots (#71)
 - fix: only allow user to choose "R.exe" in R binary manual search (#173)
 - enh: correctly show system R binary in settings
 - ref: migrate from pyqt5 to pyqt6 (#165)
 - ref: migrate from pkg_resources to importlib.resources (#155)
 - setup: support Python 3.12
 - setup: new dependency "boto3" via "dclab[s3]""
2.18.2
 - enh: enable lut selection to plot isoelasticity lines (#71)
 - enh: replace findText with findData of comboBox_visc_model
 - fix: allow to select R binary when not found automatically
 - enh: enable lut selection for emodulus computation in bulk actions (#71)
 - enh: enable lut selection for emodulus computation (#71)
 - setup: bump dclab to 0.62.5 (properly resolve path to R executable)
2.18.1
 - setup: bump dclab to 0.61.3 (replace rpy2 with wrapper) (#73 #161)
2.18.0
 - BREAKING CHANGE: set default viscosity model for Young's modulus
   computation to "buyukurganci-2022", because it is more accurate
   and also because it is defined for the "0.83% MC-PBS" medium
 - BREAKING CHANGE: remove support for machine learning extensions
   (.modc files), because they are not used
 - fix: remove leading/trailing slashes for DCOR servers
 - setup: bump dclab to 0.61.1 (fix basin-based array access, export from
   datasets with internal basins, other minor fixes)
2.17.0
 - setup: bump dclab to 0.60.0 (internal basin support, export logs)
2.16.5
 - setup: bump dclab to 0.59.1 (mapped-basin now fully supported)
2.16.4
 - setup: bump dclab to 0.59.0 (improved support for basin features)
2.16.3
 - maintenance release
2.16.2
 - fix: data export feature selection must default to features_loaded
 - enh: only show local features in QuickView Event Feature tab
 - enh: show dcnum pipeline identifiers in Analysis view
 - enh: add section:key tool tips for analysis view metadata
 - enh: added links to docs explaining default export selection
 - docs: remove Shape-Out 1 reference
 - setup: remove rpy2 from dependencies until #161 is fixed
 - setup: migrate from setup.py to pyproject.toml
 - setup: bump dclab to 0.58.7 (performance)
2.16.1
 - setup: bump dclab to 0.58.4 (reduced memory usage when computing
   contour-based features such as volume, export dataset configuration
   as metadata in .tsv export, support both posix and nt relative basin
   paths)
2.16.0
 - feat: enable storage strategy (basin control) in export dialog (#159)
 - fix: ask for .tsv output path before computing statistics
 - enh: color feature data in QuickView combobox according to availability
 - enh: hide basinmap features in scatter plot selections (#159)
 - docs: remove reference to Shape-Out 1 in introduction
 - docs: mention basins and link to dclab (#159)
 - docs: add quick guide for data export
 - ref: reduce usage of `dclab.dfn.scalar_feature_names` (#108)
 - setup: bump dclab to 0.58.2
2.15.5
 - fix: right-click menu not working for plot widgets (#160)
 - ref: introduce `FeatureComboBox` class for listing features
2.15.4
 - fix: very small numbers not parsed when showing metadata (#158)
 - fix: do not allow question mark "?" in exported file names (#156)
 - fix: do not override files when exporting data (#153)
 - fix: remove the "so2exp" prefix when exporting data (#157)
2.15.3
 - build: PyInstaller to rebuild its bootloader (avoid false positive
   malware detection)
2.15.2
 - fix: handle zero-valued contour spacing
 - setup: bump dclab to 0.57.4 (handle zero-valued spacing for KDE contour)
2.15.1
 - fix: statistics not updating when changing plot axes (#154)
 - setup: bump dclab from 0.57.0 to 0.57.1
2.15.0
 - enh: avoid creating hierarchy when no filters are applied (speed)
 - enh: cache computed statistics
 - ref: avoid division-by-zero warning
 - setup: bump dclab from 0.56.3 to 0.57.0 (speed)
2.14.3
 - fix: intermediate plotting of first event whenever a slot is added
 - fix: catch zero-division warning when plotting empty image
 - enh: remember selected events in QuickView
 - enh: avoid showing first dataset event when user clicks in QuickView
 - setup: bump dclab from 0.55.7 to 0.56.3 (enhanced basin support)
2.14.2
 - setup: bump dclab from 0.55.6 to 0.55.7
2.14.1
 - fix: perform sanity check for contour spacing before plotting
 - fix: use pyqtgraph.SpinBox to edit box filters (#149)
 - enh: minor optimization of min/max feature algorithm
 - enh: only preselect innate features when computing statistics (#150)
 - setup: bump dclab to 0.55.6 (new scalar features, dcor access)
 - setup: bump pyqtgraph from 0.12.4 to 0.13.3
2.14.0
 - ref: don't set RTDCBase.identifier to slot identifier
 - setup: drop support for Python 3.8
 - setup: bump dclab from 0.54.2 to 0.55.4 (better DCOR support)
 - build: use Python 3.10 for building executables
2.13.7
 - ci: fix rtd build pipeline
 - setup: bump dclab from 0.52.0 to 0.54.2 (improved basin support)
2.13.6
 - ci: fix Windows build pipeline
2.13.5
 - setup: bump requests to 2.31.0 (CVE-2023-32681)
 - setup: bump scipy to 1.10.0 (CVE-2023-25399)
 - setup: bump dclab from 0.50.4 to 0.52.0
2.13.4
 - tests: fix fake dataset creation
2.13.3
 - fix: casting error when using integer feature for plot color
 - fix: also export logs and tables to .rtdc with prefix "so2exp_"
 - enh: minor minimization in waiting times
 - ref: unify json dumps when saving sessions
 - setup: bump dclab from 0.48.4 to 0.50.4
2.13.2
 - docs: don't build PDF on rtd (failed)
 - setup: bump dclab from 0.48.2 to 0.48.4 (don't load invalid
   inertia ratio data from existing HDF5 files)
2.13.1
 - setup: bump dclab from 0.48.1 to 0.48.2 (improved speed, fixed
   bug with inertia ratio in long channels)
2.13.0
 - feat: support new viscosity model buyukurganci-2022 (#136)
 - enh: increase speed of QuickView event visualization
 - enh: turn on auto-apply in QuickView by default
 - setup: bump dclab from 0.47.2 to 0.48.1
2.12.0
 - feat: allow to disable KDE or use feature data as marker
   hue in QuickView
 - fix: do not perform auto-apply when changing downsampling
   value and downsampling is disabled in QuickView
 - fix: catch IndexError when trying to view an event that is not
   there anymore in polygon-selection-mode in QuickView
 - enh: make auto-apply in QuickView plot settings optional
 - docs: update screenshot scripts
2.11.11
 - enh: strip http(s):// from DCOR server string in settings
 - enh: improve GUI of QuickView (#133, #43)
 - setup: bump dclab from 0.47.0 to 0.47.2
2.11.10
 - fix: detect chaged files on disk when reloading metadata
 - setup: bump dclab from 0.46.4 to 0.47.0 (new bg_med feature
   and other convenience methods)
2.11.9
 - fix: include logs when exporting data (#126)
 - setup: bump dclab from 0.46.2 to 0.46.4 (new features)
2.11.8
 - setup: bump dclab from 0.45.0 to 0.46.2 (#132)
 - build: pin pyinstaller version to 5.3
 - ref: use `hashobj` from upstream dclab (#132)
2.11.7
 - build: fix build pipelines
2.11.6
 - setup: bump dclab from 0.43.0 to 0.45.0 (scalar feature support)
2.11.5
 - build: use InnoSetup "autopf" feature for installation directory
2.11.4
 - enh: preselect only innate features in data export
   to reduce computation time
 - docs: minor improvements
 - setup: bump dclab from 0.42.2 to 0.43.0 (improved compression)
 - setup: include zstandard library in distribution installer
2.11.3
 - setup: bump dclab from 0.42.1 to 0.42.2 (lazy-load .rtdc data
   which increases initial opening times)
 - setup: bump pyqtgraph from 0.12.3 to 0.12.4
2.11.2
 - setup: bump dclab from 0.42.0 to 0.42.1 (support background
   image access from DCOR)
2.11.1
 - fix: allow to specify 0.5 increments when filtering integer
   features (#123)
 - setup: bump dclab from 0.41.0 to 0.42.0
2.11.0
 - feat: allow to load encrypted dcor access tokens (#122)
 - setup: bump dclab from 0.39.17 to 0.41.0
 - setup: bump scipy to 1.8.0
 - build: bump Python version to 3.9
2.10.0
 - feat: export filter ray for each dataset via shortcut (#119)
 - setup: bump dclab from 0.39.15 to 0.39.17 (#118)
2.9.6
 - fix: extensions not loaded during startup on Windows (#117)
2.9.5
 - fix: polygon translation via drag-n-drop in polygon edit mode
   was not taken into account (#115)
 - enh: add (de-)select all button for lists in ComputeStatistics (#116)
 - enh: convert all selectable lists in dialogs to new BulkList class
 - setup: bump dclab from 0.39.13 to 0.39.15
2.9.4
 - enh: display session file name in window title
 - setup: drop support for older numpy versions
 - setup: bump dclab from 0.39.9 to 0.39.13 (fix visualization of
   the "ml_class" score when the ml_score features contain nans)
2.9.3
 - fix: implement closeEvent in main and ask user before exiting
 - fix: fix possible failure during update check
 - fix: show a message box when the R version is incompatible (#114)
 - ref: only reload R/lme4 information in preferences when the
   corresponding tab is selected to avoid preferences lock-up (#114)
 - tests: use hidden settings variable to skip asking the user to
   clear the session
 - setup: bump dclab from 0.39.5 to 0.39.9
2.9.2
 - setup: bump dclab from 0.39.3 to 0.39.5 (fix opening files
   with some online filter settings)
2.9.1
 - enh: add button "Find best spacing" in Plot tab in Analysis View
   that iteratively finds sane spacing values (#110)
 - enh: notify user in plot if contour spacing is too large (#110)
 - enh: add action to remove all datasets from a session (#97)
 - fix: mysterious behavior of subclassed pg.ColorBarItem (#109)
 - setup: bump dclab from 0.39.1 to 0.39.3 (increased verbosity,
   renamed feature labels, refactored DCOR access)
2.9.0
 - feat: add support for extensions in the form of loading dclab
   plugin and machine-learning features (#85)
 - setup: drop support for Python 3.7
 - setup: bump dclab from 0.37.2 to 0.39.1
2.8.1
 - fix: wrong scale for viscosity in bulk emodulus computation (#104)
 - fix: save unused polygon filters in sessions (#101)
 - fix: allow to delete polygon filters (#100)
 - setup: bump dclab from 0.37.0 to 0.37.2 (enhanced speed for
   operations involving contour computation)
2.8.0
 - BREAKING CHANGE: The volume feature in all previous versions was
   overestimated by about 2µm³. Please re-run your analysis pipeline.
 - setup: bump pyqtgraph from 0.12.2 to 0.12.3
 - setup: bump dclab from 0.36.1 to 0.37.0 (faulty volume computation)
2.7.4
 - setup: bump dclab from 0.35.6 to 0.36.1 (improved export speed)
2.7.3
 - build: remove console window (#102)
2.7.2
 - setup: bump dclab from 0.35.4 to 0.35.6 (Young's modulus could
   not be computed in some cases)
2.7.1
 - enh: display online polygon filters in metadata tab (#94)
 - enh: show user configuration section in metadata tab (#86)
 - setup: bump dclab from 0.34.3 to 0.35.4
 - tests: change test data to avoid warnings in dclab 0.35.0
2.7.0
 - feat: accept DCOR drag events from DCOR-Aid data browser
2.6.9
 - fix: don't reset color and name of dataset during duplicate
   matrix action (#96)
2.6.8
 - fix: adapt color scheme to work in dark mode (#92)
2.6.7
 - fix: correctly handle missing features on data export (#80)
 - ref: cleanup (default arguments and PyQt5 object references)
 - setup: bump dclab from 0.34.2 to 0.34.3 (set R_HOME)
 - build: bump rpy2 from 3.4.2 to 3.4.5
 - build: bump pyqtgraph from 0.12.1 to 0.12.2 and remove
   colorbar export workarounds
2.6.6
 - fix: false alarms about wrong pyqtgraph version on startup
   (removed the responsible code, because there are now more regular
   releases of pyqtgraph)
 - enh: allow passing session files, datasets, and filters via the
   command line (#88)
 - enh: associate the .so2 file format with Shape-Out on Windows (#88)
 - build: migrate to Inno Setup 6
 - ref: avoid pyqtgraph DeprecationWarning due to `translate`
2.6.5
 - fix: migrate to pg.ColorBarItem (with some manual patches from
   upstream) to resolve issues with SVG export (#87)
 - fix: units of viscosity is mPa*s (#91)
 - setup: bump pyqtgraph from 0.12.0 to 0.12.1
 - setup: bump dclab from 0.33.3 to 0.34.2
 - ci: fix build issues for macOS
2.6.4
 - fix: HTML-escape plot titles and axis labels (#82)
2.6.3
 - build: pin rpy2 to 3.4.2 on Windows (#84)
2.6.2
 - setup: migrate to pyqtgraph 0.12.0
 - setup: bump dclab from 0.33.1 to 0.33.3
 - docs: fix rtd build
2.6.1
 - setup: remove deprecated setup.py test
 - setup: bump dclab to 0.33.1 (filters were ignored when exporting
   trace data to hdf5,
   see https://github.com/DC-analysis/DCKit/issues/17)
2.6.0
 - feat: add background correction in quickview (#54)
 - fix: workaround for different plot widths due to title label (#33)
2.5.2
 - build: add pyinstaller hook for pyqtgraph
2.5.1
 - fix: preferences dialog did not open in macOS App bundle (#76)
 - enh: disable R settings in preferences dialog if rpy2 is missing
 - build: bump dclab from 0.29.1 to 0.32.4 (this should have happened
   in the 2.5.0 release which introduced R-lme4 analysis)
 - build: bump pyqtgraph to commit c1900 (post 0.11.1)
   which mainly improves plot export (#59)
 - tests: introduce manual tests that require a human in "tests-manual"
 - ref: key [calculation]: "emodulus model" is deprecated in dclab
 - ref: use "lut_identifier" instead of deprecated "method" keyword when
   retrieving isoelasticity lines
2.5.0
 - feat: implement linear-mixed effects models with R/lme4 (#55)
 - ci: overhauled build process
2.4.15
 - ci: fix rtd build
 - fix: typo in infobox in analysis view (#69)
 - fix: macOS builds did not use our pyqtgraph fork (reported in #70)
2.4.14
 - maintenance release
2.4.13
 - maintenance release
2.4.12
 - maintenance release
2.4.11
 - maintenance release
2.4.10
 - maintenance release
2.4.9
 - maintenance release
2.4.8
 - maintenance release
2.4.7
 - maintenance release
2.4.6
 - maintenance release
2.4.5
 - maintenance release
2.4.4
 - fix: box filters selections bled to other filters (#67)
 - build: do not use development version of dclab
 - ci: move to GitHub Actions
2.4.3
 - enh: improve UI (tooltips, icons)
 - build: Windows build won't start due to breaking change in
   Windows ucrtbase.dll (#64)
 - build: Migrate Windows build to PyInstaller 4.1
2.4.2
 - fix: a regression introduced during refactoring in 2.4.0
   made it impossible to select the temperature for known
   media
 - fix: allow to reorder the dataset list (#46)
 - enh: iconify buttons at top of Analysis View
2.4.1
 - fix: strip white-space characters from line edits in the
   preferences to avoid line breaks introduced in the API key
   via copy-paste
 - fix: not possible to create plots for datasets without the
   bright_avg feature; added a check for feature availability
   before updating the interface (#62)
2.4.0
 - feat: allow to set Young's modulus parameters for all
   open datasets via the "Bulk action" menu (#60)
 - fix: force temperature for Young's modulus computation
   to the value stored in the dataset for the "config"
   scenario
 - enh: update menu keyboard shortcuts
2.3.0
 - enh: added preferences dialog
 - enh: improved user experience for searching DCOR data
 - ref: migrate settings to QSettings
 - setup: remove appdirs dependency, because we let QSettings
   determine where to store settings
2.2.6
 - fix: support user-defined media introduced in dclab 0.29.1 (#53)
 - fix: porosity box filter precision at lower limit (#58)
 - docs: update bibliography
 - bump dclab from 0.29.0 to 0.29.1
2.2.5
 - setup: correct installation directory on Windows
 - setup: bump dclab from 0.27.11 to 0.29.0
 - fix: main window not focused after startup (#52)
2.2.4
 - fix: UI slot issues (probably a racing condition) in the
   analysis view; editing the viscosity for "other" medium not
   possible on frozen Windows and macOS application (#49)
2.2.3
 - fix: update Quick View plot when values for the Young's modulus
   computation are changed (#44)
 - fix: use fixed point size in Block Matrix
 - enh: improve plot matrix column/row visualization and show flow
   rate (#45)
 - docs: update visualization of Young's modulus look-up tables
   using new figure script from dclab
 - build: bump Python to 3.8 for Windows builds
 - setup: bump dclab from 0.27.5 to 0.27.11 (improvement of hierarchy
   child handling)
2.2.2
 - fix: correct box filter ranges when feature contains inf values
 - enh: add pretty tool icons from KDE breeze theme
2.2.1
 - fix: zero-division error when setting "one plot per dataset"
   for an empty plot (#41)
 - build: pin PyQt5 to 5.14.2 on Linux/macOS
2.2.0
 - setup: bump dclab from 0.26.2 to 0.27.5 (support for machine
   learning features)
 - fix: modify the GUI to enable box filtering for ml_score_???
   features
 - ref: pipeline.get_features now only returns features that are
   available (previously all features were returned when no
   datasets were in the pipeline)
2.1.6
 - fix: export file names were allowed to have invalid characters
 - fix: Quick View showed filtered events that were not plotted
   (statistics were computed correctly though)
 - fix: Quick View was not very informative when all events were
   filtered away - a message is now shown
 - setup: bump dclab from 0.26.1 to 0.26.2 (fix bin num computation
   using Doane's formula)
2.1.5
 - fix: marker hue feature data min/max was always computed even if
   not selected; for datasets without bright_avg (standard hue) this
   resulted in long waiting times
 - fix: avoid pyqtgraph error messages in pipeline plots by disabling
   hovering events (not used anyway)
 - fix: plot export did not work for single plots
 - fix: exported event images sometimes had wrong contrast
2.1.4
 - enh: add busy cursors wherever it seems fitting
 - setup: bump dclab from 0.24.7 to 0.26.1 (volume-deformation
   isoelasticity lines, improved DCOR caching)
2.1.3
 - fix: opening sessions did not work due to missing slot decorator
 - fix: in some cases the temperature/viscosity setting was not
   correctly written to the UI for individual slots when switching
   between slots with fundamentally different settings (e.g. channel
   and reservoir)
 - fix: KeyError when switching between slots with different
   temperature options
 - setup: bump dclab from 0.23.0 to 0.24.7 (equidistant isoelastics,
   faster polygon filtering, crosstalk correction failed due to
   improper configuration update since Shape-Out 2.1.1)
2.1.2
 - fix: ValueError when trying to compute contour spacing, because no
   datasets are selected for a plot
 - fix: coloring scatter plot by feature did not work when the feature
   contains nan values
 - fix: search path in session should not be filename but its
   directory
 - setup: bump dclab from 0.22.5 to 0.23.0 (possible HDF5 export issue)
2.1.1
 - fix: include private datasets when searching with DCOR API Key
 - fix: remove UI option to compute Young's modulus for reservoir data
   (new "emodulus enabled" key in pipeline slot)
 - fix: `Pipeline` object not returned by `session.open_session`
 - setup: bump dclab from 0.22.1 to 0.22.5 (improve contour retrieval
   for mask images with artefacts, disable computation of Young's
   modulus for reservoir measurements)
2.1.0
 - feat: basic DCOR support
 - fix: improved session support (older pre-release sessions)
 - docs: add DCOR guick guide 
 - enh: export event image via context menu in Quick View (#35)
 - setup: bump dclab from 0.21.1 to 0.22.1 (DCOR support)
2.0.3
 - setup: bump dclab from 0.20.3 to 0.21.1
 - docs: add terminology section (#12)
2.0.2
 - fix: IndexError when removing a plot (#36)
 - fix: ValueError when filtering all events in Quick View (#37)
 - fix: TypeError when removing datasets and opening Quick View (#38)
 - fix: RuntimeError when removing datasets and opening Quick View (#38)
 - fix: ValueError when removing activated datasets and opening Quick View
2.0.1
 - fix: correctly distinguish prereleases when checking for new versions
 - enh: allow loading data via drag&drop
2.0.0
 - initial release
