Commit Graph

551 Commits

Author SHA1 Message Date
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
jkriege2
8c36ce2196 NEW: barcharts and impulse graphs may now draw their baseline as stylable line (default: off) 2022-10-31 20:34:01 +01:00
jkriege2
3736747173 docfix 2022-10-30 22:01:06 +01:00
jkriege2
972bc6c1e0 NEW: you can provide a custom draw functor to barcharts to completely customize their look 2022-10-28 21:48:42 +02:00
jkriege2
d59f5e6692 docfix 2022-10-22 21:07:14 +02:00
jkriege2
c6ac8a8cc4 NEW: barcharts can be colored by a user-specified functor 2022-10-22 16:40:44 +02:00
jkriege2
c2e2ca1af7 BUGFIX: JKQTPCALTslashfrac didn't work 2022-10-09 12:27:01 +02:00
jkriege2
ddcc9ea462 BUGFIX: Error for PDBs when building STATIC libs on MSVC
BUGFIX: a variable in the ...Config.cmake-files was not set correctly
2022-10-06 11:54:18 +02:00
jkriege2
62f27ce9c1 NEW: When using a MSVC compiler, the generated PDB files are installed to CMAKE_INSTALL_PREFIX/bin/ 2022-10-05 21:52:19 +02:00
jkriege2
7b715541e7 bugfixed parantheses for JKQTPCALTintslashfrac labels + some Codiga-Violations 2022-09-28 01:46:19 +02:00
jkriege2
ce3f25e044 added new JKQTPCALabelType element JKQTPCALTformat for general formatting with a std::format-format string (available for C++>=20 only!!!) 2022-09-28 00:59:57 +02:00
jkriege2
c1b7f678c7 bugfixed issing include 2022-09-27 09:57:50 +02:00
jkriege2
71314496a0 minor bugfixes 2022-09-27 01:55:37 +02:00
jkriege2
2da8553e5d NEW: barcharts may hav rounded corners now, via JKQTPBarGraphBase::setRectRadius() 2022-09-27 01:42:54 +02:00
jkriege2
153c80d64b docfix 2022-09-26 23:16:28 +02:00
jkriege2
3de1df2b94 updated impulse plots & doc 2022-09-26 02:08:01 +02:00
jkriege2
465583b48d bugfixed length of zero line 2022-09-25 21:22:29 +02:00
jkriege2
8855891eea NEW: added option to draw a zero axis to JKQTPCoordinateAxis, which draws an axis at the origin of the coordinate system 2022-09-25 15:34:05 +02:00
jkriege2
e2fba9957e added several setter variants for colors that have the alpha transparency value as separate parameter 2022-09-25 15:23:52 +02:00
jkriege2
1c0d0cb262 updated documentation (better structure & more info) 2022-09-24 20:18:08 +02:00
jkriege2
630b4d02f6 added missing include 2022-09-24 02:10:14 +02:00
jkriege2
efa0db1bbe NEW: added possibility to scale the axis ticks by a factor (e.g. pi) to generate axes with ticks 0pi, 1pi, 2pi ... 2022-09-24 02:06:42 +02:00
jkriege2
bf4aa7ebdb JKQTPCALTprintf for general axis tick formatting with a printf-format string 2022-09-24 00:16:57 +02:00
jkriege2
b536d79aeb bugfix for older Qt versions 2022-09-23 21:45:30 +02:00
jkriege2
d2c2185f9c IMPROVED/REWORKED: reworked JKQTPCADrawMode and coordinate axis drawing so the draw mide can be specified as ORed combination of flags from JKQTPCADrawModeElements, added flags to draw arrows at the end of the axis line
IMPROVED/REWORKED: coordinate axis code was refactored
NEW: all elements of a coordinate axis may have their own color now
2022-09-23 20:43:53 +02:00
jkriege2
a769437ae3 docfix 2022-09-22 01:43:46 +02:00
jkriege2
60a4656dd8 NEW: Added new JKQTPCALabelType elements (JKQTPCALTfrac...), so axis label ticks can be displayed as fractions 1/2 instead of 0.5
NEW: Added new JKQTPCALabelType element JKQTPCALTscientific, so axis label ticks can be displayed as numbers in scientific notation like 1.2E-34
auto-generate JKQTPCALabelType documentation
2022-09-22 00:44:54 +02:00
jkriege2
75db7cff42 dox update/fix 2022-09-19 21:55:12 +02:00
jkriege2
3c22130902 JKQTPlotter: IMPROVED/REWORKED: reworked JKQTPErrorPlotstyle and error indicator plotting so error-inidcators can be specified as ORed combination of flags from JKQTPErrorPlotstyleElements, added additional error indicator styles (half-bars, arrows...) 2022-09-14 22:03:46 +02:00
jkriege2
16df80c8c7 JKQTPlotter: NEW: Added signals JKQTBasePlotter::beforeExporting()/JKQTBasePlotter::afterExporting() and JKQTBasePlotterJKQTBasePlotter:beforePrinting()/JKQTBasePlotter::afterPrinting() which allow to modify the plot just before and just after an export/print 2022-09-12 00:35:45 +02:00
jkriege2
1fb0c540d9 JKQTPlotter:
- FIXED plot-size calculation for filled graphs
  - added example for filled graphs with error indicators
2022-09-11 00:06:47 +02:00
jkriege2
6cc08c2041 JKQTPlotter: NEW: added new error indicator styles JKQTPErrorHalfBarsOutwards, JKQTPErrorHalfBarsInwards, JKQTPErrorHalfBarsAbove, JKQTPErrorHalfBarsBelow which are especially useful for barcharts
JKQTPlotter: added example for barcharts with errorbars
2022-09-11 00:03:31 +02:00
jkriege2
40748de442 JKQTPlotter: NEW: barcharts (derived from JKQTPBarGraphBase) can be configured to use different fill styles above and below the baseline 2022-09-10 14:35:16 +02:00
jkriege2
f11a98779e JKQTPlotter: NEW: added JKQTPXYGraph::setKeyColumn()/JKQTPXYGraph::getKeyColumn() and JKQTPXYGraph::setValueColumn()/JKQTPXYGraph::getValueColumn() and corresponding functions in other classes. 2022-09-10 13:38:29 +02:00
jkriege2
117ec4a84f bugfixed compile errors in CI 2022-09-08 08:55:52 +02:00
jkriege2
ffe9e904bc bugfix attempt for compile error with QDataStream and JKQTPGraphSymbols 2022-09-07 21:50:58 +02:00
jkriege2
7846bbecf0 JKQTPlotter: added property drawLineInForeground to JKQTPXYLineGraph and JKQTPXYParametrizedScatterGraph 2022-09-07 21:12:26 +02:00
jkriege2
04284af94c removed outdated (and doubled) README.md files 2022-09-06 12:46:43 +02:00
jkriege2
bf1416d5a6 added possibility to register custom symbols for JKQTPPlotSymbol() 2022-09-06 12:39:23 +02:00
jkriege2
f6def4b9d1 add symbol JKQTPFilledCharacterSymbol 2022-09-06 11:59:11 +02:00
jkriege2
2831dcbfb5 jkqtcommon/jkqtpdrawingtools.h: added template-function to draw a decorated line
JKQTPlotter: add auto-generated line-decorator images
2022-09-06 11:07:52 +02:00
jkriege2
4f73fbbaed JKQTPlottter: added the option to draw a character from a font as symbol (JKQTPCharacterSymbol+QChar('').unicode()) 2022-09-02 14:19:47 +02:00
jkriege2
74d54abac5 JKQTCommon: refactoring of JKQTPPlotSymbol(): using static datastructures to store precalculated drawing instructions (polygons, QPainterPath, ...), this should improve the drawing speed a bit and makes the code less complex 2022-09-02 12:27:12 +02:00
jkriege2
9f87652b56 updated style.inis 2022-09-01 22:25:28 +02:00
jkriege2
4bd7444c66 JKQTMathText: resetting pen and brush before drawing, so the previously set pen/brush does not influence the rendering result 2022-09-01 22:22:17 +02:00
jkriege2
7f206882c1 JKQTPlotter: useNonvisibleLineCompression is off by default 2022-09-01 22:21:24 +02:00
jkriege2
9b5549b8b5 JKQTPlotter: generate High-DPI Icons, where necessary/appropriate 2022-09-01 21:37:50 +02:00
jkriege2
6ebd8743ca JKQTMathText:
- NEW: Added the Fira Math fonts as sans-serif symbol font to the library (as a ressource) and added JKQTMathText::useFiraMath()
  - NEW: Added JKQTMathText::useGuiFonts()</li>
JKQTPlotter:
  - NEW: Using JKQTMathText::useGuiFonts() for FONT rendering by default
2022-09-01 14:36:34 +02:00
jkriege2
4ef29635ea JKQTPlotter: improved plotting speed for line-graphs by drawing a series of single lines instead of a polyline in some cases 2022-08-30 22:24:24 +02:00
jkriege2
abd62dc341 made randomnumber generators seeded with fixed values 2022-08-30 21:33:22 +02:00
jkriege2
889f95e7af Merge branch 'master' of https://github.com/jkriege2/JKQtPlotter 2022-08-30 09:45:18 +02:00
jkriege2
eeff6e0036 fixed issue #73: Symbol thickness differs in actual plot and legend 2022-08-30 09:44:40 +02:00
jkriege2
e729ebbc78 docfix 2022-08-29 21:46:38 +02:00
Jan W. Krieger
d7badaf424
workaround for old MS code! 2022-08-29 13:29:41 +02:00
jkriege2
6eba8acbf2 updated many documentation images to auto-generated ones 2022-08-28 22:48:14 +02:00
jkriege2
2aa6c8e3b6 JKQTPlotter: made resize-timer status accessible from outside via JKQTPlotter::isResizeTimerRunning()
made it's delay a global static variable that can be set and red with JKQTPlotter::setGlobalResizeDelay() and JKQTPlotter::getGlobalResizeDelay()
2022-08-28 22:47:46 +02:00
jkriege2
a1604e1eeb added more auto-generated screenshots 2022-08-26 22:32:48 +02:00
jkriege2
b156fc7e40 NEW: added scatter graph JKQTPXYScatterGraph and JKQTPXYScatterErrorGraph 2022-08-26 12:41:42 +02:00
jkriege2
7030475568 NEW: added JKQTBasePlotter::grabPixelImage() and JKQTPlotter::grabPixelImage(), which grab the plotter into a QImage
NEW: added option to not display the preview dialog to JKQTBasePlotter::copyPixelImage() and JKQTPlotter::copyPixelImage()
2022-08-26 12:28:06 +02:00
jkriege2
d283f6b294 bugfix in JKQTPSimplifyPolyLines() 2022-08-26 11:34:03 +02:00
jkriege2
fdb8ce2d75 JKQTPlotter: REORGANIZED: separated line-graphs from jkqtpscatter.h/.cpp into jkqtplines.h/.cpp 2022-08-25 22:41:41 +02:00
jkriege2
a90cbecd9d added optimized line-drawing to JKQTPSpecialLineGraphBase 2022-08-25 22:33:07 +02:00
jkriege2
064f01d0b0 bugfixed optimized line-drawing 2022-08-25 22:32:34 +02:00
jkriege2
c3afee2c1f replaced QVector<QPointF> by QPolygonfF, as Qt changes from QVector to QList with Qt5->Qt6 2022-08-25 17:46:57 +02:00
jkriege2
586548c7d6 change parent-chld relationships of scatter graphs 2022-08-25 17:34:12 +02:00
jkriege2
f4c4a693e4 bugfix+docfix 2022-08-25 17:25:23 +02:00
jkriege2
c2338c07b1 bugfix 2022-08-25 16:53:44 +02:00
jkriege2
69adb3adfb bugfix 2022-08-25 15:30:39 +02:00
jkriege2
03031e3762 JKQTPlotter:
- NEW: improved plotting speed for line-graphs by a compression algorithm (see JKQTPGraphLinesCompressionMixin) that removes overlaying lines (e.g. in JKQTPXYLineGraph)
    - NEW: improved plotting speed for line-graphs by a clipping algorithm (applies to JKQTPXYLineGraph, JKQTPGraphErrorStyleMixin, JKQTPSpecialLineHorizontalGraph, JKQTPSpecialLineVerticalGraph and others)
    - NEW: improved plotting speed for scatter-graphs by not calling draw functions for symbols outside the plot window (e.g. in JKQTPXYLineGraph)
2022-08-25 15:17:50 +02:00
jkriege2
17b93ab580 improved speed example with more options 2022-08-23 22:12:53 +02:00
jkriege2
676b97a3ca fixed several CMakeLists.txt issues 2022-08-22 20:35:24 +02:00
jkriege2
6c8d517f44 fixed CMakeLists.txt 2022-08-22 17:36:49 +02:00
jkriege2
8993b5ad8d CMake-System bugfix (in exports): added missing find_package(JKQTCommonStatisticsAndMath) 2022-08-22 16:38:30 +02:00
jkriege2
37024ffe34 fixed compatibility with older Qt version (before 5.12) 2022-08-22 10:45:39 +02:00
jkriege2
cffa7189d4 doc update 2022-08-21 21:34:05 +02:00
jkriege2
07d3fdcd99 JKQTMAthText: improvements in font handling and documentation 2022-08-21 14:49:48 +02:00
jkriege2
db81286452 added missing #include 2022-08-20 16:37:56 +02:00
jkriege2
528eec68d3 fixed non-existend std::make_unique() 2022-08-20 16:26:07 +02:00
jkriege2
6273e469cd BREAKING/REWORKED: Separated the LaTeX parser into JKQTMathTextLatexParser from JKQTMathText 2022-08-20 16:19:40 +02:00
jkriege2
5722970496 JKQTMathText:
- NEW: added environment-modifying commands for font sizes: \c \\tiny ... \c \\normalsize ... \c \\Huge
- NEW: added environment-modifying commands for text color: \c {\\color{COL}...}
- NEW: added environment-modifying commands for text formatting: \c {\\bfseries...}, \c {\\itshape...}, \c {\\bf...}, \c {\\it...}, \c {\\sffamily...}, \c {\\ttfamily...}, ...
- REFACTORING: split up several .h/.cpp-files in nodes subdirectory
2022-08-19 12:16:00 +02:00
jkriege2
dde8deb56f JKQTMathText: improved placement of sub-/superscript nodes by using JKQTMathtextNodeSize::baselineXCorrection to shift subscript to the left for e.g. preceding italic text or symbols that require such a shift
JKQTMathText: moved sub-/superscripts placed below/above a bit further apart from the central symbol/node
2022-08-17 22:56:57 +02:00
jkriege2
b5459a90d9 Merge branch 'master' of https://github.com/jkriege2/JKQtPlotter
# Conflicts:
#	lib/jkqtmathtext/jkqtmathtext.cpp
#	lib/jkqtmathtext/jkqtmathtext.h
2022-08-16 23:11:44 +02:00
jkriege2
6fa5dd65ed JKQTMathText: Code Cleanup: using JKQTMathTextNodeSize for all size-calculation functions and got rid of all functions that take the output parameters with call-by-reference
JKQTMathText: JKQTMathTextBraceNode now properly supports different opening and closing braces e.g. |...> for bra-vetors
2022-08-16 23:05:04 +02:00
jkriege2
74cf8046ce code cleanup: Removed Parameter prevNodeSize from JKQTMathTextNode::draw() and JKQTMathTextNode::getSize()/JKQTMathTextNode::getSizeInternal(), since it is only really necessary for JKQTMathTextSubscriptNode and JKQTMathTextSuperscriptNode
bugfixed possible crash in JKQTMathTextWhitespaceNode (QMap[n1]=QMap[n2]=something; does not work for some reason)
2022-08-14 16:59:03 +02:00