Commit Graph

320 Commits

Author SHA1 Message Date
jkriege2
94f80510ec fixed issue described in PR #62: Fix custom labels draw, because giving exactly two label-strings did not display all of them, thanks to github_user:FalsinSoft 2022-05-14 22:59:10 +02:00
jkriege2
a80ea3a24a fixed issue #70: typo in lib/jkqtplotter/CMakeLists.txt 2022-05-13 10:45:20 +02:00
jkriege2
1a9593409a fixed QT6 compatibility 2022-05-12 10:35:05 +02:00
jkriege2
f475caddc1 fixed typo 2022-05-11 23:03:33 +02:00
jkriege2
ee2477a1f6 implemented wiggle plots (feature request #68) 2022-05-11 22:55:23 +02:00
jkriege2
d45083ee9b moved include-guards to the head of the headers 2022-04-24 22:07:39 +02:00
jkriege2
c6aa942486 improved/fixed qmake-build scripts fot Qt6 2022-04-24 22:07:16 +02:00
jkriege2
b8088ccc69 improved/bugfixed doxygen documentation 2022-04-24 13:23:59 +02:00
jkriege2
e784a6d89f fixed doxygen comment 2022-04-22 22:19:24 +02:00
jkriege2
b8f1ac7edb fix for Qt < 5.14 2022-04-22 20:53:54 +02:00
jkriege2
687c23a654 bugfixes for QT5 build after QT6 modifications 2022-04-22 15:20:58 +02:00
jkriege2
0a5fa42470 more required changes for Qt6 compatibility 2022-04-22 13:27:31 +02:00
jkriege2
6bcb0b9a9f Merge branch 'master' into add_qt6_compatibility 2022-04-21 21:28:49 +02:00
jkriege2
fbbc814331 using automatic memory management instead of local malloc()/free() pairs 2022-04-21 21:25:37 +02:00
jkriege2
3357ca4240 fixed issue #56: exponent-labels were 0 below ~1e-16 ... reason was using <std::numeric_limits<double>::epsilon() instead of <std::numeric_limits<double>::min() for checking close to zero 2022-04-21 21:24:45 +02:00
jkriege2
b4eda85bfc fixed two possible int-overflows 2022-04-21 13:59:49 +02:00
jkriege2
a24ad0b597 fixed bug #49 : naming of sections in plot-styling INI-files 2022-04-21 13:51:50 +02:00
jkriege2
ad3a26a272 fixed bug #50 JKQtPlotter::clearAllRegisteredMouseDoubleClickActions(), JKQtPlotter::clearAllMouseWheelActions(), JKQtPlotter::clearAllRegisteredMouseDragActions() didn't really deactivate all actions 2022-04-21 13:33:22 +02:00
jkriege2
62adbd8036 Merge branch 'master' into add_qt6_compatibility 2022-04-21 12:15:15 +02:00
jkriege2
cc6a87c6d2 fixed bug #48 some users could not #include <QPrintPreviewWidget> 2022-04-21 12:13:23 +02:00
jkriege2
4ded1a2028 first round of Qt6 compatibility changes 2022-04-21 10:57:24 +02:00
jkriege2
8835febb96 modified CMakeLists.txt to match Qt6 2022-04-18 23:10:05 +02:00
jkriege2
052fc27cfb replaced some deprecated constructs for Qt 5.15 2022-04-18 22:45:02 +02:00
jkriege2
5abac3b3db fixed CMakeLists.txt cmake-version to work on appveyor Linux build 2022-04-18 22:42:18 +02:00
jkriege2
725d19d616 using Qt's dllexport/import-macros 2022-04-18 22:00:41 +02:00
jkriege2
d51d47b2f4 requiring higher cmake-version, due to CMP0076
using CMAKE_CURRENT_LIST_DIR instead of CMAKE_CURRENT_SOURCE_DIR
2022-04-18 22:00:31 +02:00
jkriege2
2697e66e31 CMakeLists.txt: using target_sources() and making CPP-files private! 2022-04-18 14:19:35 +02:00
Jan W. Krieger
8f184791cc
Merge pull request #55 from akenmorris/high_dpi
Enable high-dpi support for plots
2022-04-15 22:55:35 +02:00
Alan Morris
6f487c2c24 Enable high-dpi support for plots. 2021-08-18 16:32:48 -06:00
Stephan Oostveen
e7ca3db4de Bug: JKMathParser exception return local variable
Fix the what() function which returned a pointer to a local variable.
2021-03-23 21:01:27 +01:00
jkriege2
fc7622e901 several minor bugfixes to QMake build system 2020-10-19 16:05:18 +02:00
Patrick Stewart
872b31bc2d Add missing #include 2020-10-02 14:41:42 +01:00
Patrick Stewart
2e85504d89 Support Qt in namespace 2020-10-02 14:41:26 +01:00
Patrick Stewart
29e970ed6f Use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
This means that the project can be used with CMake fetchcontent / add_subdriectory
2020-10-02 14:40:47 +01:00
jkriege2
75c7e3421b reworked grid-style representation 2020-09-29 13:19:04 +02:00
jkriege2
58403f8905 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! 2020-09-28 19:24:17 +02:00
jkriege2
48ec6060ab * additional JKQTPColorDerivationMode
* bugfixes for Boxplots
* style improvements
2020-09-28 15:37:45 +02:00
jkriege2
a371dc86a5 updated predefined styles to updated styling system 2020-09-28 12:46:58 +02:00
jkriege2
534745229d several bugfixes for reading styles, improved default styling for graphs (filled, barcharts, ...) 2020-09-27 17:16:18 +02:00
jkriege2
fc321f027b - breaking: geometric elements constructor: removed all styling properties, added setStyle()-functions to replace them. This is necessary to better work with the extended Styling system
- breaking: extended styling system for graphs
2020-09-26 15:58:58 +02:00
jkriege2
a65a713ea6 improved/breaking change: reworked class hierarchy of violin plots 2020-09-21 13:53:33 +02:00
jkriege2
0faa51c9f5 comment formatting fix 2020-09-21 13:52:13 +02:00
jkriege2
40e4b30c45 improved/breaking change: reworked class hierarchy of boxplots 2020-09-21 13:40:38 +02:00
jkriege2
f368855076 renamed JKQTPPlotObject->JKQTPGeometricPlotElement and added new base class JKQTPPlotAnnotationElement 2020-09-21 13:15:57 +02:00
jkriege2
f4767072a4 - improved/breaking change: reworked class hierarchy of range plot elements (JKQTPVerticalRange and JKQTPHorizontalRange)
- improved their documentation
2020-09-19 19:59:33 +02:00
jkriege2
9e48a2e59e improved/breaking change: reworked class hierarchy of filled line graphs 2020-09-19 19:17:35 +02:00
jkriege2
d638ff1e9c improved/breaking change: reworked class hierarchy of special line (step) graphs 2020-09-19 19:06:01 +02:00
jkriege2
abe1c655ba improved code (removed code repeats by using getIndexRange(), using const where appropriate) 2020-09-19 15:39:02 +02:00
jkriege2
7e425e7bb5 reworked class hierarchy of impulse graphs 2020-09-19 15:21:33 +02:00
jkriege2
d57da36a99 moved set/getBaseline() to a special base graph class JKQTPXYBaselineGraph 2020-09-19 15:08:32 +02:00
jkriege2
34fa59ebf4 using new JKQTPGraphLineAndFillStyleMixin where appropriate 2020-09-19 14:55:46 +02:00
jkriege2
6875e0ae6c - improved/breaking change: reworked class hierarchy of range charts.
- new: added JKQTPFilledHorizontalRangeGraph, complementing JKQTPFilledVerticalRangeGraph
2020-09-19 14:41:53 +02:00
jkriege2
8cee70bdca breaking: made more functions and function parameters const 2020-09-18 22:03:12 +02:00
jkriege2
3105d88740 added base graphs für X-Y-Y2- and X-X2-Y-datasets for X- and Y-Range plots 2020-09-18 19:35:53 +02:00
jkriege2
b112f9f512 breaking: in graph Base-Classes: promoted several setters to slots, added Q_PROPERTY- and Q_ENUM-declarations, Docu cleanup 2020-09-18 19:11:50 +02:00
jkriege2
eb9a1d5a92 documentation fixed 2020-09-18 12:24:12 +02:00
jkriege2
9dbfd6e173 reworked class hierarchy of bar charts 2020-09-17 16:59:57 +02:00
jkriege2
9a3f321f66 improved and bugfixed handling of aspectRatio and its documentation 2020-09-11 23:21:55 +02:00
jkriege2
d2b4e07c94 added JPQTPlotter signal, when widget was resized 2020-09-11 13:48:07 +02:00
jkriege2
d6e6b1d53b reverted: - bugfix: JKQTPColumnConstIterator and JKQTPColumnIterator: getImagePositionX() and getImagePositionY() were switched 2020-09-11 13:15:12 +02:00
jkriege2
a1c4f0c0d2 - added several new copy/set-functions to JKQTPDatastore
- bugfix: JKQTPColumnConstIterator and JKQTPColumnIterator: getImagePositionX() and getImagePositionY() were switched
2020-09-11 12:39:10 +02:00
jkriege2
ff373236d4 renamed JKQTPColorPaletteStyleAndToolsMixin::setPalette() -> JKQTPColorPaletteStyleAndToolsMixin::setColorPalette() 2020-09-11 12:14:51 +02:00
jkriege2
e9ca874f3b made some functions of JKQTPCoordinateAxis public and improved documentation 2020-09-11 12:09:11 +02:00
jkriege2
1162a80cb4 added missing JKQTPlotter::getDatastore() with const-modifier 2020-09-11 12:06:27 +02:00
jkriege2
ebf034710b bugfix: parsed functions did not work properly 2020-09-09 11:45:33 +02:00
jkriege2
ba856b594f removed/breaking change: removed the overlay elements (derived from JKQTPOverlayElement), which were not very well set up and are more confusing than useful. 2020-09-09 11:26:04 +02:00
jkriege2
95d885bc2c - bugfix: improved handling of DRAGZOOM-UserAction for log-log plots
- code (style) improvements
2020-09-08 20:15:33 +02:00
jkriege2
f77bc97ca5 - cleanup of class-hierarchy of evaluated functions
- added slots for several properties of evaluated functions
- updated examples
2020-09-07 20:58:20 +02:00
jkriege2
414e12920e - added further base-class JKQTPEvaluatedFunctionWithParamsGraphBase, which extends JKQTPEvaluatedFunctionGraphBase with parameters
- modified plot-function with parameters, as the old unsafe way of giving a void* for parameters is no longer necessary with C++-lambdas and std::bind()
2020-09-05 13:47:46 +02:00
jkriege2
dcdee469fe rename JKQTPFunctionLineGraphBase -> JKQTPEvaluatedFunctionGraphBase 2020-09-05 13:16:26 +02:00
jkriege2
29ee1aa376 created common base class JKQTPFunctionLineGraphBase for all graphs that display evaluated functions 2020-09-05 13:14:46 +02:00
jkriege2
48a24a85d0 JKQTPXFunctionLineGraph: further simplification 2020-09-05 12:50:46 +02:00
jkriege2
8c0c8bf62e simplification/unification: JKQTPXFunctionLineGraph and JKQTPYFunctionLineGraph now use JKQTPAdaptiveFunctionGraphEvaluator to generate sample points 2020-09-05 12:44:02 +02:00
jkriege2
c57c672f78 new: a new graph class JKQTPXYFunctionLineGraph draws parametric 2D curves (f(t) -> [x,y]) 2020-09-04 23:47:03 +02:00
jkriege2
33a9cb5b2d bugfix: straight lines in pie and chord were not drawn as curve in DrawMode=DrawAsMathematicalCurve 2020-09-03 23:28:48 +02:00
jkriege2
279ef7880a - improved: 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: constructors and access functions for several geometric objects (e.g. more constructors, additional functions to retrieve parameters in diferent forms, iterators for polygons, ...)
- 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
2020-09-03 23:08:52 +02:00
jkriege2
c02ebf817b added function to check whether axis is linear 2020-09-03 22:56:38 +02:00
jkriege2
87755ce515 diverse code improvements, increased copyright year to 2020 2020-08-26 12:58:23 +02:00
jkriege2
5ad9ebdcbb code styling improvements 2020-08-26 11:43:44 +02:00
jkriege2
696ce11514 improved code style 2020-08-26 11:00:25 +02:00
jkriege2
0a634aabd0 reorganization: split jkqtpgeometric.h/.cpp into several smaller files that group the geomtric shapes by type 2020-08-26 10:36:07 +02:00
jkriege2
35000a8e38 some fixes to documentation and geometry example 2020-08-23 13:58:47 +02:00
jkriege2
4e1c09c24b improved arrows in geometric elements:
- JKQTPGeoLine, JKQTPGeoPolyLines and JKQTPGeoInfiniteLine support decorators
- improved decorator drawing
- more decorator types
- improved example geometry
- added specific example geo_arrows
- improved documentation
- code cleanup
2020-08-23 13:13:53 +02:00
jkriege2
9cba3fec25 bugfix: removed compiler warning 2020-08-21 18:40:30 +02:00
jkriege2
b3f4c64564 added geometric plot JKQTPGeoArrow object to draw arrows 2020-08-21 18:31:58 +02:00
jkriege2
139b0f5841 regained compatibility with pre 5.11 QT-Versions 2020-08-15 09:16:15 +02:00
jkriege2
7e9bad29b4 fix for issue #45:
- for Qt 5.15: added missing #include statements that became necessary since Qt 5.15
- for Qt 5.15: fixed use of several deprecated functions
- for Qt 5.15/6: removed usage of QMatrix
2020-08-14 14:12:59 +02:00
jkriege2
eb7fd1d524 some bugfixes for VStudio NOMINMAX-problem ... 2020-06-29 08:01:40 +02:00
jkriege2
52d3349199 improvements in CMake setup:
- removed more global settings (these are now target-specific)
- exporting now Config.cmake, which contains find_package(Qt) and loads a separate Targets.cmake
2020-06-28 15:53:26 +02:00
jkriege2
04219ec6d9 fixed issue #37: installing README/LICENSE files now to $PREFIX/doc/JKQtPlotter, instead of $PREFIX/doc/ 2020-06-28 09:53:33 +02:00
jkriege2
f6505e35fc fixed issue #41: "Build error when JKQtPlotter_BUILD_INCLUDE_XITS_FONTS set to OFF", code tried to use XITS-ressources, which were not there oif option is switched off. --> solved by adding optional private preprocessor definition 2020-06-28 09:49:20 +02:00
jkriege2
b22b4ca935 Fixed Bug #43: jkqtp_format() had undefined behaviour, because va_start was called with a ref-parameter, which does not work. Now there are 4 overloaded template variants. See https://github.com/jkriege2/JKQtPlotter/issues/43 2020-06-27 14:35:45 +02:00
Dan Timson
397c72049f bugfix for reading style names 2020-02-24 17:41:16 +00:00
jkriege2
d9086e99d2 bugfix for https://github.com/jkriege2/JKQtPlotter/issues/38: BUFFER Overflow due to access behind LUT-size 2020-01-06 18:17:41 +01:00
Jan W. Krieger
ee4262d14c
Merge pull request #34 from certik/log_zero2
Skip drawing the line for negative values in log plots
2019-11-29 07:27:50 +01:00
Ondřej Čertík
65c23c9669 Use linesP and vec_linesP names 2019-11-28 20:34:29 -07:00
Ondřej Čertík
ae722e8c33 Use a vector of QPolygonF directly 2019-11-28 20:32:38 -07:00
Ondřej Čertík
10edc6b0ac Skip drawing the line for negative values 2019-11-26 13:40:05 -07:00
jkriege2
2ab5b099d8 fixed typo which leads to Linux build fails! 2019-11-24 13:05:57 +01:00
jkriege2
6c058f73ed improved linewidth calculation in JKQTMathText for SQRT, arrows, ... 2019-11-24 12:53:58 +01:00