Commit Graph

634 Commits

Author SHA1 Message Date
jkriege2
66e374a5d9 FIXed typo in JKQTMathTextDecoratedNode (placement of decorations was wrong after one of the last commits) and improved placement 2024-01-08 21:11:32 +01:00
jkriege2
25ff0a1b5b IMPROVED JKQTMathText rendering of \sfrac and \stfrac 2024-01-08 21:00:30 +01:00
jkriege2
d030cf5f3f FIX JKQTMathText rendering problem with a combination of numbers and text/symbols (wrong advance was used) 2024-01-08 20:29:02 +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
07a797ef80 add the thread-ID to the output of JKQTPAutoOutputTimer 2024-01-08 12:53:11 +01:00
jkriege2
26a86df032 NEW JKQTPDataCache class template to generate a (possibly thread-safe) key-value cache 2024-01-08 12:52:50 +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
3b598f49e8 FIXED: missing #include
FIXED: jkqtpstatSum() and jkqtpstatSumSqr() did not work, as a non-existing function is called internally
2024-01-05 00:01:11 +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
Jan W. Krieger
a462164324
Merge pull request #101 from fpalazzolo/feature/disable_resize_delay
Add option to disable resize delay feature by setting the delay to zero.
2023-10-25 13:38:39 +02:00
Alexander Neumann
5972eeee9d
Fix C&P error 2023-10-25 09:10:58 +02: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
a9bfcab4b9 bugfix doxygen markup 2023-09-26 14:03:34 +02:00
jkriege2
cf058ccf54 docu layout fixed 2023-09-26 10:46:15 +02:00
jkriege2
9fd500fc8f DEPRECATED JKQtFastPlotter & QMake-build 2023-09-26 10:45:59 +02:00
jkriege2
deffa3a407 FIXED: reversed some palettes, so the names match the color order 2023-09-26 08:28:40 +02:00
jkriege2
0654b1958d typo fix 2023-09-25 23:06:37 +02:00
jkriege2
3d60d4f2ef NEW: even more color palettes 2023-09-25 22:58:28 +02:00
jkriege2
3f60d40390 typo fixed 2023-09-19 17:34:46 +02:00
jkriege2
08cc844343 MODIFIED: simplified palette generation code + added several missing derived palettes + legacy names/renames 2023-09-19 14:38:01 +02: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
3bd49100fe doc-fix 2023-08-16 15:35:44 +02:00
jkriege2
fa50c3c130 NEW: added JKQTBasePlotterStyle::plotLabelTopBorder and made plot labels BOLD 2023-08-16 14:04:04 +02:00
jkriege2
122371e743 NEW: Added JKQTMathText::setFontOptions(), which allows to make fonts initially e.g. bold, italic, ... and extended JKQTMathText::setFontSpecial() accordingly 2023-08-16 13:52:29 +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
d14ea9971f fixed compile errors 2023-08-04 14:23:48 +02:00
jkriege2
c38f69ae9a NEW: added JKQTPPaletteList::reverse() and JKQTPPaletteList::sort()
FIXED: fixed stepsGnBl-palettte and greenblue-palette
2023-07-30 22:56:48 +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
ca84d664ad NEW: add color palettes from Green's HELIX method, see https://arxiv.org/abs/1108.5083, see JKQTPCreateGreensCubeHelixLUT() and e.g. JKQTPMathImageCubeHelixClassic, JKQTPMathImageCubeHelix1, ... 2023-07-22 15:33:09 +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
35cb8541da fixed typo 2023-07-22 00:30:15 +02:00
jkriege2
102ca8a40b added missing #include 2023-07-22 00:25:21 +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
d44316c8e3 - NEW added several new color palettes and fixed/improved handling of palettes with few colors in them
- NEW added several tool functions to work with color palettes
-
2023-07-21 22:07:46 +02:00
jkriege2
ee7387d033 updated default.ini style 2023-07-21 22:05:27 +02:00
jkriege2
841e5ac916 removed unnecessary DEBUG-output 2023-07-21 22:01:45 +02:00
jkriege2
869c83222a NEW: added cyberpunk style 2023-07-21 21:59:49 +02:00
jkriege2
6522325ed1 UPDATED updated blueprint.ini and dark.ini styles 2023-07-21 21:55:07 +02:00
jkriege2
7f6c5fc9aa FIXED: Barcharts were not filled with cycling patterns properly and the first default symbol was never used (in JKQTBasePlotter::getPlotStyle()) 2023-07-21 21:53:06 +02:00
jkriege2
c371899579 BREAKING: new default color scheme 2023-07-21 19:36:02 +02:00
jkriege2
1cbba3f5d1 FIXED: implemented missing JKQTPGeoArrow constructors 2023-07-21 19:32:47 +02:00
jkriege2
b188d95c01 implemented complex syntax in JKQTPColorDerivationMode::fromString() 2023-07-21 19:30:56 +02:00
jkriege2
ed8b23d7cf FIXED: JKQTPGeoEllipse is now correctly drawn with a nonzero angle 2023-07-21 19:27:57 +02:00
jkriege2
ed1204cea6 NEW: You can use additional syntax derived from CCS to define colors in style.ini.files (or when using jkqtp_String2QColor() ): You can use full CSS-color syntax with functions "rgb(R,G,B)", "rgba(...)", "hsl(...)", "hsv(...)", "gray(...)", "green(...)", "red(...)", "blue(...)" 2023-07-21 19:25:46 +02:00
jkriege2
7eca9f7c8b - corrected size of internal image buffer --> fixes strange rendering with distortions (especially in text!)
- added missing override declarations
- JKQTPlotter::jkqtp_RESIZE_DELAY is thread-safe now (atomic)
2023-07-21 19:19:50 +02:00
jkriege2
4c1668e50d fixed String2JKQTPMouseDragActions(): some wrong strings 2023-07-04 19:38:39 +02:00
jkriege2
aee3b23696 UPDATED included styles INI-files + automatic generation of style.ini documentations 2023-07-02 23:01:56 +02:00
jkriege2
dfa29b7b81 fixed compile issues 2023-07-01 23:33:57 +02:00
jkriege2
a492b75724 updated default style parameters (more modern) 2023-07-01 23:23:35 +02:00
jkriege2
d23ea0a79e fix issue #96: JKQTPlotter::saveAsPixelImage() does not add a border around the image any longer (can be reacivated by a new optional function parameter) 2023-07-01 22:27:00 +02:00
jkriege2
a1408ccbd0 JKQTMathText: Update several layouting nodes (especially braces) 2023-07-01 15:57:57 +02:00
jkriege2
4b4075c226 JKQTMathText: fixed super-script sizing (using tightboundingbox around x instead of xHeight(), which caused some problems recently for several standard fonts 2023-07-01 15:09:38 +02:00
jkriege2
8719208acf iproved JKQTMathText::drawIntoPixmap() and drawIntoPicture(): using ARGB32_Premultiplied for QPixmap + enabled QPainter::VerticalSubpixelPositioning when available 2023-07-01 14:49:56 +02:00
jkriege2
3b136c7320 fixed some compile errors in static initialization 2023-07-01 14:44:46 +02:00
jkriege2
3fc8951851 made more STATIC data members thread_local or secured them by a std::mutex. This was at least JKQTMathText and JKQTBasePlotter should be usable in several threads 2023-06-30 13:52:17 +02:00
jkriege2
79d8dbad84 fixed some compiler warnings 2023-06-29 08:44:20 +02:00
jkriege2
cf43dc4a7e made JKQTPPlotSymbol() thread-safe 2023-06-25 18:05:16 +02:00
jkriege2
41e63341b5 added concurrency tools header to jkqtpcommmon, initially with JKQTPSynchronized<T> 2023-06-25 17:51:21 +02:00
jkriege2
cd77d38a5b IMPROVED handling of JKQTPMouseWheelActions::jkqtpmwaZoomByWheelAndTrackpadPan: now consecutive pan-actions are recognizes as such, even if the pan-delta is larger than the predefined limit ... as long as the events were generated close in time to each other! 2023-06-18 15:13:24 +02:00
jkriege2
9762b44b7d IMPROVED/REWORKED: zomm/pan by mouse-wheel: now there are modes that support zoomin AND panning by trakpad and mouse-wheel simultaneously! 2023-06-16 13:41:47 +02:00
jkriege2
5240cf8681 removed unneeded #include 2023-06-11 16:39:13 +02:00
jkriege2
d1e493fc73 fixed issue #98: Signal JKQTPlotter::plotMouseWheelOperated() was called with wrong x/y-position-coordinates 2023-06-11 16:32:10 +02:00
jkriege2
ebd1a29e1d BREAKING: Implement better/more access functions to the graphs (inlcuding sorting, moving up/down, appending/prepending, graphs-iterators ...), solves issue #97 2023-05-27 23:46:45 +02:00
jkriege2
fc642b6cac bugfixed QSet-initialization 2023-03-23 14:53:23 +01:00
jkriege2
f61b46b96b NEW: secondary axes: added functionality to manage additional secondary axes in a JKQTPBasePlotter and to select which x-/y-Axis to use for drawing a JKQTPPlotElement, see also issue #87 2023-03-23 13:55:18 +01:00
jkriege2
8b482a191c renamed sub-library JKQTCommonMathAndStatistics to JKATMath. This results in shorter filenames 2023-03-15 14:59:34 +01:00
doug1234
2bc76761a0 Fixed the one VS warning I found (warning level 4) 2023-01-28 10:55:17 -05:00
jkriege2
3132eb0102 refactorings, code improvements, no functional changes 2022-11-03 15:48:48 +01:00