Commit Graph

217 Commits

Author SHA1 Message Date
jkriege2
fe6ac0e98e NEW added convenience functions JKQTMathTextNodeSize::getAscents() and JKQTMathTextNodeSize::getHeight() to JKQTMathTextNodeSize 2024-01-10 12:14:39 +01:00
jkriege2
f096aa9602 fixed several static code analysis warnings and security vulnerabilities 2024-01-10 10:35:43 +01:00
jkriege2
1b9d0506fd fix 2024-01-08 21:31:18 +01:00
jkriege2
dde0151cb6 fix typo 2024-01-08 21:13:00 +01:00
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
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
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
3bd49100fe doc-fix 2023-08-16 15:35:44 +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
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
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
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
75db7cff42 dox update/fix 2022-09-19 21:55:12 +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
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
e729ebbc78 docfix 2022-08-29 21:46:38 +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
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
jkriege2
e757e26503 JKQTMathText: ensure mini size of \left/\right braces, when contained text is very small, e.g. only lower-case
JKQTMathText: improve width-calculation of \left/\right braces
2022-08-13 21:56:09 +02:00
jkriege2
cfac5138b3 docfix 2022-08-13 19:47:35 +02:00
jkriege2
f83a3468b1 JKQTMathText:
- new options interface for JKQTMathText::parse()
  - breaking: removed JKQTMathtext::unparsedNode
  - several minor improvements
2022-08-13 19:43:39 +02:00
jkriege2
9819a8c4be new options interface for JKQTMathText::parse()
breaking: removed JKQTMathtext::unparsedNode
2022-08-13 15:32:31 +02:00
jkriege2
ce6637fb4b NEW: JKQTMathText::parse() by default allows linebreaks in the LaTeX string to be parsed. This can be switched off by a parameter
NEW: TabSize can be set in JKQTMathTextVerbatimNode
2022-08-13 14:36:49 +02:00
jkriege2
c58fc985ce JKQTMathText: optimized frac/sub/super spacing 2022-08-12 16:50:26 +02:00
jkriege2
04beafb1a6 JKQTMathText: text/narrow-math-operators have less space around the, 2022-08-12 13:28:34 +02:00
jkriege2
86ec545794 bug fixed 2022-08-12 13:04:26 +02:00
jkriege2
67579da1bc JKQTMathText: NEW: array/tabular-environments have limited support for formatting string like l|r|c and for \hline , \hdashline , \toprule , \midrule , \bottomrule 2022-08-12 12:54:10 +02:00
jkriege2
05d791502b fixed \min & \max + docfix 2022-08-11 15:22:48 +02:00
jkriege2
8876c361cf bugfix QSet <--> QList conversion + docfix 2022-08-11 15:12:11 +02:00
jkriege2
bfee90b4fe JKQTMathText: added long arrow symbols 2022-08-11 14:17:39 +02:00
jkriege2
331a67c5a8 JKQTMathText: added \c \\dashuline{X}, \c \\dotuline{X}, \c \\underleftarrow{X}, \c \\underrightarrow{X}, \c \\underleftrightarrow{X}, \c \\overleftarrow{X}, \c \\overrightarrow{X}, \c \\overleftrightarrow{X}
JKQTMathText: corrected linewidths for decorations
2022-08-11 14:17:04 +02:00