Skip to content

Qt6 compatibility & rework of class hierarchy & diverse improvements + bugfixes

Compare
Choose a tag to compare
@jkriege2 jkriege2 released this 24 Apr 20:14
· 631 commits to master since this release

Changes, compared to v2019.11.3 include:

  • fixed issue #34: Skip drawing the line for negative values in log plots, thanks to user:certik
  • fixed issue #38: Buffer overflow, thanks to user:zertyz
  • fixed issue #43: jkqtp_format() had undefined behaviour, thanks to user:Makis42
  • fixed issue #41: Build error when JKQtPlotter_BUILD_INCLUDE_XITS_FONTS set to OFF , thanks to user:smistad
  • fixed issue #37: CMake installs things into $PREFIX/doc/*.txt , thanks to user:certik
  • fixed issue #45: Build error on mac jkqtfastplotter.cpp:342:28: Variable has incomplete type 'QPainterPath', thanks to user:abdedixit
  • merged PR #47: Some minor build fixes, thanks to user:patstew
  • fixed issue #48: Cannot #include QPrintPreviewWidget, thanks to user:schlenger
  • fixed issue #49: Incorrect tag in style .ini-files, thanks to user:smistad
  • fixed issue #50: Double-Click Zoom Issue, thanks to user:Delfinos
  • fixed issue #52: 'runtime_error': is not a member of 'std', thanks to user:gomgomi
  • fixed issue #56: Logscale zoom multiple zeros? , thanks to user:sufuk
  • merged PR #51: Bug: JKMathParser exception return local variable , thanks to user:StephanOostveen
  • renamed/breaking change: renamed JKQTPPlotObject->JKQTPGeometricPlotElement and added new base class JKQTPPlotAnnotationElement
  • renamed/breaking change: renamed JKQTPColorPaletteStyleAndToolsMixin::setPalette() -> JKQTPColorPaletteStyleAndToolsMixin::setColorPalette()
  • removed/breaking change: removed the usage of some deprecated functions and objects (e.g. QMatrix)
  • removed/breaking change: removed the overlay elements (derived from JKQTPOverlayElement), which were not very well set up and are more confusing than useful.
  • improved/breaking change: geometric objects now use an adaptive drawing algorithm to represent curves (before e.g. ellipses were always separated into a fixed number of line-segments)
  • improved/breaking change: geometric elements constructor: removed all styling properties, added setStyle()-functions to replace them. This is necessary to better work with the extended Styling system
  • improved: constructors and access functions for several geometric objects (e.g. more constructors, additional functions to retrieve parameters in diferent forms, iterators for polygons, ...)
  • improved/breaking change: reworked class hierarchy of parsed function plots and declared several setters as slots.
  • improved/breaking change: reworked class hierarchy of bar & impulse charts.
  • improved/breaking change: reworked class hierarchy of range charts.
  • improved/breaking change: reworked class hierarchy of special line (step) graphs.
  • improved/breaking change: reworked class hierarchy of filled line graphs.
  • improved/breaking change: reworked class hierarchy of range plot elements (JKQTPVerticalRange and JKQTPHorizontalRange).
  • improved/breaking change: reworked class hierarchy of boxplots.
  • improved/breaking change: reworked class hierarchy of violin plots.
  • improved/breaking change: extended styling system for graphs.
  • improved/breaking change: reworked graph Base-Classes (promoted several setters to slots, added Q_PROPERTY- and Q_ENUM-declarations...)
  • improved/breaking change: made more functions and function parameters const
  • improved/breaking change: image plots now manage CONST-data, not plain pointer arrays... This is OK, since the raw data is never owned nor modified by the plot, only referenced!.
  • bugfixed/improved: aspect ratio handling in JKQTPlotter.
  • new: switching to semantic versioning ... starting with v4.0.0
  • new: Compatibility with Qt 5.15 and Qt6
  • new: added support for high-dpi devices (thanks for PR #55: Enable high-dpi support for plots by user:akenmorris.
  • new: added geometric plot objects JKQTPGeoArrow to draw arrows (aka lines with added line-end decorators, also extended JKQTPGeoLine, JKQTPGeoInfiniteLine, JKQTPGeoPolyLines to draw line-end decorator (aka arrows)
  • new: all geometric objects can either be drawn as graphic element (i.e. lines are straight line, even on non-linear axes), or as mathematical curve (i.e. on non-linear axes, lines become the appropriate curve representing the linear function, connecting the given start/end-points). The only exceptions are ellipses (and the derived arcs,pies,chords), which are always drawn as mathematical curves
  • new: a new graph class JKQTPXYFunctionLineGraph draws parametric 2D curves ( [x,y] = f(t) ), see \ref JKQTPlotterEvalCurves for an example
  • new: added several new copy/set-functions to JKQTPDatastore
  • new: added JKQTPlotter signal, when widget was resized
  • new: added JKQTPFilledHorizontalRangeGraph, complementing JKQTPFilledVerticalRangeGraph