Commit Graph

366 Commits

Author SHA1 Message Date
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
jkriege2
abad0b01c3 fixed even more compile errors 2023-12-19 16:22:06 +01:00
jkriege2
2913a9af48 improved documentation 2023-12-19 15:23:44 +01:00
jkriege2
83c980384c fix more compile errors (QList::emplaceback/emplace_back() did not exist in Qt 5.15 2023-12-19 11:43:36 +01:00
jkriege2
0080f07bda improve doc 2023-12-19 11:18:28 +01:00
jkriege2
61ca14863f BUGFIX: JKQTPCoordinateAxis::tickUnitName was not shown in some cases, when using fractions 2023-12-19 11:04:19 +01:00
jkriege2
f4ac9374d4 fixed compile errors (using QString instead of std::string, where appropriate) 2023-12-19 10:38:58 +01:00
jkriege2
f2004a6f66 NEW/BREAKING: rework layouting of keys/legends: new classes JKQTPBaseKey, JKQTPMainKey ... and removed several styling function for the main key from JKQTBasePlotter and JKQTPlotter (these are now accessible via JKQTBasePlotter::getMainKey()
IMPROVED/REWORKED: legend/key positioning as combination of 3 values, e.g. \c JKQTPKeyOutsideTop|JKQTPKeyTop|JKQTPKeyRight or \c JKQTPKeyInside|JKQTPKeyTopJKQTPKeyRight
2023-12-18 22:24:59 +01:00
chengben
96426e73fb Fix the issue of setDrawMode1 affecting tick drawing for modes 0 and mode2 2023-11-21 10:52:08 +08:00
Frank Palazzolo
58197d19c5 Add option to disable resize delay feature by setting the delay to zero. 2023-10-24 13:32:26 -04:00
jkriege2
134739c5a5 FIXED: Height of one-column key/legend was too large 2023-08-24 22:11:44 +02:00
jkriege2
5cc0b65d9a NEW: added JKQTPLabelMinBesides and JKQTPLabelMaxBesides to JKQTPLabelPosition, so labels can be set besides the axes 2023-08-24 21:49:39 +02:00
jkriege2
84270e49b0 improvement to fix for #99: add even more space in some cases 2023-08-22 18:02:00 +02:00
jkriege2
af29fa4ffa added example image for JKQTPCoordinateAxisStyle::tickLabelAngle 2023-08-22 17:34:50 +02:00
jkriege2
22d8bdd674 partly fixed issue #99: for horizontal axes, additional space at the left and/or right of the plot is allowed so labels are no longer clipped (thanks to user:allenbarnett5 for reporting) 2023-08-22 17:32:00 +02:00
jkriege2
fa50c3c130 NEW: added JKQTBasePlotterStyle::plotLabelTopBorder and made plot labels BOLD 2023-08-16 14:04:04 +02:00
jkriege2
11abcd1e77 fixed compile issues 2023-08-15 19:08:19 +02:00
jkriege2
49d79e610d FIXED/NEW: placement of plot-title (was not centerd in its box, but glued to the bottom) by adding a plotstyle parameter JKQTBasePlotterStyle::plotLabelOffset 2023-08-15 15:26:06 +02:00
jkriege2
e66abc47ac update plot imaged for tutorials: datastore, datastorw_groupstat, datastore_regression, datastore_iterators, datastore_statistics 2023-08-15 15:02:39 +02:00
jkriege2
4edaa3e1e2 BREAKING/FIXED: JKQTPXFunctionLineGraph and JKQTPYFunctionLineGraph do no longer contribute to auto-scaling, as that depends on the current plot-axes (hen-egg-problem). 2023-08-14 13:51:18 +02:00
jkriege2
e386cb97a7 FIXED: fixed impleentations of JKQTPlotter::beginGraphs(), which actually returned the end-iterator (COPY-PASTE-ERROR!!!) 2023-08-14 12:38:58 +02:00
jkriege2
b1954af38b updated auto-generated doc images 2023-08-04 15:33:03 +02:00
jkriege2
4cf343ea30 CHANGED: updated default palette_MatlabLegacy_step.png
NEW: added more steps palettes
2023-07-30 22:30:09 +02:00
jkriege2
ed2b3cef22 Updated style.ini files 2023-07-25 22:22:52 +02:00
jkriege2
754553568d NEW added entry for plotLabelColor to JKQTBasePlotterStyle 2023-07-25 22:21:42 +02:00
jkriege2
97c54916cf NEW: you can use any (preferably stepped/categorial) JKQTPMathImageColorPalette as default graph colors list in a style.ini file, by setting <tt>auto_styles/use_color_from_palette=PALETTE_NAME</tt>
FIXED/BREAKING: graph symbols were not properly applied when reading styles (in fact they were shuffled under some circumstances)
2023-07-25 22:20:00 +02:00
jkriege2
677985ae35 NEW: Using Q_SIGNALS/Q_SLOTS instead of signals/slots MOC-keywords ... this allows for interoperability with other signals/slots frameworks 2023-07-22 14:26:02 +02:00
jkriege2
3e4f039efb fixed some Qt5 compile errors 2023-07-22 10:45:11 +02:00
jkriege2
b6b5c48d9e FIXED: exporting gridPrinting plots when using only a JKQTBasePlotter 2023-07-22 00:12:55 +02:00
jkriege2
3a789250be NEW: added variant of JKQTBasePlotter::setWidgetSize() which accepts QSize 2023-07-21 22:58:01 +02:00
jkriege2
ee7387d033 updated default.ini style 2023-07-21 22:05:27 +02:00