Commit Graph

396 Commits

Author SHA1 Message Date
jkriege2
25fcb2a74a NEW add JKQTPParametrizedVectorFieldGraph, which draws color-coded vector fields (color from length, angle, or user-supplied data column) + example 2024-02-10 00:26:45 +01:00
jkriege2
24526aa6a5 NEW: added JKQTPGLabelCenteredOnData to JKQTPGraphLabelPosition, so JKQTPXYGraphLabels can draw directly centered over the datapoint 2024-02-09 16:59:14 +01:00
jkriege2
4e29109937 JKQTPVectorFieldGraph gained the option to also scale the line width with the vector length/magnitude 2024-02-09 16:45:40 +01:00
jkriege2
627c329ab1 replace JKQTPVectorFieldGraph::setAutoscaleLengthFactor() by an enum-property JKQTPVectorFieldGraph::setVectorLengthMode() and added a mode that ignores the length completely, the vectorfield example was also modified to better show this new property 2024-02-09 13:48:41 +01:00
jkriege2
1ff97e1d0a doc update 2024-02-09 13:22:16 +01:00
jkriege2
eb315f648f JKQTPVectorFieldGraph: added scaling factor for length-autoscaling 2024-02-09 11:41:19 +01:00
jkriege2
e2057ae27a NEW: Base class JKQTPXYAndVectorGraph for graphs like vector fields, e.g. (x,y,dx,dy) or (x,y,angle,length)
NEW: ... and an actual implementation JKQTPVectorFieldGraph (+example)
2024-02-08 21:52:30 +01:00
jkriege2
a178a1f6d3 docfix 2024-02-06 22:58:02 +01:00
jkriege2
ac8e7c6adb docfix 2024-02-06 16:20:48 +01:00
jkriege2
eb83feccaf doc update + image rename 2024-02-06 15:19:20 +01:00
jkriege2
99f029e61e updated copyright timerange to 2024 2024-02-06 14:50:49 +01:00
jkriege2
3c9bd56d9e NEW: JKQTPXYGraphLabels which can draw a label next to each datapoint in the given x/y-dataset. The labels can be x-/y- or x&y-coordinates or custom, then defined by a user-supplied functor (+example \ref JKQTPlotterGraphLabels) 2024-02-06 14:49:14 +01:00
jkriege2
0009ff8f64 moved two protected methods from JKQTPCoordinateAxis to jkqtpstringtools.h/.cpp 2024-02-06 14:48:21 +01:00
jkriege2
e63f053896 DOC update 2024-02-06 12:18:54 +01:00
jkriege2
210c7aaa42 improved qHash-functions and class constructors
NEW jkqtp_hash_combine() and jkqtp_combine_hash()
2024-02-05 17:12:34 +01:00
jkriege2
3b231273ef FIXED symmetry when zooming with JKQTBasePlotter::zoomIn() or JKQTBasePlotter::zoomOut() 2024-02-05 00:24:39 +01:00
jkriege2
26cb23e3ab doc improvements 2024-02-04 22:06:09 +01:00
jkriege2
f606327469 RENAMED JKQTPDatastore::addColumnCalculatedFromColumn() to JKQTPDatastore::addCalculatedColumnFromColumn(), which is more in line with the other add...()-function names. Aliases with the old function names remain for compatibility 2024-02-04 21:42:53 +01:00
jkriege2
50746a09cf brought removed operators in JKQTDataStore back 2024-02-02 16:09:42 +01:00
jkriege2
92b8894a3b FIX: color bars did not show a complete frame around 2024-02-02 14:43:10 +01:00
jkriege2
57b298527e IMPROVED: axis labeling: there were some minor differences between compilers
IMPROVED: jkqtp_floattounitstr()/jkqtp_floattolatexunitstr(): add all SI-Prefixes from 10^-30...10^30
BREAKING removed unused function variant of jkqtp_floattounitstr()
NEW Added unit test for jkqtp_floattounitstr()/jkqtp_floattolatexunitstr()
2024-02-02 14:24:41 +01:00
jkriege2
55625a25ee IMPROVED/FIXED outside space requirements for color bars. Text was sometime too close to the plot border. 2024-02-02 14:03:16 +01:00
jkriege2
946e472ce7 FIXED removed unnecessary operator from JKQTPColumnIterator and JKQTPColumnConstIterator, which lead to exceptions on some compilers 2024-02-02 14:01:16 +01:00
jkriege2
868d6dcdf4 fixed several compile warnings 2024-01-23 13:09:37 +01:00
jkriege2
9c543953ca fix CMake error 2024-01-23 00:48:42 +01:00
jkriege2
397d2bee9a FIXed CMake build:generic ALIAS targets were defined incorrectly 2024-01-22 22:09:55 +01:00
jkriege2
8ccaaaebe6 NEW: added "currentcolor" as color-placeholder in style.ini files and using it in conjunction with linear-gradient() in cyberpunk and dark styles
NEW: added style simple_noaxes.ini
2024-01-22 21:31:09 +01:00
jkriege2
1d013685bf fixed missing/wrong #include's 2024-01-22 18:44:46 +01:00
jkriege2
e5821eee3f NEW allow linear-gradient()... in brush definitions of style.ini-file 2024-01-21 22:21:27 +01:00
jkriege2
a4fef01642 add general ALIAS targets JKQTPlotter::JKQTCOmmmon|JKQTPlotter|... which alias the current QT-Major-Version 2024-01-21 22:02:39 +01:00
jkriege2
b0df7a1fd7 NEW/BREAKING: provide general targets JKQTPlotter5/6::JKQTPlotter5/6, JKQTPlotter5/6::JKQTMathText5/6, ... which are independent of the type of build (shared/static)
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104)
NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API
NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
2024-01-16 13:07:08 +01:00
jkriege2
4cd8a46245 FIXed drawing of secondary axes (distances betweeen axes were wrong, in part doubled and inside-ticks for secondary axes were not taken into account ... also fixed several minor bugs around this) 2024-01-10 12:35:48 +01:00
jkriege2
408f38dac1 FIXed some code analysis issues 2024-01-10 11:43:38 +01:00
jkriege2
f096aa9602 fixed several static code analysis warnings and security vulnerabilities 2024-01-10 10:35:43 +01:00
jkriege2
c03ad2b506 added missing #include 2024-01-09 21:52:35 +01:00
jkriege2
4a7b6b60d1 FIXed Security Alerts:
- https://github.com/jkriege2/JKQtPlotter/security/code-scanning/3
  - https://github.com/jkriege2/JKQtPlotter/security/code-scanning/4
  - https://github.com/jkriege2/JKQtPlotter/security/code-scanning/5
  - https://github.com/jkriege2/JKQtPlotter/security/code-scanning/6
  - https://github.com/jkriege2/JKQtPlotter/security/code-scanning/7
  - https://github.com/jkriege2/JKQtPlotter/security/code-scanning/8
  - https://github.com/jkriege2/JKQtPlotter/security/code-scanning/9
  - https://github.com/jkriege2/JKQtPlotter/security/code-scanning/10
2024-01-09 17:38:46 +01:00
jkriege2
e0df1a8f0e FIXed multiRow/MultiColumn distribution algorithm in JKQTPKey 2024-01-09 14:30:31 +01:00
jkriege2
09e07cb12a NEW/REWORKED: extended the set of functions like JKQTMathTextGetTightBoundingRect(): These use an internal, thread-safe cache and capsule calls to QFontMetricsF-instances. This significantly improves speed in (parallelized) plotting. 2024-01-08 17:16:31 +01:00
jkriege2
3fee9609fb NEW: Added CMake option JKQtPlotter_BUILD_WITH_TIMING_INFO_OUTPUT, which activates several runtime-measurement guards of type JKQTPAutoOutputTimer (output via qDebug()) 2024-01-08 17:14:03 +01:00
jkriege2
6607432af0 bump required cmake version to 3.16 consistently 2024-01-06 15:37:59 +01:00
jkriege2
9662ed2d69 MODIFIED: Synchronization of JKQTMathText and JKQTBasePlotter over threads: using read/write lockers now and removed some unnecessary mutexes by using a kind of singleton pattern 2024-01-05 23:26:47 +01:00
jkriege2
11b9ac6c8b FIXing and EXTENDing jkqtplotter_version.h 2024-01-05 21:01:46 +01:00
jkriege2
591f0dfe64 FIXED: using QSharedPointer for automatic memory management 2024-01-04 23:59:46 +01:00
jkriege2
d4930d7729 IMPROVED: JKQTPGraphsModel generated High-DPI Icons, if necessary 2023-12-22 21:09:41 +01:00
jkriege2
4017852df4 improved documentation and method grouping in JKQTBasePlotter 2023-12-22 20:58:43 +01:00
jkriege2
36947a4bca REWORKED JKQTBasePlotter::saveData() with a more consistent interface and a bool return value to indicate success or failure + improved documentation
NEW: added two functions to JKQTPSaveDataAdapter
2023-12-22 20:34:32 +01:00
jkriege2
0595fef048 BREAKING/DEPRECATED: deprecated JKQTBasePlotter::zoom() and JKQTPlotter::zoom(), use JKQTBasePlotter::setXY() and JKQTPlotter::setXY() instead
NEW: improved documentation of class methods
2023-12-22 20:31:25 +01:00
jkriege2
ae157d928b FIXED fix implementation for issue #110 from commit 99ff39a3d6
The solution did not work with half-open absoluteRanges!
2023-12-22 12:56:09 +01:00
jkriege2
99ff39a3d6 FIXED issue mentioned in https://github.com/jkriege2/JKQtPlotter/pull/110: Lock the panning action to certain values: View zooms in, when panning close to AbosluteXY</a> (thanks to https://github.com/sim186 for reporting) 2023-12-21 15:10:20 +01:00
jkriege2
995ca92033 FIXED/REWORKED issue https://github.com/jkriege2/JKQtPlotter/issues/111 : Can't write to PDF files with JKQTPlotter::saveImage() when passing a filename ending in ".pdf" (thanks to https://github.com/fpalazzolo for reporting)
IMPROVED/REWORKED: The functions JKQTBasePlotter::saveImage(), JKQTBasePlotter::saveAsPixelImage(), JKQTBasePlotter::saveAsPDF(), JKQTBasePlotter::saveSVG(), ... gained a bool return value to indicate whether sacing was successful.
IMPROVED/REWORKED: More <code>save...()</code> functions will appear in the API of JKQTPlotter, so you don't have to go via JKQTPlotter::getPlotter(). These are merely forwarding the call to the internel JKQTBasePlotter instance.
2023-12-21 12:24:30 +01:00