diff --git a/doc/dox/whatsnew.dox b/doc/dox/whatsnew.dox
index e86283718f..263280594a 100644
--- a/doc/dox/whatsnew.dox
+++ b/doc/dox/whatsnew.dox
@@ -25,6 +25,7 @@ Changes, compared to \ref page_whatsnew_V2019_11 "v2019.11" include:
removed/breaking change: removed the usage of some deprecated functions and objects (e.g. QMatrix)
removed/breaking change: removed the overlay elements (derived from JKQTPOverlayElement), which were not very well set up and are more confusing than useful.
improved/breaking change: geometric objects now use an adaptive drawing algorithm to represent curves (before e.g. ellipses were always separated into a fixed number of line-segments)
+ improved/breaking change: geometric elements constructor: removed all styling properties, added setStyle()-functions to replace them. This is necessary to better work with the extended Styling system
improved: constructors and access functions for several geometric objects (e.g. more constructors, additional functions to retrieve parameters in diferent forms, iterators for polygons, ...)
improved/breaking change: reworked class hierarchy of parsed function plots and declared several setters as slots.
improved/breaking change: reworked class hierarchy of bar & impulse charts.
@@ -34,6 +35,7 @@ Changes, compared to \ref page_whatsnew_V2019_11 "v2019.11" include:
improved/breaking change: reworked class hierarchy of range plot elements (JKQTPVerticalRange and JKQTPHorizontalRange).
improved/breaking change: reworked class hierarchy of boxplots.
improved/breaking change: reworked class hierarchy of violin plots.
+ improved/breaking change: extended styling system for graphs.
improved/breaking change: reworked graph Base-Classes (promoted several setters to slots, added Q_PROPERTY- and Q_ENUM-declarations...)
improved/breaking change: made more functions and function parameters const
bugfixed/improved: aspect ratio handling in JKQTPlotter.
diff --git a/examples/advplotstyling/advplotstyling.cpp b/examples/advplotstyling/advplotstyling.cpp
index cb3b753609..d64542da54 100644
--- a/examples/advplotstyling/advplotstyling.cpp
+++ b/examples/advplotstyling/advplotstyling.cpp
@@ -42,9 +42,12 @@ int main(int argc, char* argv[])
// 3. now we add three semi-transparent, filled curve plots, one for each histogram
JKQTPSpecialLineHorizontalGraph* graphF=new JKQTPSpecialLineHorizontalGraph(&plot);
JKQTPSpecialLineHorizontalGraph* graphF2=new JKQTPSpecialLineHorizontalGraph(&plot);
- JKQTPGeoLine* graphL1=new JKQTPGeoLine(&plot, 0, 3, 12, 3.5, Qt::red);
- JKQTPGeoLine* graphL2=new JKQTPGeoLine(&plot, 0, 3.8, 12, 4.5, Qt::red);
- JKQTPGeoLine* graphL3=new JKQTPGeoLine(&plot, 0, 4.6, 12, 5.5, Qt::red);
+ JKQTPGeoLine* graphL1=new JKQTPGeoLine(&plot, 0, 3, 12, 3.5);
+ graphL1->setColor(Qt::red);
+ JKQTPGeoLine* graphL2=new JKQTPGeoLine(&plot, 0, 3.8, 12, 4.5);
+ graphL2->setColor(Qt::red);
+ JKQTPGeoLine* graphL3=new JKQTPGeoLine(&plot, 0, 4.6, 12, 5.5);
+ graphL3->setColor(Qt::red);
JKQTPBarVerticalGraph* graphBE=new JKQTPBarVerticalGraph(&plot);
JKQTPBarVerticalGraph* graphBF=new JKQTPBarVerticalGraph(&plot);
diff --git a/examples/geo_arrows/README.md b/examples/geo_arrows/README.md
index 5fcb6877d0..b80a7a6a91 100644
--- a/examples/geo_arrows/README.md
+++ b/examples/geo_arrows/README.md
@@ -10,11 +10,16 @@ A first table shows all available arrow tips in different sizes.
```.cpp
for (size_t i=0; i(JKQTPLineDecoratorCount); i++) {
auto const decor=static_cast(i);
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.1, arr_y, 0.3, arr_y+0.05, QColor("red"), decor, JKQTPNoDecorator, 0.2));
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.4, arr_y, 0.6, arr_y+0.05, QColor("red"), decor, JKQTPNoDecorator, 0.5));
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.7, arr_y, 0.9, arr_y+0.05, QColor("red"), decor, JKQTPNoDecorator, 1));
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 1.0, arr_y, 1.3, arr_y+0.05, QColor("red"), decor, JKQTPNoDecorator, 2));
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 1.4, arr_y, 1.7, arr_y+0.05, QColor("red"), decor, JKQTPNoDecorator, 3));
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.1, arr_y, 0.3, arr_y+0.05, decor, JKQTPNoDecorator));
+ a->setStyle(QColor("red"), 0.2);
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.4, arr_y, 0.6, arr_y+0.05, decor, JKQTPNoDecorator));
+ a->setStyle(QColor("red"), 0.5);
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.7, arr_y, 0.9, arr_y+0.05, decor, JKQTPNoDecorator));
+ a->setStyle(QColor("red"), 1);
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 1.0, arr_y, 1.3, arr_y+0.05, decor, JKQTPNoDecorator));
+ a->setStyle(QColor("red"), 2);
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 1.4, arr_y, 1.7, arr_y+0.05, decor, JKQTPNoDecorator));
+ a->setStyle(QColor("red"), 3);
plot.addGraph(new JKQTPGeoText(&plot, a->getX2()+0.05, a->getY2(), "\\verb{"+JKQTPLineDecoratorStyle2String(decor)+"}", 12, a->getLineColor()));
arr_y+=arr_deltay;
}
@@ -44,7 +49,7 @@ Here is an example of how to actiavate them for a JKQTPGeoPolyLines:
```.cpp
QVector points; points<setHeadDecoratorStyle(JKQTPFilledDoubleArrow);
polyLine->setTailDecoratorStyle(JKQTPCircleDecorator);
plot.addGraph(polyLine);
@@ -57,7 +62,7 @@ Here is the result:
For the class JKQTPGeoInfiniteLine the start can be decorated with an arrow (only if two_sided==false!):
```.cpp
- JKQTPGeoInfiniteLine* infLine=new JKQTPGeoInfiniteLine(&plot, 1.5, 0.2, 1, 0.25, QColor("blue"), 2);
+ JKQTPGeoInfiniteLine* infLine=new JKQTPGeoInfiniteLine(&plot, 1.5, 0.2, 1, 0.25);
infLine->setHeadDecoratorStyle(JKQTPFilledDoubleArrow);
plot.addGraph(infLine);
```
diff --git a/examples/geo_arrows/geo_arrows.cpp b/examples/geo_arrows/geo_arrows.cpp
index 24d228881a..f03d712352 100644
--- a/examples/geo_arrows/geo_arrows.cpp
+++ b/examples/geo_arrows/geo_arrows.cpp
@@ -7,6 +7,7 @@
#include
#include "jkqtplotter/jkqtplotter.h"
#include "jkqtplotter/graphs/jkqtpgeometric.h"
+#include "jkqtplotter/graphs/jkqtpgeoannotations.h"
int main(int argc, char* argv[])
@@ -40,27 +41,33 @@ int main(int argc, char* argv[])
plot.addGraph(new JKQTPGeoText(&plot, 1.4, 3.0, "w_{line}=3", 12, QColor("darkred")));
for (size_t i=0; i(JKQTPLineDecoratorCount); i++) {
auto const decor=static_cast(i);
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.1, arr_y, 0.3, arr_y+0.05, QColor("red"), decor, JKQTPNoDecorator, 0.2));
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.4, arr_y, 0.6, arr_y+0.05, QColor("red"), decor, JKQTPNoDecorator, 0.5));
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.7, arr_y, 0.9, arr_y+0.05, QColor("red"), decor, JKQTPNoDecorator, 1));
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 1.0, arr_y, 1.3, arr_y+0.05, QColor("red"), decor, JKQTPNoDecorator, 2));
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 1.4, arr_y, 1.7, arr_y+0.05, QColor("red"), decor, JKQTPNoDecorator, 3));
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.1, arr_y, 0.3, arr_y+0.05, decor, JKQTPNoDecorator)); a->setStyle(QColor("red"), 0.2);
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.4, arr_y, 0.6, arr_y+0.05, decor, JKQTPNoDecorator)); a->setStyle(QColor("red"), 0.5);
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 0.7, arr_y, 0.9, arr_y+0.05, decor, JKQTPNoDecorator)); a->setStyle(QColor("red"), 1);
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 1.0, arr_y, 1.3, arr_y+0.05, decor, JKQTPNoDecorator)); a->setStyle(QColor("red"), 2);
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 1.4, arr_y, 1.7, arr_y+0.05, decor, JKQTPNoDecorator)); a->setStyle(QColor("red"), 3);
plot.addGraph(new JKQTPGeoText(&plot, a->getX2()+0.05, a->getY2(), "\\verb{"+JKQTPLineDecoratorStyle2String(decor)+"}", 12, a->getLineColor()));
arr_y+=arr_deltay;
}
// 3.2 note that all decorators are drawn in a way that lets them end at the intended end-point of the line, even circles!
for (size_t i=0; i<6; i++) {
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 3+static_cast(i)*0.15, 3, 3+static_cast(i)*0.15, 2.75, QColor("blue"), static_cast(i*4+1), static_cast(i*4+2), static_cast(i+1)*0.5));
- plot.addGraph(a=new JKQTPGeoArrow(&plot, 3+static_cast(i)*0.15, 2.5, 3+static_cast(i)*0.15, 2.75, QColor("red"), static_cast(i*4+3), static_cast(i*4+4), static_cast(i+1)*0.5));
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 3+static_cast(i)*0.15, 3, 3+static_cast(i)*0.15, 2.75, static_cast(i*4+1), static_cast(i*4+2))); a->setStyle(QColor("blue"), static_cast(i+1)*0.5);
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, 3+static_cast(i)*0.15, 2.5, 3+static_cast(i)*0.15, 2.75, static_cast(i*4+3), static_cast(i*4+4))); a->setStyle(QColor("red"), static_cast(i+1)*0.5);
}
- plot.addGraph(new JKQTPGeoLine(&plot, 2.9, 2.5, 4.0, 2.5, QColor("silver"), 0.25, Qt::DashLine));
- plot.addGraph(new JKQTPGeoLine(&plot, 2.9, 2.75, 4.0, 2.75, QColor("silver"), 0.25, Qt::DashLine));
- plot.addGraph(new JKQTPGeoLine(&plot, 2.9, 3, 4.6, 3, QColor("silver"), 0.25, Qt::DashLine));
+ JKQTPGeoLine* l;
+ plot.addGraph(l=new JKQTPGeoLine(&plot, 2.9, 2.5, 4.0, 2.5));
+ l->setStyle(QColor("silver"), 0.25, Qt::DashLine);
+ plot.addGraph(l=new JKQTPGeoLine(&plot, 2.9, 2.75, 4.0, 2.75));
+ l->setStyle(QColor("silver"), 0.25, Qt::DashLine);
+ plot.addGraph(l=new JKQTPGeoLine(&plot, 2.9, 3, 4.6, 3));
+ l->setStyle(QColor("silver"), 0.25, Qt::DashLine);
// 3.3 a JKQTPGeoLine with and without errow heads:
- JKQTPGeoLine* line=new JKQTPGeoLine(&plot, 2.9, 2.3, 3.6, 2.4, QColor("red"), 2.0);
- JKQTPGeoLine* line_heads=new JKQTPGeoLine(&plot, 2.9, 2.1, 3.6, 2.2, QColor("red"), 2.0);
+ JKQTPGeoLine* line=new JKQTPGeoLine(&plot, 2.9, 2.3, 3.6, 2.4);
+ line->setStyle(QColor("red"), 2.0);
+ JKQTPGeoLine* line_heads=new JKQTPGeoLine(&plot, 2.9, 2.1, 3.6, 2.2);
+ line_heads->setStyle(QColor("red"), 2.0);
line_heads->setHeadDecoratorStyle(JKQTPFilledDoubleArrow);
line_heads->setTailDecoratorStyle(JKQTPCircleDecorator);
plot.addGraph(line);
@@ -73,18 +80,21 @@ int main(int argc, char* argv[])
// 3.4 also the class JKQTPGeoPolyLines can decorate its start/end with arrows
QVector points; points<setColor(QColor("blue"));
polyLine->setHeadDecoratorStyle(JKQTPFilledDoubleArrow);
polyLine->setTailDecoratorStyle(JKQTPCircleDecorator);
plot.addGraph(polyLine);
// 3.5 also the class JKQTPGeoInfiniteLine can decorate its start with arrows (only if two_sided==false!)
- JKQTPGeoInfiniteLine* infLine=new JKQTPGeoInfiniteLine(&plot, 3.5, 0.2, 1, 0.25, QColor("blue"), 2);
+ JKQTPGeoInfiniteLine* infLine=new JKQTPGeoInfiniteLine(&plot, 3.5, 0.2, 1, 0.25);
+ infLine->setStyle(QColor("blue"), 2);
infLine->setHeadDecoratorStyle(JKQTPFilledDoubleArrow);
plot.addGraph(infLine);
plot.addGraph(new JKQTPGeoSymbol(&plot, infLine->getX(), infLine->getY(), JKQTPCirclePlus, 8, QColor("silver")));
- plot.addGraph(new JKQTPGeoArrow(&plot, infLine->getX(), infLine->getY(), infLine->getX()+infLine->getDx(), infLine->getY()+infLine->getDy(), QColor("silver"), JKQTPArrow, JKQTPNoDecorator, 1));
+ plot.addGraph(a=new JKQTPGeoArrow(&plot, infLine->getX(), infLine->getY(), infLine->getX()+infLine->getDx(), infLine->getY()+infLine->getDy(), JKQTPArrow, JKQTPNoDecorator));
+ infLine->setStyle(QColor("silver"), 1);
/*
infLine=new JKQTPGeoInfiniteLine(&plot, 3.5, 0.1, -1, 0.25, QColor("darkblue"), 2);
infLine->setHeadDecoratorStyle(JKQTPFilledDoubleArrow);
diff --git a/examples/geo_simple/geo_simple.cpp b/examples/geo_simple/geo_simple.cpp
index 4e2d2ca7f3..5768deddd4 100644
--- a/examples/geo_simple/geo_simple.cpp
+++ b/examples/geo_simple/geo_simple.cpp
@@ -12,21 +12,35 @@
template
void drawExample(JKQTPlotter* plot, double x0, double y0, double wid, double heig, double angleStart, double angleStop) {
- plot->addGraph(new JKQTPGeoRectangle(plot,x0, y0, wid, heig, QColor("orange"), 1, Qt::PenStyle::DashLine));
- plot->addGraph(new JKQTPGeoEllipse(plot,x0, y0, wid, heig, QColor("orange"), 1, Qt::PenStyle::DashLine));
+ JKQTPGeoRectangle* rect;
+ plot->addGraph(rect=new JKQTPGeoRectangle(plot,x0, y0, wid, heig));
+ rect->setLineColor(QColor("orange"));
+ rect->setLineStyle(Qt::PenStyle::DashLine);
+ rect->setFillColor(Qt::transparent);
+ rect->setLineWidth(1);
+ JKQTPGeoEllipse* ell;
+ plot->addGraph(ell=new JKQTPGeoEllipse(plot,x0, y0, wid, heig));
+ ell->setLineColor(QColor("orange"));
+ ell->setLineStyle(Qt::PenStyle::DashLine);
+ ell->setFillColor(Qt::transparent);
+ ell->setLineWidth(1);
TELLIPSEPART* obj;
- plot->addGraph(obj=new TELLIPSEPART(plot,x0, y0, wid, heig, 10, angleStop , QColor("blue"), 4, Qt::PenStyle::SolidLine));
+ plot->addGraph(obj=new TELLIPSEPART(plot,x0, y0, wid, heig, 10, angleStop));
+ obj->setLineColor(QColor("blue"));
+ obj->setLineStyle(Qt::PenStyle::SolidLine);
+ obj->setLineWidth(4);
JKQTPGeoBaseFilled* fillobj=dynamic_cast(obj);
if (fillobj) {
fillobj->setFillColor(QColor("lightblue"));
fillobj->setAlpha(0.8);
}
+ JKQTPGeoLine* l;
plot->addGraph(new JKQTPGeoSymbol(plot, x0, y0, JKQTPCircle, 5, QColor("red")));
- plot->addGraph(new JKQTPGeoLine(plot, x0, y0, x0+wid/2.0*cos(angleStart/180.0*JKQTPSTATISTICS_PI),y0+heig/2.0*sin(angleStart/180.0*JKQTPSTATISTICS_PI), QColor("orange")));
+ plot->addGraph(l=new JKQTPGeoLine(plot, x0, y0, x0+wid/2.0*cos(angleStart/180.0*JKQTPSTATISTICS_PI),y0+heig/2.0*sin(angleStart/180.0*JKQTPSTATISTICS_PI))); l->setColor(QColor("orange"));
plot->addGraph(new JKQTPGeoText(plot, x0+wid*1.1/2.0*cos(angleStart/180.0*JKQTPSTATISTICS_PI),y0+heig*1.1/2.0*sin(angleStart/180.0*JKQTPSTATISTICS_PI), "\\alpha_\\text{start}="+QString::number(angleStart, 'f', 0)+"\\degree", 10, QColor("orange")));
- plot->addGraph(new JKQTPGeoLine(plot, x0, y0, x0+wid/2.0*cos(angleStop/180.0*JKQTPSTATISTICS_PI),y0+heig/2.0*sin(angleStop/180.0*JKQTPSTATISTICS_PI), QColor("red")));
+ plot->addGraph(new JKQTPGeoLine(plot, x0, y0, x0+wid/2.0*cos(angleStop/180.0*JKQTPSTATISTICS_PI),y0+heig/2.0*sin(angleStop/180.0*JKQTPSTATISTICS_PI))); l->setColor(QColor("red"));
plot->addGraph(new JKQTPGeoText(plot, x0+wid*1.1/2.0*cos(angleStop/180.0*JKQTPSTATISTICS_PI),y0+heig*1.1/2.0*sin(angleStop/180.0*JKQTPSTATISTICS_PI), "\\alpha_\\text{stop}="+QString::number(angleStop, 'f', 0)+"\\degree", 10, QColor("red")));
- plot->addGraph(new JKQTPGeoLine(plot, x0, y0, x0+wid/2.0*cos(0/180.0*JKQTPSTATISTICS_PI),y0+heig/2.0*sin(0/180.0*JKQTPSTATISTICS_PI), QColor("orange")));
+ plot->addGraph(new JKQTPGeoLine(plot, x0, y0, x0+wid/2.0*cos(0/180.0*JKQTPSTATISTICS_PI),y0+heig/2.0*sin(0/180.0*JKQTPSTATISTICS_PI)));l->setColor(QColor("orange"));
plot->addGraph(new JKQTPGeoText(plot, x0+wid*1.1/2.0*cos(0/180.0*JKQTPSTATISTICS_PI),y0+heig*1.1/2.0*sin(0/180.0*JKQTPSTATISTICS_PI), "0\\degree", 10, QColor("orange")));
plot->addGraph(new JKQTPGeoText(plot, x0,y0-0.05*heig, "(x,y)", 10, QColor("red")));
plot->addGraph(new JKQTPGeoText(plot, x0,y0-heig*1.1/2.0, "width="+QString::number(wid, 'f', 1), 10, QColor("red")));
@@ -38,10 +52,18 @@ void drawExample(JKQTPlotter* plot, double x0, double y0, double wid, double hei
void drawEllExample(JKQTPlotter* plot, double x0, double y0, double wid, double heig, double angle=0) {
JKQTPGeoRectangle* rec;
- plot->addGraph(rec=new JKQTPGeoRectangle(plot,x0, y0, wid, heig, QColor("orange"), 1, Qt::PenStyle::DashLine));
+ plot->addGraph(rec=new JKQTPGeoRectangle(plot,x0, y0, wid, heig));
rec->setAngle(angle);
+ rec->setLineColor(QColor("orange"));
+ rec->setLineStyle(Qt::PenStyle::DashLine);
+ rec->setFillColor(Qt::transparent);
+ rec->setLineWidth(1);
JKQTPGeoEllipse* fillobj;
- plot->addGraph(fillobj=new JKQTPGeoEllipse(plot,x0, y0, wid, heig, QColor("blue"), 1, Qt::PenStyle::DashLine));
+ plot->addGraph(fillobj=new JKQTPGeoEllipse(plot,x0, y0, wid, heig));
+ fillobj->setLineColor(QColor("blue"));
+ fillobj->setLineStyle(Qt::PenStyle::DashLine);
+ fillobj->setFillColor(Qt::transparent);
+ fillobj->setLineWidth(1);
fillobj->setFillColor(QColor("lightblue"));
fillobj->setAlpha(0.8);
fillobj->setAngle(angle);
@@ -51,9 +73,10 @@ void drawEllExample(JKQTPlotter* plot, double x0, double y0, double wid, double
plot->addGraph(new JKQTPGeoText(plot, x0,y0-heig*1.1/2.0, "width="+QString::number(wid, 'f', 1), 10, QColor("red")));
plot->addGraph(new JKQTPGeoText(plot, x0-wid*1.05/2.0,y0, "height="+QString::number(heig, 'f', 1), 10, QColor("red")));
} else {
- plot->addGraph(new JKQTPGeoLine(plot, x0, y0, x0+wid/2.0*cos(angle/180.0*JKQTPSTATISTICS_PI),y0+heig/2.0*sin(angle/180.0*JKQTPSTATISTICS_PI), QColor("red")));
+ JKQTPGeoLine* l;
+ plot->addGraph(l=new JKQTPGeoLine(plot, x0, y0, x0+wid/2.0*cos(angle/180.0*JKQTPSTATISTICS_PI),y0+heig/2.0*sin(angle/180.0*JKQTPSTATISTICS_PI))); l->setColor( QColor("red"));
plot->addGraph(new JKQTPGeoText(plot, x0+wid*1.1/2.0*cos(angle/180.0*JKQTPSTATISTICS_PI),y0+heig*1.1/2.0*sin(angle/180.0*JKQTPSTATISTICS_PI), "\\alpha="+QString::number(angle, 'f', 0)+"\\degree", 10, QColor("red")));
- plot->addGraph(new JKQTPGeoLine(plot, x0, y0, x0+wid/2.0*cos(0/180.0*JKQTPSTATISTICS_PI),y0+heig/2.0*sin(0/180.0*JKQTPSTATISTICS_PI), QColor("orange")));
+ plot->addGraph(l=new JKQTPGeoLine(plot, x0, y0, x0+wid/2.0*cos(0/180.0*JKQTPSTATISTICS_PI),y0+heig/2.0*sin(0/180.0*JKQTPSTATISTICS_PI))); l->setColor( QColor("orange"));
plot->addGraph(new JKQTPGeoText(plot, x0+wid*1.1/2.0*cos(0/180.0*JKQTPSTATISTICS_PI),y0+heig*1.1/2.0*sin(0/180.0*JKQTPSTATISTICS_PI), "0\\degree", 10, QColor("orange")));
}
diff --git a/examples/geometric/README.md b/examples/geometric/README.md
index b839e98477..442d5ffbda 100644
--- a/examples/geometric/README.md
+++ b/examples/geometric/README.md
@@ -14,14 +14,17 @@ The source code of the main application can be found in [`geometric.cpp`](https
// a line
- plot->addGraph(new JKQTPGeoLine(plot, 1, 0.05, 1.9, 0.9, QColor("red"), 2));
+ JKQTPGeoLine* l;
+ plot->addGraph(l=new JKQTPGeoLine(plot, 1, 0.05, 1.9, 0.9));
+ l->setStyle(QColor("red"), 2));
// an arrow
- plot->addGraph(new JKQTPGeoArrow(plot, 0.4, 2.5, 0.4, 2.65, QColor("green"), JKQTPArrowAndStop, JKQTPFilledArrow, 1));
+ plot->addGraph(new JKQTPGeoArrow(plot, 0.4, 2.5, 0.4, 2.65, JKQTPArrowAndStop, JKQTPFilledArrow));
// a one-sided infinite line with slope dy/dx=0.25/0.2
- JKQTPGeoInfiniteLine* infLine=new JKQTPGeoInfiniteLine(plot, 1.7, 0.2, 0.2, 0.25, QColor("green"), 1.5, Qt::PenStyle::DashLine);
+ JKQTPGeoInfiniteLine* infLine=new JKQTPGeoInfiniteLine(plot, 1.7, 0.2, 0.2, 0.25);
+ infLine->setStyle(QColor("green"), 1.5, Qt::PenStyle::DashLine);
infLine->setTwoSided(false);
infLine->setAlpha(0.5);
plot->addGraph(infLine);
@@ -30,24 +33,35 @@ The source code of the main application can be found in [`geometric.cpp`](https
// a polyline
QVector p;
p<addGraph(new JKQTPGeoPolyLines(plot, p, QColor("darkgreen"), 4, Qt::PenStyle::DashDotLine));
+ JKQTPGeoPolyLines* poly;
+ plot->addGraph(poly=new JKQTPGeoPolyLines(plot, p));
+ poly->setStyleTransparentFill(QColor("darkgreen"), 4, Qt::PenStyle::DashDotLine);
// rectangle:
- plot->addGraph(new JKQTPGeoRectangle(plot, QPointF(0.4,1.3), QPointF(0.9,1.6), QColor("blue"), 1, Qt::SolidLine, rfill));
+ JKQTPGeoRectangle* rec;
+ plot->addGraph(rec=new JKQTPGeoRectangle(plot, QPointF(0.4,1.3), QPointF(0.9,1.6)));
+ rec->setStyle(QColor("blue"), 1, Qt::SolidLine, rfill, Qt::SolidPattern);
// a rotated rectangle (rotated by 35 degrees):
- plot->addGraph(new JKQTPGeoRectangle(plot, 0.5,1.5,0.8,0.5, 35, QColor("darkblue"), 2, Qt::DashLine));
+ plot->addGraph(rec=new JKQTPGeoRectangle(plot, 0.5,1.5,0.8,0.5));
+ rec->setStyleTransparentFill(QColor("darkblue"), 2, Qt::DashLine);
+ rec->setAngle(35);
// ellipse:
- plot->addGraph(new JKQTPGeoEllipse(plot, QPointF(0.4,1.3), QPointF(0.9,1.6), QColor("blue"), 1, Qt::SolidLine, rfill));
- // a rotated ellipse (rotated by 35 degrees):
- plot->addGraph(new JKQTPGeoEllipse(plot, 0.5,1.5,0.8,0.5, 35, QColor("darkblue"), 2, Qt::DashLine));
+ JKQTPGeoEllipse* ell;
+ plot->addGraph(ell=new JKQTPGeoEllipse(plot, QPointF(0.4,1.3), QPointF(0.9,1.6)));
+ ell->setStyle(QColor("blue"), 1, Qt::SolidLine, rfill, Qt::SolidPattern);
+ // a rotated rectangle (rotated by 35 degrees):
+ plot->addGraph(ell=new JKQTPGeoEllipse(plot, 0.5,1.5,0.8,0.5));
+ ell->setStyleTransparentFill(QColor("darkblue"), 2, Qt::DashLine);
+ ell->setAngle(35);
// a polygon
- JKQTPGeoPolygon* polygongraph=new JKQTPGeoPolygon(plot, QColor("red"), 2, Qt::PenStyle::DashLine, QColor("salmon"));
+ JKQTPGeoPolygon* polygongraph=new JKQTPGeoPolygon(plot);
+ polygongraph->setStyle(QColor("red"), 2, Qt::PenStyle::DashLine, QColor("salmon"), Qt::SolidPattern);
polygongraph->appendPoint(2.1, 0.5);
polygongraph->appendPoint(2.9, 0.9);
polygongraph->appendPoint(2.2, 0.8);
@@ -59,15 +73,15 @@ The source code of the main application can be found in [`geometric.cpp`](https
// an arc from an ellipse from -10 degrees to 117 degrees, centered at 2.5,1.5 and full axes of 0.5 and 0.5
- plot->addGraph(new JKQTPGeoArc(plot,2.5,1.5,0.5,0.5, -10, 117 , QColor("orange"), 4, Qt::PenStyle::DashLine));
+ plot->addGraph(new JKQTPGeoArc(plot,2.5,1.5,0.5,0.5, -10, 117 ));
// a pie centered at 2.5,2.5 with ellipse axes 0.9 and 0.9 and from angle 0 degrees to 90 degrees
- plot->addGraph(new JKQTPGeoPie(plot,2.5,2.5,0.9,0.9, 0, 90 , QColor("blue"), 4, Qt::PenStyle::SolidLine,QColor("lightblue")));
+ plot->addGraph(new JKQTPGeoPie(plot,2.5,2.5,0.9,0.9, 0, 90));
// a chord centered at 2.5,2.5 with ellipse axes 0.9 and 0.9 and from angle 0 degrees to 90 degrees
- plot->addGraph(new JKQTPGeoChord(plot,2.5,2.5,0.9,0.9, 0, 90 , QColor("blue"), 4, Qt::PenStyle::SolidLine,QColor("lightblue")));
+ plot->addGraph(new JKQTPGeoChord(plot,2.5,2.5,0.9,0.9, 0, 90));
```
diff --git a/examples/geometric/geometric.cpp b/examples/geometric/geometric.cpp
index eba52b029d..a8d0b59824 100644
--- a/examples/geometric/geometric.cpp
+++ b/examples/geometric/geometric.cpp
@@ -85,45 +85,57 @@ int main(int argc, char* argv[])
// 3.2 some lines elements (single lines)
plot->addGraph(new JKQTPGeoText(plot, 1.1,0.95, "\\textbf{Lines:}", 14, QColor("red")));
- plot->addGraph(new JKQTPGeoLine(plot, 1, 0.05, 1.9, 0.9, QColor("red"), 2));
- plot->addGraph(new JKQTPGeoLine(plot, 1, 0.1, 1.9, 0.8, QColor("blue"), 1, Qt::PenStyle::DashLine));
- JKQTPGeoInfiniteLine* infLine=new JKQTPGeoInfiniteLine(plot, 1.7, 0.2, 0.2, 0.25, QColor("green"), 1.5, Qt::PenStyle::DashLine);
+ JKQTPGeoLine* l;
+ plot->addGraph(l=new JKQTPGeoLine(plot, 1, 0.05, 1.9, 0.9)); l->setStyle(QColor("red"), 2);
+ plot->addGraph(l=new JKQTPGeoLine(plot, 1, 0.1, 1.9, 0.8)); l->setStyle(QColor("blue"), 1, Qt::PenStyle::DashLine);
+ JKQTPGeoInfiniteLine* infLine=new JKQTPGeoInfiniteLine(plot, 1.7, 0.2, 0.2, 0.25);
+ infLine->setStyle(QColor("green"), 1.5, Qt::PenStyle::DashLine);
infLine->setTwoSided(false);
infLine->setAlpha(0.5);
plot->addGraph(infLine);
- infLine=new JKQTPGeoInfiniteLine(plot, 1.7, 0.2, 0.2, -0.15, QColor("blue"), 1.5, Qt::PenStyle::SolidLine);
+ infLine=new JKQTPGeoInfiniteLine(plot, 1.7, 0.2, 0.2, -0.15);
+ infLine->setStyle(QColor("blue"), 1.5, Qt::PenStyle::SolidLine);
infLine->setTwoSided(true);
infLine->setAlpha(0.5);
plot->addGraph(infLine);
// 3.3 some arrows
plot->addGraph(new JKQTPGeoText(plot, 0.1,2.95, "\\textbf{Arrows:}", 14, QColor("red")));
+ JKQTPGeoArrow* a;
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.3, 2.1, 0.1, 2.9, JKQTPTriangleDecoratorAndBar, JKQTPDiamondDecoratorAndBar)); a->setStyle(QColor("green"), 1);
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.2, 2.1, 0.2, 2.9, JKQTPNoDecorator, JKQTPFilledTriangleDecoratorAndBar)); a->setStyle(QColor("blue"), 2);
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.1, 2.1, 0.3, 2.9, JKQTPDoubleArrowAndBar, JKQTPNoDecorator)); a->setStyle(QColor("orange"), 3);
- plot->addGraph(new JKQTPGeoArrow(plot, 0.3, 2.1, 0.1, 2.9, QColor("green"), JKQTPTriangleDecoratorAndBar, JKQTPDiamondDecoratorAndBar, 1));
- plot->addGraph(new JKQTPGeoArrow(plot, 0.2, 2.1, 0.2, 2.9, QColor("blue"), JKQTPNoDecorator, JKQTPFilledTriangleDecoratorAndBar, 2));
- plot->addGraph(new JKQTPGeoArrow(plot, 0.1, 2.1, 0.3, 2.9, QColor("orange"), JKQTPDoubleArrowAndBar, JKQTPNoDecorator, 3));
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.6, 2.1, 0.4, 2.9, JKQTPTriangleDecorator, JKQTPTriangleDecorator)); a->setStyle(QColor("green"), 0.5);
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.5, 2.1, 0.5, 2.9, JKQTPNoDecorator, JKQTPFilledArrow)); a->setStyle(QColor("blue"), 2);
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.4, 2.1, 0.6, 2.9, JKQTPFilledArrow, JKQTPNoDecorator)); a->setStyle(QColor("orange"), 1);
- plot->addGraph(new JKQTPGeoArrow(plot, 0.6, 2.1, 0.4, 2.9, QColor("green"), JKQTPTriangleDecorator, JKQTPTriangleDecorator, 0.5));
- plot->addGraph(new JKQTPGeoArrow(plot, 0.5, 2.1, 0.5, 2.9, QColor("blue"), JKQTPNoDecorator, JKQTPFilledArrow, 2));
- plot->addGraph(new JKQTPGeoArrow(plot, 0.4, 2.1, 0.6, 2.9, QColor("orange"), JKQTPFilledArrow, JKQTPNoDecorator, 1));
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.7, 2.1, 0.7, 2.5, JKQTPArrowAndBar, JKQTPFilledArrow)); a->setStyle(QColor("green"), 0.5);
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.8, 2.1, 0.8, 2.5, JKQTPArrowAndBar, JKQTPFilledArrow)); a->setStyle(QColor("orange"), 1);
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.9, 2.1, 0.9, 2.5, JKQTPArrowAndBar, JKQTPFilledArrow)); a->setStyle(QColor("orange"), 2);
- plot->addGraph(new JKQTPGeoArrow(plot, 0.7, 2.1, 0.7, 2.5, QColor("green"), JKQTPArrowAndBar, JKQTPFilledArrow, 0.5));
- plot->addGraph(new JKQTPGeoArrow(plot, 0.8, 2.1, 0.8, 2.5, QColor("orange"), JKQTPArrowAndBar, JKQTPFilledArrow, 1));
- plot->addGraph(new JKQTPGeoArrow(plot, 0.9, 2.1, 0.9, 2.5, QColor("orange"), JKQTPArrowAndBar, JKQTPFilledArrow, 2));
-
- plot->addGraph(new JKQTPGeoArrow(plot, 0.7, 2.7, 0.7, 2.9, QColor("green"), JKQTPTriangleDecoratorAndBar, JKQTPFilledCircleDecorator, 0.5));
- plot->addGraph(new JKQTPGeoArrow(plot, 0.8, 2.7, 0.8, 2.9, QColor("orange"), JKQTPTriangleDecoratorAndBar, JKQTPFilledCircleDecorator, 1));
- plot->addGraph(new JKQTPGeoArrow(plot, 0.9, 2.7, 0.9, 2.9, QColor("orange"), JKQTPTriangleDecoratorAndBar, JKQTPFilledCircleDecorator, 2));
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.7, 2.7, 0.7, 2.9, JKQTPTriangleDecoratorAndBar, JKQTPFilledCircleDecorator)); a->setStyle(QColor("green"), 0.5);
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.8, 2.7, 0.8, 2.9, JKQTPTriangleDecoratorAndBar, JKQTPFilledCircleDecorator)); a->setStyle(QColor("orange"), 1);
+ plot->addGraph(a=new JKQTPGeoArrow(plot, 0.9, 2.7, 0.9, 2.9, JKQTPTriangleDecoratorAndBar, JKQTPFilledCircleDecorator)); a->setStyle(QColor("orange"), 2);
// 3.4 some rectangles (you give the center and width/height of the rectangle in the contructor)
plot->addGraph(new JKQTPGeoText(plot, 0.1,1.95, "\\textbf{Rectangles:}", 14, QColor("red")));
- plot->addGraph(new JKQTPGeoRectangle(plot, 0.5,1.5,0.8,0.8, QColor("blue"), 1, Qt::SolidLine, QColor("lightblue")));
+ JKQTPGeoBaseFilled* geo;
+ JKQTPGeoRectangle* rec;
+ plot->addGraph(geo=new JKQTPGeoRectangle(plot, 0.5,1.5,0.8,0.8));
+ geo->setStyle(QColor("blue"), 1, Qt::SolidLine, QColor("lightblue"), Qt::SolidPattern);
QColor rfill("lightblue"); rfill.setAlphaF(0.5);
- plot->addGraph(new JKQTPGeoRectangle(plot, QPointF(0.4,1.3), QPointF(0.9,1.6), QColor("blue"), 1, Qt::SolidLine, rfill));
- plot->addGraph(new JKQTPGeoRectangle(plot, 0.5,1.5,0.8,0.5, 35, QColor("darkblue"), 2, Qt::DashLine));
- plot->addGraph(new JKQTPGeoRectangle(plot, 0.5,1.5,0.6,0.6, -7, QColor("orange"), 2, Qt::DotLine, QColor("salmon"), Qt::FDiagPattern));
+ plot->addGraph(geo=new JKQTPGeoRectangle(plot, QPointF(0.4,1.3), QPointF(0.9,1.6)));
+ geo->setStyle(QColor("blue"), 1, Qt::SolidLine, rfill, Qt::SolidPattern);
+ plot->addGraph(rec=new JKQTPGeoRectangle(plot, 0.5,1.5,0.8,0.5));
+ rec->setStyle(QColor("darkblue"), 2, Qt::DashLine);
+ rec->setAngle(35);
+
+ plot->addGraph(rec=new JKQTPGeoRectangle(plot, 0.5,1.5,0.6,0.6));
+ rec->setStyle(QColor("orange"), 2, Qt::DotLine, QColor("salmon"), Qt::FDiagPattern);
+ rec->setAngle(-7);
plot->addGraph(new JKQTPGeoSymbol(plot, 0.5,1.5, JKQTPCircle, 5, QColor("grey")));
plot->addGraph(new JKQTPGeoSymbol(plot, 0.4,1.3, JKQTPCircle, 5, QColor("grey")));
plot->addGraph(new JKQTPGeoSymbol(plot, 0.9,1.6, JKQTPCircle, 5, QColor("grey")));
@@ -132,21 +144,33 @@ int main(int argc, char* argv[])
// 3.5 some circles and elllipses
plot->addGraph(new JKQTPGeoText(plot, 1.1,1.95, "\\textbf{Circles/Ellipses:}", 14, QColor("red")));
QColor col=QColor("blue"); col.setAlphaF(0.2);
- plot->addGraph(new JKQTPGeoRectangle(plot, 1.5,1.5,0.8,0.8, col, 0.5, Qt::SolidLine));
+ plot->addGraph(geo=new JKQTPGeoRectangle(plot, 1.5,1.5,0.8,0.8));
+ geo->setStyleTransparentFill(col, 0.5, Qt::SolidLine);
col.setAlphaF(1);
- plot->addGraph(new JKQTPGeoEllipse(plot, 1.5,1.5,0.8,0.8, col, 1, Qt::SolidLine, QColor("lightblue")));
+ plot->addGraph(geo=new JKQTPGeoEllipse(plot, 1.5,1.5,0.8,0.8));
+ geo->setStyle(col, 1, Qt::SolidLine, QColor("lightblue"), Qt::SolidPattern);
col=QColor("blue"); col.setAlphaF(0.2);
- plot->addGraph(new JKQTPGeoRectangle(plot, QPointF(1.4,1.3), QPointF(1.9,1.6),col, 0.5, Qt::SolidLine));
+ plot->addGraph(geo=new JKQTPGeoRectangle(plot, QPointF(1.4,1.3), QPointF(1.9,1.6)));
+ geo->setStyleTransparentFill(col, 0.5, Qt::SolidLine);
col.setAlphaF(1);
- plot->addGraph(new JKQTPGeoEllipse(plot, QPointF(1.4,1.3), QPointF(1.9,1.6), col, 1, Qt::SolidLine, rfill));
+ plot->addGraph(geo=new JKQTPGeoEllipse(plot, QPointF(1.4,1.3), QPointF(1.9,1.6)));
+ geo->setStyle(col, 1, Qt::SolidLine, rfill, Qt::SolidPattern);
col=QColor("darkblue"); col.setAlphaF(0.2);
- plot->addGraph(new JKQTPGeoRectangle(plot, 1.5,1.5,0.8,0.5, 35, col, 0.5, Qt::DashLine));
+ plot->addGraph(rec=new JKQTPGeoRectangle(plot, 1.5,1.5,0.8,0.5));
+ rec->setStyleTransparentFill(col, 0.5, Qt::DashLine);
+ rec->setAngle(35);
col.setAlphaF(1);
- plot->addGraph(new JKQTPGeoEllipse(plot, 1.5,1.5,0.8,0.5, 35, col, 2, Qt::DashLine));
+ plot->addGraph(rec=new JKQTPGeoEllipse(plot, 1.5,1.5,0.8,0.5));
+ rec->setStyleTransparentFill(col, 2, Qt::DashLine);
+ rec->setAngle(35);
col=QColor("orange"); col.setAlphaF(0.2);
- plot->addGraph(new JKQTPGeoRectangle(plot, 1.5,1.5,0.6,0.6, -7, col, 0.5, Qt::DotLine));
+ plot->addGraph(rec=new JKQTPGeoRectangle(plot, 1.5,1.5,0.6,0.6));
+ rec->setStyleTransparentFill(col, 0.5, Qt::DotLine);
+ rec->setAngle(-7);
col.setAlphaF(1);
- plot->addGraph(new JKQTPGeoEllipse(plot, 1.5,1.5,0.6,0.6, -7, col, 2, Qt::DotLine, QColor("salmon"), Qt::FDiagPattern));
+ plot->addGraph(rec=new JKQTPGeoEllipse(plot, 1.5,1.5,0.6,0.6));
+ rec->setStyle(col, 2, Qt::DotLine, QColor("salmon"), Qt::FDiagPattern);
+ rec->setAngle(-7);
plot->addGraph(new JKQTPGeoSymbol(plot, 1.5,1.5, JKQTPCircle, 5, QColor("grey")));
plot->addGraph(new JKQTPGeoSymbol(plot, 1.4,1.3, JKQTPCircle, 5, QColor("grey")));
plot->addGraph(new JKQTPGeoSymbol(plot, 1.9,1.6, JKQTPCircle, 5, QColor("grey")));
@@ -156,10 +180,12 @@ int main(int argc, char* argv[])
plot->addGraph(new JKQTPGeoText(plot, 2.1,0.95, "\\textbf{PolyLines/Polygons:}", 14, QColor("red")));
QVector polygon;
polygon<setStyle(QColor("blue"), 2, Qt::PenStyle::DashLine, QColor("lightblue"), Qt::SolidPattern);
polygraph->setAlpha(0.75);
plot->addGraph(polygraph);
- polygraph=new JKQTPGeoPolygon(plot, QColor("red"), 2, Qt::PenStyle::DashLine, QColor("salmon"));
+ polygraph=new JKQTPGeoPolygon(plot);
+ polygraph->setStyle(QColor("red"), 2, Qt::PenStyle::DashLine, QColor("salmon"), Qt::SolidPattern);
polygraph->appendPoint(2.1, 0.5);
polygraph->appendPoint(2.9, 0.9);
polygraph->appendPoint(2.2, 0.8);
@@ -172,45 +198,59 @@ int main(int argc, char* argv[])
// 3.7 a poly-line element
QVector p;
p<addGraph(new JKQTPGeoPolyLines(plot, p, QColor("darkgreen"), 4, Qt::PenStyle::DashDotLine));
+ JKQTPGeoPolyLines* poly;
+ plot->addGraph(poly=new JKQTPGeoPolyLines(plot, p));
+ poly->setStyle(QColor("darkgreen"), 4, Qt::PenStyle::DashDotLine);
// 3.8 some arcs
plot->addGraph(new JKQTPGeoText(plot, 2.1,1.95, "\\textbf{Arcs:}", 14, QColor("red")));
- plot->addGraph(new JKQTPGeoRectangle(plot, 2.5,1.5,0.9,0.9, QColor("lightgrey"), 0.5, Qt::SolidLine));
- plot->addGraph(new JKQTPGeoArc(plot,2.5,1.5,0.9,0.9, 0, 90 , QColor("blue"), 4, Qt::PenStyle::SolidLine));
- plot->addGraph(new JKQTPGeoArc(plot,2.5,1.5,0.8,0.8, 90,180 , QColor("red"), 4, Qt::PenStyle::SolidLine));
- plot->addGraph(new JKQTPGeoArc(plot,2.5,1.5,0.7,0.7, 180,270 , QColor("darkblue"), 4, Qt::PenStyle::SolidLine));
- plot->addGraph(new JKQTPGeoArc(plot,2.5,1.5,0.6,0.6, 270,360 , QColor("maroon"), 4, Qt::PenStyle::DashDotLine));
- plot->addGraph(new JKQTPGeoArc(plot,2.5,1.5,0.5,0.5, -10, 117 , QColor("orange"), 4, Qt::PenStyle::DashLine));
- plot->addGraph(new JKQTPGeoArc(plot,2.5,1.5,0.4,0.4, 85, 347 , QColor("darkgreen"), 4, Qt::PenStyle::SolidLine));
+ plot->addGraph(rec=new JKQTPGeoRectangle(plot, 2.5,1.5,0.9,0.9));
+ rec->setStyleTransparentFill(QColor("lightgrey"), 0.5, Qt::SolidLine);
+ JKQTPGeoArc* arc;
+ plot->addGraph(arc=new JKQTPGeoArc(plot,2.5,1.5,0.9,0.9, 0, 90)); arc->setStyle(QColor("blue"), 4, Qt::PenStyle::SolidLine);
+ plot->addGraph(arc=new JKQTPGeoArc(plot,2.5,1.5,0.8,0.8, 90,180)); arc->setStyle(QColor("red"), 4, Qt::PenStyle::SolidLine);
+ plot->addGraph(arc=new JKQTPGeoArc(plot,2.5,1.5,0.7,0.7, 180,270)); arc->setStyle( QColor("darkblue"), 4, Qt::PenStyle::SolidLine);
+ plot->addGraph(arc=new JKQTPGeoArc(plot,2.5,1.5,0.6,0.6, 270,360)); arc->setStyle(QColor("maroon"), 4, Qt::PenStyle::DashDotLine);
+ plot->addGraph(arc=new JKQTPGeoArc(plot,2.5,1.5,0.5,0.5, -10, 117)); arc->setStyle(QColor("orange"), 4, Qt::PenStyle::DashLine);
+ plot->addGraph(arc=new JKQTPGeoArc(plot,2.5,1.5,0.4,0.4, 85, 347)); arc->setStyle(QColor("darkgreen"), 4, Qt::PenStyle::SolidLine);
plot->addGraph(new JKQTPGeoSymbol(plot, 2.5,1.5, JKQTPCircle, 5, QColor("grey")));
// 3.9 some pies
plot->addGraph(new JKQTPGeoText(plot, 2.1,2.95, "\\textbf{Pies:}", 14, QColor("red")));
- plot->addGraph(new JKQTPGeoRectangle(plot, 2.5,2.5,0.9,0.9, QColor("lightgrey"), 0.5, Qt::SolidLine));
+ plot->addGraph(rec=new JKQTPGeoRectangle(plot, 2.5,2.5,0.9,0.9));
+ rec->setStyleTransparentFill(QColor("lightgrey"), 0.5, Qt::SolidLine);
JKQTPGeoPie* pie;
- plot->addGraph(pie=new JKQTPGeoPie(plot,2.5,2.5,0.9,0.9, 0, 90 , QColor("blue"), 4, Qt::PenStyle::SolidLine,QColor("lightblue")));
- plot->addGraph(pie=new JKQTPGeoPie(plot,2.5,2.5,0.7,0.7, 180,270 , QColor("darkblue"), 4, Qt::PenStyle::SolidLine,QColor("blue")));
+ plot->addGraph(pie=new JKQTPGeoPie(plot,2.5,2.5,0.9,0.9, 0, 90));
+ pie->setStyle(QColor("blue"), 4, Qt::PenStyle::SolidLine,QColor("lightblue"), Qt::SolidPattern);
+ plot->addGraph(pie=new JKQTPGeoPie(plot,2.5,2.5,0.7,0.7, 180,270 ));
+ pie->setStyle(QColor("darkblue"), 4, Qt::PenStyle::SolidLine,QColor("blue"), Qt::SolidPattern);
pie->setAlpha(0.5);
- plot->addGraph(pie=new JKQTPGeoPie(plot,2.5,2.5,0.5,0.3, -25, 117 , QColor("orange"), 4, Qt::PenStyle::DashLine,QColor("red")));
+ plot->addGraph(pie=new JKQTPGeoPie(plot,2.5,2.5,0.5,0.3, -25, 117));
+ pie->setStyle(QColor("orange"), 4, Qt::PenStyle::DashLine,QColor("red"), Qt::SolidPattern);
pie->setAlpha(0.5);
- plot->addGraph(pie=new JKQTPGeoPie(plot,2.5,2.5,0.25,0.8, 85, 347 , QColor("darkgreen"), 4, Qt::PenStyle::SolidLine,QColor("green")));
+ plot->addGraph(pie=new JKQTPGeoPie(plot,2.5,2.5,0.25,0.8, 85, 347));
+ pie->setStyle(QColor("darkgreen"), 4, Qt::PenStyle::SolidLine,QColor("green"), Qt::SolidPattern);
pie->setAlpha(0.5);
plot->addGraph(new JKQTPGeoSymbol(plot, 2.5,2.5, JKQTPCircle, 5, QColor("grey")));
// 3.10 some chords
plot->addGraph(new JKQTPGeoText(plot, 1.1,2.95, "\\textbf{Chords:}", 14, QColor("red")));
- plot->addGraph(new JKQTPGeoRectangle(plot, 1.5,2.5,0.9,0.9, QColor("lightgrey"), 0.5, Qt::SolidLine));
+ plot->addGraph(rec=new JKQTPGeoRectangle(plot, 1.5,2.5,0.9,0.9));
+ rec->setStyleTransparentFill(QColor("lightgrey"), 0.5, Qt::SolidLine);
JKQTPGeoChord* chord;
- plot->addGraph(chord=new JKQTPGeoChord(plot,1.5,2.5,0.9,0.9, 0, 90 , QColor("blue"), 4, Qt::PenStyle::SolidLine,QColor("lightblue")));
- plot->addGraph(chord=new JKQTPGeoChord(plot,1.5,2.5,0.7,0.7, 180,270 , QColor("darkblue"), 4, Qt::PenStyle::SolidLine,QColor("blue")));
+ plot->addGraph(chord=new JKQTPGeoChord(plot,1.5,2.5,0.9,0.9, 0, 90));
+ chord->setStyle(QColor("blue"), 4, Qt::PenStyle::SolidLine,QColor("lightblue"), Qt::SolidPattern);
+ plot->addGraph(chord=new JKQTPGeoChord(plot,1.5,2.5,0.7,0.7, 180,270));
+ chord->setStyle(QColor("darkblue"), 4, Qt::PenStyle::SolidLine,QColor("blue"), Qt::SolidPattern);
chord->setAlpha(0.5);
- plot->addGraph(chord=new JKQTPGeoChord(plot,1.5,2.5,0.5,0.3, -25, 117 , QColor("orange"), 4, Qt::PenStyle::DashLine,QColor("red")));
+ plot->addGraph(chord=new JKQTPGeoChord(plot,1.5,2.5,0.5,0.3, -25, 117));
+ chord->setStyle(QColor("orange"), 4, Qt::PenStyle::DashLine,QColor("red"), Qt::SolidPattern);
chord->setAlpha(0.5);
- plot->addGraph(chord=new JKQTPGeoChord(plot,1.5,2.5,0.25,0.8, 85, 347 , QColor("darkgreen"), 4, Qt::PenStyle::SolidLine,QColor("green")));
+ plot->addGraph(chord=new JKQTPGeoChord(plot,1.5,2.5,0.25,0.8, 85, 347 ));
+ chord->setStyle(QColor("darkgreen"), 4, Qt::PenStyle::SolidLine,QColor("green"), Qt::SolidPattern);
chord->setAlpha(0.5);
plot->addGraph(new JKQTPGeoSymbol(plot, 1.5,2.5, JKQTPCircle, 5, QColor("grey")));
diff --git a/examples/jkqtplot_test/TestWidgetGeometry.cpp b/examples/jkqtplot_test/TestWidgetGeometry.cpp
index 325b304125..4410d455ee 100644
--- a/examples/jkqtplot_test/TestWidgetGeometry.cpp
+++ b/examples/jkqtplot_test/TestWidgetGeometry.cpp
@@ -35,16 +35,20 @@ TestWidgetGeometry::TestWidgetGeometry(QWidget *parent) :
// JKQTPGeoLine* line2=new JKQTPGeoLine(plotGeo->getPlotter(), 1, -5, 4, 3, QColor("blue"), 4);
//plotGeo->getPlotter()->addGraph(line2);
- JKQTPGeoRectangle* rect1=new JKQTPGeoRectangle(plotGeo->getPlotter(), 1,1,2,2, QColor("blue"),2, Qt::SolidLine, QColor("lightblue"));
+ JKQTPGeoRectangle* rect1=new JKQTPGeoRectangle(plotGeo->getPlotter(), 1,1,2,2);
+ rect1->setStyle(QColor("blue"),2, Qt::SolidLine, QColor("lightblue"), Qt::SolidPattern);
rect1->setAngle(30);
//plotGeo->getPlotter()->addGraph(rect1);
- JKQTPGeoRectangle* rect2=new JKQTPGeoRectangle(plotGeo->getPlotter(), 1,1,2,2, QColor("red"),2);
+ JKQTPGeoRectangle* rect2=new JKQTPGeoRectangle(plotGeo->getPlotter(), 1,1,2,2);
+ rect2->setStyleTransparentFill(QColor("red"),2);
rect2->setAngle(45);
//plotGeo->getPlotter()->addGraph(rect2);
- JKQTPGeoRectangle* rect3=new JKQTPGeoRectangle(plotGeo->getPlotter(), 1,1,2,4, QColor("green"),2);
+ JKQTPGeoRectangle* rect3=new JKQTPGeoRectangle(plotGeo->getPlotter(), 1,1,2,4);
+ rect3->setStyleTransparentFill(QColor("green"),2);
rect3->setAngle(-30);
//plotGeo->getPlotter()->addGraph(rect3);
- JKQTPGeoEllipse* ell3=new JKQTPGeoEllipse(plotGeo->getPlotter(), 1,1,2,4, QColor("green"),2, Qt::SolidLine, QColor("lightgreen"), Qt::CrossPattern);
+ JKQTPGeoEllipse* ell3=new JKQTPGeoEllipse(plotGeo->getPlotter(), 1,1,2,4);
+ ell3->setStyle(QColor("green"),2, Qt::SolidLine, QColor("lightgreen"), Qt::CrossPattern);
ell3->setAngle(-30);
//plotGeo->getPlotter()->addGraph(ell3);
@@ -55,27 +59,21 @@ TestWidgetGeometry::TestWidgetGeometry(QWidget *parent) :
p.append(QPointF(0,-2));
p.append(QPointF(JKQTPSTATISTICS_PI,5.5));
-// JKQTPGeoPolygon* poly=new JKQTPGeoPolygon(plotGeo->getPlotter(), p, QColor("black"), 1.5, Qt::SolidLine, QColor(128,128,0,128));
- //plotGeo->getPlotter()->addGraph(poly);
-// JKQTPGeoPolyLines* lines=new JKQTPGeoPolyLines(plotGeo->getPlotter(), p, QColor(255,255,0), 3);
- //plotGeo->getPlotter()->addGraph(lines);
-
- JKQTPGeoEllipse* ell1=new JKQTPGeoEllipse(plotGeo->getPlotter(), 0,0,2,4, QColor("black"),1.5, Qt::DotLine);
+ JKQTPGeoEllipse* ell1=new JKQTPGeoEllipse(plotGeo->getPlotter(), 0,0,2,4);
+ ell1->setStyleTransparentFill(QColor("black"),1.5, Qt::DotLine);
plotGeo->getPlotter()->addGraph(ell1);
-// JKQTPGeoArc* arc=new JKQTPGeoArc(plotGeo->getPlotter(), 0,0,2,4,0, 135, QColor("blue"),3, Qt::SolidLine);
- //plotGeo->getPlotter()->addGraph(arc);
-// JKQTPGeoPie* pie=new JKQTPGeoPie(plotGeo->getPlotter(), 0,0,2,4,35, 98, QColor("blue"),3, Qt::SolidLine, QColor(0,0,255,127));
- //plotGeo->getPlotter()->addGraph(pie);
-// JKQTPGeoChord* chord=new JKQTPGeoChord(plotGeo->getPlotter(), 0,0,2,4,35, 98, QColor("blue"),3, Qt::SolidLine, QColor(0,0,255,127));
- //plotGeo->getPlotter()->addGraph(chord);
- JKQTPGeoInfiniteLine* iline=new JKQTPGeoInfiniteLine(plotGeo->getPlotter(), 0.5,1,1,1, QColor("blue"), 3);
+ JKQTPGeoInfiniteLine* iline=new JKQTPGeoInfiniteLine(plotGeo->getPlotter(), 0.5,1,1,1);
+ iline->setStyle(QColor("blue"), 3);
plotGeo->getPlotter()->addGraph(iline);
- JKQTPGeoInfiniteLine* iline1=new JKQTPGeoInfiniteLine(plotGeo->getPlotter(), 0.5,1,-1,0, QColor("red"), 3);
+ JKQTPGeoInfiniteLine* iline1=new JKQTPGeoInfiniteLine(plotGeo->getPlotter(), 0.5,1,-1,0);
+ iline->setStyle(QColor("red"), 3);
plotGeo->getPlotter()->addGraph(iline1);
- JKQTPGeoInfiniteLine* iline2=new JKQTPGeoInfiniteLine(plotGeo->getPlotter(), 0.5,1,0,1, QColor("red"), 3);
+ JKQTPGeoInfiniteLine* iline2=new JKQTPGeoInfiniteLine(plotGeo->getPlotter(), 0.5,1,0,1);
+ iline->setStyle(QColor("red"), 3);
plotGeo->getPlotter()->addGraph(iline2);
- JKQTPGeoInfiniteLine* iline3=new JKQTPGeoInfiniteLine(plotGeo->getPlotter(), 0.5,1,-1,0.5, QColor("green"), 3);
+ JKQTPGeoInfiniteLine* iline3=new JKQTPGeoInfiniteLine(plotGeo->getPlotter(), 0.5,1,-1,0.5);
+ iline->setStyle(QColor("green"), 3);
iline3->setTwoSided(true);
plotGeo->getPlotter()->addGraph(iline3);
diff --git a/examples/styling/test_styling.cpp b/examples/styling/test_styling.cpp
index 1ac1c9c070..244866161c 100644
--- a/examples/styling/test_styling.cpp
+++ b/examples/styling/test_styling.cpp
@@ -5,6 +5,11 @@
#include "jkqtplotter/graphs/jkqtpbarchart.h"
#include "jkqtplotter/graphs/jkqtpimage.h"
#include "jkqtplotter/graphs/jkqtpgeometric.h"
+#include "jkqtplotter/graphs/jkqtpgeoannotations.h"
+#include "jkqtplotter/graphs/jkqtpboxplot.h"
+#include "jkqtplotter/graphs/jkqtpfilledcurve.h"
+#include "jkqtplotter/graphs/jkqtpimpulses.h"
+
#include
#include
#include
@@ -126,23 +131,29 @@ void TestStyling::initPlot()
ds->clear();
// 2. now we create data for a simple plot (a sine curve)
- QVector X, Y1, Y2, img, X3, Y3, Y3err, Xbar, Ybar, Ybar2;
+ QVector X, Y1, Y2, img, X3, Y3, Y3err, Xbar, Ybar, Ybar2, Y4, Y5, XImp, YImp;
const int Ndata=100;
for (int i=0; i0 && i%20==0) {
- Xbar<addCopiedColumn(Xbar, "xbar");
size_t columnYbar=ds->addCopiedColumn(Ybar, "ybar");
size_t columnYbar2=ds->addCopiedColumn(Ybar2, "Ybar2");
+ size_t columnY4=ds->addCopiedColumn(Y4, "y4");
+ size_t columnY5=ds->addCopiedColumn(Y5, "y5");
+ size_t columnXImp=ds->addCopiedColumn(XImp, "ximp");
+ size_t columnYImp=ds->addCopiedColumn(YImp, "yimp");
+
+ // 4. create diverse graphs in the plot:
+ JKQTPFilledCurveXGraph* graphf4=new JKQTPFilledCurveXGraph(ui->plot);
+ graphf4->setXColumn(columnX);
+ graphf4->setYColumn(columnY4);
+ graphf4->setTitle(QObject::tr("filled exp-function"));
+ ui->plot->addGraph(graphf4);
+
+ JKQTPFilledCurveXGraph* graphf5=new JKQTPFilledCurveXGraph(ui->plot);
+ graphf5->setXColumn(columnX);
+ graphf5->setYColumn(columnY5);
+ graphf5->setTitle(QObject::tr("other filled exp-function"));
+ ui->plot->addGraph(graphf5);
- // 4. create a graph in the plot, which plots the dataset X/Y:
JKQTPColumnMathImage* graphI=new JKQTPColumnMathImage(ui->plot);
graphI->setImageColumn(columnImg);
graphI->setNx(Ndata);
@@ -177,7 +204,7 @@ void TestStyling::initPlot()
graphI->setColorBarTopVisible(true);
graphI->setColorBarRightVisible(true);
graphI->setX(0.5);
- graphI->setY(-1.5);
+ graphI->setY(-2.0);
graphI->setWidth(5);
graphI->setHeight(1);
graphI->setTitle(QObject::tr("2{\\times}Gauss"));
@@ -218,6 +245,29 @@ void TestStyling::initPlot()
ui->plot->addGraph(graphb2);
graphb2->autoscaleBarWidthAndShiftSeparatedGroups();
+ JKQTPImpulsesVerticalGraph* graphi2=new JKQTPImpulsesVerticalGraph(ui->plot);
+ graphi2->setXColumn(columnXImp);
+ graphi2->setYColumn(columnYImp);
+ graphi2->setTitle(QObject::tr("impulses"));
+ ui->plot->addGraph(graphi2);
+
+ JKQTPBoxplotHorizontalElement* graphBP=new JKQTPBoxplotHorizontalElement(ui->plot);
+ graphBP->setData(-2, 7, 10,12,13,17,22);
+ ui->plot->addGraph(graphBP);
+
+ JKQTPGeoSymbol* annotSym=new JKQTPGeoSymbol(ui->plot, 15, -3);
+ ui->plot->addGraph(annotSym);
+
+ JKQTPGeoText* annotTxt=new JKQTPGeoText(ui->plot, 15.1, -3, "Annotation $\\int_{0}^{2\\pi}\\sin(x)\\;\\mathrm{d}x$");
+ ui->plot->addGraph(annotTxt);
+
+ JKQTPGeoEllipse* geoEll=new JKQTPGeoEllipse(ui->plot, 5,-3,5,1);
+ geoEll->setAngle(-25);
+ ui->plot->addGraph(geoEll);
+
+ ui->plot->addGraph(new JKQTPGeoArrow(ui->plot, 5,-3,10,-3.5));
+
+ ui->plot->addGraph(new JKQTPGeoLine(ui->plot, 5,-3,10,-4));
// 6. autoscale the plot so the graph is contained
ui->plot->zoomToFit();
@@ -249,7 +299,7 @@ void TestStyling::initPlot()
double y=1;
double xmax=15;
int cnt=0;
- for (auto s: ui->plot->getPlotter()->getCurrentPlotterStyle().defaultGraphSymbols) {
+ for (auto s: ui->plot->getPlotter()->getCurrentPlotterStyle().graphsStyle.defaultGraphSymbols) {
plotExtra->addGraph(new JKQTPGeoSymbol(plotExtra.data(), x, y, s, 12, QColor("red"), QColor("salmon") ));
x+=1;
xmax=qMax(x, xmax);
@@ -261,16 +311,20 @@ void TestStyling::initPlot()
}
y=y+1;
double ycoltest=y;
- for (auto s: ui->plot->getPlotter()->getCurrentPlotterStyle().defaultGraphPenStyles) {
- plotExtra->addGraph(new JKQTPGeoLine(plotExtra.data(), 1,y,xlineend,y,QColor("red"), 2, s));
- plotExtra->addGraph(new JKQTPGeoLine(plotExtra.data(), 1,y-0.25,xlineend,y-0.25,QColor("maroon"), 1, s));
+ for (auto s: ui->plot->getPlotter()->getCurrentPlotterStyle().graphsStyle.defaultGraphPenStyles) {
+ JKQTPGeoLine* l;
+ plotExtra->addGraph(l=new JKQTPGeoLine(plotExtra.data(), 1,y,xlineend,y)); l->setStyle(QColor("red"), 2, s);
+ plotExtra->addGraph(l=new JKQTPGeoLine(plotExtra.data(), 1,y-0.25,xlineend,y-0.25)); l->setStyle(QColor("maroon"), 1, s);
y+=0.75;
}
x=xlineend+1;
- double dx=(xmax-xlineend-1.0)/static_cast(ui->plot->getPlotter()->getCurrentPlotterStyle().defaultGraphColors.size());
- for (auto s: ui->plot->getPlotter()->getCurrentPlotterStyle().defaultGraphColors) {
- plotExtra->addGraph(new JKQTPGeoLine(plotExtra.data(), x,ycoltest,x,y-0.5,s,5));
- plotExtra->addGraph(new JKQTPGeoRectangle(plotExtra.data(), x+dx/2,(ycoltest+y-0.5)/2.0, dx*0.5, y-ycoltest-0.5, s,1, Qt::SolidLine, JKQTPGetDerivedColor(ui->plot->getPlotter()->getCurrentPlotterStyle().graphFillColorDerivationMode, s)));
+ double dx=(xmax-xlineend-1.0)/static_cast(ui->plot->getPlotter()->getCurrentPlotterStyle().graphsStyle.defaultGraphColors.size());
+ for (auto s: ui->plot->getPlotter()->getCurrentPlotterStyle().graphsStyle.defaultGraphColors) {
+ JKQTPGeoLine* l;
+ plotExtra->addGraph(l=new JKQTPGeoLine(plotExtra.data(), x,ycoltest,x,y-0.5)); l->setStyle(s,5);
+ JKQTPGeoRectangle* r;
+ plotExtra->addGraph(r=new JKQTPGeoRectangle(plotExtra.data(), x+dx/2,(ycoltest+y-0.5)/2.0, dx*0.5, y-ycoltest-0.5));
+ r->setStyle(s,1, Qt::SolidLine, JKQTPGetDerivedColor(ui->plot->getPlotter()->getCurrentPlotterStyle().graphsStyle.defaultGraphStyle.fillColorDerivationMode, s), Qt::SolidPattern);
x+=dx;
}
plotExtra->zoomToFit();
diff --git a/examples/styling/test_styling.ui b/examples/styling/test_styling.ui
index 981cc39c32..0dbb4ed098 100644
--- a/examples/styling/test_styling.ui
+++ b/examples/styling/test_styling.ui
@@ -6,8 +6,8 @@
0
0
- 863
- 559
+ 1068
+ 691
@@ -218,7 +218,7 @@
0
0
- 863
+ 1068
21
diff --git a/lib/jkqtplotter.pri b/lib/jkqtplotter.pri
index 4a089a6b5d..3661bbbf24 100644
--- a/lib/jkqtplotter.pri
+++ b/lib/jkqtplotter.pri
@@ -23,6 +23,7 @@ isEmpty(JKQTP_PLOTTER_PRI_INCLUDED) {
$$PWD/jkqtplotter/jkqtpbaseplotterstyle.h \
$$PWD/jkqtplotter/jkqtpcoordinateaxes.h \
$$PWD/jkqtplotter/jkqtpcoordinateaxesstyle.h \
+ $$PWD/jkqtplotter/jkqtpgraphsbasestyle.h \
$$PWD/jkqtplotter/jkqtpimagetools.h \
$$PWD/jkqtplotter/graphs/jkqtpboxplot.h \
$$PWD/jkqtplotter/graphs/jkqtpboxplotbase.h \
@@ -75,6 +76,7 @@ isEmpty(JKQTP_PLOTTER_PRI_INCLUDED) {
$$PWD/jkqtplotter/jkqtpbaseplotterstyle.cpp \
$$PWD/jkqtplotter/jkqtpcoordinateaxes.cpp \
$$PWD/jkqtplotter/jkqtpcoordinateaxesstyle.cpp \
+ $$PWD/jkqtplotter/jkqtpgraphsbasestyle.cpp \
$$PWD/jkqtplotter/graphs/jkqtpboxplot.cpp \
$$PWD/jkqtplotter/graphs/jkqtpboxplotbase.cpp \
$$PWD/jkqtplotter/graphs/jkqtpboxplotstylingmixins.cpp \
diff --git a/lib/jkqtplotter/CMakeLists.txt b/lib/jkqtplotter/CMakeLists.txt
index 524142d1fd..c22efa13db 100644
--- a/lib/jkqtplotter/CMakeLists.txt
+++ b/lib/jkqtplotter/CMakeLists.txt
@@ -35,6 +35,7 @@ set(SOURCES
jkqtpcoordinateaxes.cpp
jkqtpcoordinateaxesstyle.cpp
jkqtpimagetools.cpp
+ jkqtpgraphsbasestyle.cpp
)
set(SOURCES_GRAPHS
graphs/jkqtpscatter.cpp
@@ -90,6 +91,7 @@ set(HEADERS
jkqtpcoordinateaxes.h
jkqtpcoordinateaxesstyle.h
jkqtpimagetools.h
+ jkqtpgraphsbasestyle.h
jkqtplotter_imexport.h
)
set(HEADERS_GRAPHS
diff --git a/lib/jkqtplotter/graphs/jkqtpbarchart.cpp b/lib/jkqtplotter/graphs/jkqtpbarchart.cpp
index dba91e1960..8078d1ab64 100644
--- a/lib/jkqtplotter/graphs/jkqtpbarchart.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpbarchart.cpp
@@ -320,7 +320,7 @@ JKQTPBarHorizontalErrorGraph::JKQTPBarHorizontalErrorGraph(JKQTBasePlotter *pare
JKQTPBarHorizontalGraph(parent)
{
setErrorColorFromGraphColor(getKeyLabelColor());
- initErrorStyle(parent, parentPlotStyle);
+ initErrorStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Barchart);
}
JKQTPBarHorizontalErrorGraph::JKQTPBarHorizontalErrorGraph(JKQTPlotter *parent):
@@ -414,7 +414,7 @@ JKQTPBarVerticalErrorGraph::JKQTPBarVerticalErrorGraph(JKQTBasePlotter *parent):
JKQTPBarVerticalGraph(parent)
{
setErrorColorFromGraphColor(getKeyLabelColor());
- initErrorStyle(parent, parentPlotStyle);
+ initErrorStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Barchart);
}
diff --git a/lib/jkqtplotter/graphs/jkqtpbarchartbase.cpp b/lib/jkqtplotter/graphs/jkqtpbarchartbase.cpp
index ed6254620b..129328dcbe 100644
--- a/lib/jkqtplotter/graphs/jkqtpbarchartbase.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpbarchartbase.cpp
@@ -39,8 +39,8 @@
JKQTPBarGraphBase::JKQTPBarGraphBase(JKQTBasePlotter* parent):
JKQTPXYBaselineGraph(parent), width(0.9), shift(0)
{
- initFillStyle(parent, parentPlotStyle);
- initLineStyle(parent, parentPlotStyle);
+ initFillStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Barchart);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Barchart);
}
@@ -109,7 +109,7 @@ void JKQTPBarGraphBase::autoscaleBarWidthAndShiftSeparatedGroups(double groupWid
void JKQTPBarGraphBase::setColor(QColor c)
{
setLineColor(c);
- setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.barchartStyle.fillColorDerivationMode, c));
c.setAlphaF(0.5);
setHighlightingLineColor(c);
}
diff --git a/lib/jkqtplotter/graphs/jkqtpboxplotbase.cpp b/lib/jkqtplotter/graphs/jkqtpboxplotbase.cpp
index 3d46858b78..bdaee5cdc2 100644
--- a/lib/jkqtplotter/graphs/jkqtpboxplotbase.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpboxplotbase.cpp
@@ -381,6 +381,20 @@ void JKQTPBoxplotElementBase::setPercentile75(double __value)
this->percentile75 = __value;
}
+void JKQTPBoxplotElementBase::setData(double pos, double min, double q75, double median, double mean, double q25, double max)
+{
+ this->pos=pos;
+ this->min=min;
+ this->max=max;
+ drawMinMax=true;
+ this->median=median;
+ drawMedian=true;
+ this->mean=mean;
+ drawMean=true;
+ this->percentile25=q25;
+ this->percentile75=q75;
+}
+
double JKQTPBoxplotElementBase::getPercentile75() const
{
return this->percentile75;
diff --git a/lib/jkqtplotter/graphs/jkqtpboxplotbase.h b/lib/jkqtplotter/graphs/jkqtpboxplotbase.h
index 2b1cf12397..925f278ba3 100644
--- a/lib/jkqtplotter/graphs/jkqtpboxplotbase.h
+++ b/lib/jkqtplotter/graphs/jkqtpboxplotbase.h
@@ -246,6 +246,9 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPBoxplotElementBase: public JKQTPPlotElement, p
void setPercentile25(double __value);
/** \copydoc percentile75 */
void setPercentile75(double __value);
+ /** \brief set all properties of the plot at once \see pos, median, min, mean, max, percentile25, percentile75 */
+ void setData(double pos, double min, double q75, double median, double mean, double q25, double max);
+
/** \copydoc drawMedian */
void setDrawMedian(bool __value);
/** \copydoc drawMinMax */
@@ -254,6 +257,8 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPBoxplotElementBase: public JKQTPPlotElement, p
void setDrawNotch(bool __value);
/** \copydoc medianConfidenceIntervalWidth */
void setMedianConfidenceIntervalWidth(double __value);
+
+
protected:
/** \brief the position of the boxplot on the "other" axis */
diff --git a/lib/jkqtplotter/graphs/jkqtpboxplotstylingmixins.cpp b/lib/jkqtplotter/graphs/jkqtpboxplotstylingmixins.cpp
index e54531e50d..815ef5ddac 100644
--- a/lib/jkqtplotter/graphs/jkqtpboxplotstylingmixins.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpboxplotstylingmixins.cpp
@@ -61,23 +61,25 @@ void JKQTPGraphBoxplotStyleMixin::initBoxplotStyle(JKQTBasePlotter *parent, int
{
setFillStyle(Qt::SolidPattern);
setFillColor(parent->getCurrentPlotterStyle().plotBackgroundBrush.color());
- initLineStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Boxplot);
+ initFillStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Boxplot);
if (parent) { // get style settings from parent object
if (parentPlotStyle<0) parentPlotStyle=parent->getNextStyle();
- m_whiskerLinePen.setColor(parent->getPlotStyle(parentPlotStyle).color());
- m_whiskerLinePen.setStyle(parent->getPlotStyle(parentPlotStyle).style());
- whiskerLineWidth=parent->getPlotStyle(parentPlotStyle).widthF();
- m_whiskerCapLinePen.setColor(parent->getPlotStyle(parentPlotStyle).color());
- m_whiskerCapLinePen.setStyle(parent->getPlotStyle(parentPlotStyle).style());
- whiskerCapLineWidth=parent->getPlotStyle(parentPlotStyle).widthF();
- m_medianLinePen.setColor(parent->getPlotStyle(parentPlotStyle).color());
- m_medianLinePen.setStyle(parent->getPlotStyle(parentPlotStyle).style());
- medianLineWidth=parent->getPlotStyle(parentPlotStyle).widthF();
- m_meanSymbolLinePen=QPen(parent->getPlotStyle(parentPlotStyle).color(), parent->getPlotStyle(parentPlotStyle).style());
- m_meanSymbolSize=parent->getPlotStyle(parentPlotStyle).symbolSize();
- m_meanSymbolLineWidth=parent->getPlotStyle(parentPlotStyle).symbolLineWidthF();
- m_meanSymbolType=parent->getPlotStyle(parentPlotStyle).symbol();
- m_meanSymbolFillColor=parent->getPlotStyle(parentPlotStyle).symbolFillColor();
+ const JKQTBasePlotter::JKQTPPen pen=parent->getPlotStyle(parentPlotStyle, JKQTPPlotStyleType::Boxplot);
+ m_whiskerLinePen.setColor(pen.color());
+ m_whiskerLinePen.setStyle(pen.style());
+ whiskerLineWidth=pen.widthF();
+ m_whiskerCapLinePen.setColor(pen.color());
+ m_whiskerCapLinePen.setStyle(pen.style());
+ whiskerCapLineWidth=pen.widthF();
+ m_medianLinePen.setColor(pen.color());
+ m_medianLinePen.setStyle(pen.style());
+ medianLineWidth=pen.widthF();
+ m_meanSymbolLinePen=QPen(pen.color(), pen.style());
+ m_meanSymbolSize=pen.symbolSize();
+ m_meanSymbolLineWidth=pen.symbolLineWidthF();
+ m_meanSymbolType=pen.symbol();
+ m_meanSymbolFillColor=pen.symbolFillColor();
}
setWhiskerLineColor(getLineColor());
@@ -103,9 +105,9 @@ double JKQTPGraphBoxplotStyleMixin::getBoxWidthAbsolute() const
void JKQTPGraphBoxplotStyleMixin::setBoxplotColor(QColor c, JKQTBasePlotter *parent)
{
setLineColor(c);
- setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.barchartStyle.fillColorDerivationMode, c));
setMeanColor(c);
- setMeanFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setMeanFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.barchartStyle.symbolFillColorDerivationMode, c));
setWhiskerLineColor(getLineColor());
setWhiskerCapLineColor(getLineColor());
setMedianLineColor(getLineColor());
diff --git a/lib/jkqtplotter/graphs/jkqtpcontour.cpp b/lib/jkqtplotter/graphs/jkqtpcontour.cpp
index 9e458033a2..3bfca829f4 100644
--- a/lib/jkqtplotter/graphs/jkqtpcontour.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpcontour.cpp
@@ -40,7 +40,7 @@ JKQTPContourPlot::JKQTPContourPlot(JKQTBasePlotter *parent) :
contourColoringMode=ColorContoursFromPaletteByValue;
relativeLevels=false;
- initLineStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
}
diff --git a/lib/jkqtplotter/graphs/jkqtpevaluatedfunction.cpp b/lib/jkqtplotter/graphs/jkqtpevaluatedfunction.cpp
index a8175101c6..1bfa851efe 100644
--- a/lib/jkqtplotter/graphs/jkqtpevaluatedfunction.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpevaluatedfunction.cpp
@@ -36,24 +36,25 @@ JKQTPEvaluatedFunctionWithErrorsGraphDrawingBase::JKQTPEvaluatedFunctionWithErro
drawErrorPolygons(false),
drawErrorLines(false)
{
- initLineStyle(parent, parentPlotStyle);
- initFillStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
+ initFillStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
setFillCurve(false);
- errorColor=getLineColor().lighter();
- errorFillColor=getLineColor().lighter();
+ errorColor=JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.defaultGraphStyle.errorColorDerivationMode, getLineColor());
+ errorFillColor=JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.defaultGraphStyle.errorFillColorDerivationMode, errorColor);
errorStyle=Qt::SolidLine;
- errorLineWidth=1;
+ errorLineWidth=parent->getCurrentPlotterStyle().graphsStyle.defaultGraphStyle.defaultErrorIndicatorWidth;
errorFillStyle=Qt::SolidPattern;
if (parent && parentPlotStyle>=0) { // get style settings from parent object
//std::cout<<"got style settings from parent: "<getPlotStyle(parentPlotStyle).errorColor();
- errorStyle=parent->getPlotStyle(parentPlotStyle).errorStyle();
- errorLineWidth=parent->getPlotStyle(parentPlotStyle).errorWidthF();
- errorFillStyle=parent->getPlotStyle(parentPlotStyle).errorFillStyle();
- errorFillColor=parent->getPlotStyle(parentPlotStyle).errorFillColor();
+ const JKQTBasePlotter::JKQTPPen pen=parent->getPlotStyle(parentPlotStyle);
+ errorColor=pen.errorColor();
+ errorStyle=pen.errorStyle();
+ errorLineWidth=pen.errorWidthF();
+ errorFillStyle=pen.errorFillStyle();
+ errorFillColor=pen.errorFillColor();
}
errorFillColor.setAlphaF(0.5);
}
diff --git a/lib/jkqtplotter/graphs/jkqtpevaluatedparametriccurve.cpp b/lib/jkqtplotter/graphs/jkqtpevaluatedparametriccurve.cpp
index 2d02bea262..1dc81ca6a9 100644
--- a/lib/jkqtplotter/graphs/jkqtpevaluatedparametriccurve.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpevaluatedparametriccurve.cpp
@@ -38,7 +38,7 @@ JKQTPXYFunctionLineGraphBase::JKQTPXYFunctionLineGraphBase(double tmin_, double
tmin(tmin_),
tmax(tmax_)
{
- initLineStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
setMaxRefinementDegree(8);
}
diff --git a/lib/jkqtplotter/graphs/jkqtpfilledcurve.cpp b/lib/jkqtplotter/graphs/jkqtpfilledcurve.cpp
index a12136fa47..3087554981 100644
--- a/lib/jkqtplotter/graphs/jkqtpfilledcurve.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpfilledcurve.cpp
@@ -36,8 +36,8 @@ JKQTPFilledCurveGraphBase::JKQTPFilledCurveGraphBase(JKQTBasePlotter *parent):
JKQTPXYBaselineGraph(parent)
{
parentPlotStyle=-1;
- initLineStyle(parent, parentPlotStyle);
- initFillStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Filled);
+ initFillStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Filled);
setFillCurve(true);
setDrawLine(true);
}
@@ -64,7 +64,7 @@ void JKQTPFilledCurveGraphBase::drawKeyMarker(JKQTPEnhancedPainter &painter, QRe
void JKQTPFilledCurveGraphBase::setColor(QColor c)
{
setLineColor(c);
- setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.filledStyle.fillColorDerivationMode, c));
c.setAlphaF(0.5);
setHighlightingLineColor(c);
}
@@ -271,7 +271,7 @@ JKQTPFilledCurveXErrorGraph::JKQTPFilledCurveXErrorGraph(JKQTBasePlotter *parent
JKQTPFilledCurveXGraph(parent)
{
setErrorColorFromGraphColor(getLineColor());
- initErrorStyle(parent, parentPlotStyle);
+ initErrorStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Filled);
}
JKQTPFilledCurveXErrorGraph::JKQTPFilledCurveXErrorGraph(JKQTPlotter *parent):
@@ -296,7 +296,7 @@ JKQTPFilledCurveYErrorGraph::JKQTPFilledCurveYErrorGraph(JKQTBasePlotter *parent
JKQTPFilledCurveYGraph(parent)
{
setErrorColorFromGraphColor(getLineColor());
- initErrorStyle(parent, parentPlotStyle);
+ initErrorStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Filled);
}
@@ -323,8 +323,8 @@ void JKQTPFilledCurveYErrorGraph::drawErrorsAfter(JKQTPEnhancedPainter &painter)
JKQTPFilledVerticalRangeGraph::JKQTPFilledVerticalRangeGraph(JKQTBasePlotter *parent):
JKQTPXYYGraph(parent)
{
- initFillStyle(parent, parentPlotStyle);
- initLineStyle(parent, parentPlotStyle);
+ initFillStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Filled);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Filled);
}
JKQTPFilledVerticalRangeGraph::JKQTPFilledVerticalRangeGraph(JKQTPlotter *parent):
@@ -438,8 +438,8 @@ QColor JKQTPFilledVerticalRangeGraph::getKeyLabelColor() const
JKQTPFilledHorizontalRangeGraph::JKQTPFilledHorizontalRangeGraph(JKQTBasePlotter *parent):
JKQTPXXYGraph(parent)
{
- initFillStyle(parent, parentPlotStyle);
- initLineStyle(parent, parentPlotStyle);
+ initFillStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Filled);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Filled);
}
JKQTPFilledHorizontalRangeGraph::JKQTPFilledHorizontalRangeGraph(JKQTPlotter *parent):
diff --git a/lib/jkqtplotter/graphs/jkqtpgeoannotations.cpp b/lib/jkqtplotter/graphs/jkqtpgeoannotations.cpp
index 7c79d430ab..9e9a7a7f18 100644
--- a/lib/jkqtplotter/graphs/jkqtpgeoannotations.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpgeoannotations.cpp
@@ -31,9 +31,8 @@
JKQTPGeoText::JKQTPGeoText(JKQTBasePlotter* parent, double x_, double y_, const QString& text_, double fontSize, QColor color):
- JKQTPGeoText(parent, x_, y_, text_)
+ JKQTPGeoText(parent, x_, y_, text_, fontSize)
{
- setTextFontSize(fontSize);
setTextColor(color);
}
@@ -42,10 +41,21 @@ JKQTPGeoText::JKQTPGeoText(JKQTPlotter* parent, double x, double y, const QStrin
{
}
+JKQTPGeoText::JKQTPGeoText(JKQTBasePlotter* parent, double x_, double y_, const QString& text_, double fontSize):
+ JKQTPGeoText(parent, x_, y_, text_)
+{
+ setTextFontSize(fontSize);
+}
+
+JKQTPGeoText::JKQTPGeoText(JKQTPlotter* parent, double x, double y, const QString& text, double fontSize):
+ JKQTPGeoText(parent->getPlotter(),x,y,text,fontSize)
+{
+}
+
JKQTPGeoText::JKQTPGeoText(JKQTBasePlotter *parent, double x_, double y_, const QString& text_):
JKQTPPlotAnnotationElement(parent), JKQTPGraphTextStyleMixin(parent), x(x_),y(y_),text(text_)
{
-
+ initTextStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Annotation);
}
JKQTPGeoText::JKQTPGeoText(JKQTPlotter *parent, double x, double y, const QString &text):
@@ -78,6 +88,17 @@ void JKQTPGeoText::setY(double __value)
this->y = __value;
}
+void JKQTPGeoText::setP(const QPointF &p)
+{
+ x=p.x();
+ y=p.y();
+}
+
+QPointF JKQTPGeoText::getP() const
+{
+ return QPointF(x,y);
+}
+
double JKQTPGeoText::getY() const
{
return this->y;
@@ -131,27 +152,74 @@ QColor JKQTPGeoText::getKeyLabelColor() const {
JKQTPGeoSymbol::JKQTPGeoSymbol(JKQTBasePlotter *parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize, QColor color, QColor fillColor):
- JKQTPPlotAnnotationElement(parent)
+ JKQTPGeoSymbol(parent, x, y, symbol, symbolSize)
{
- this->x=x;
- this->y=y;
- setSymbolType(symbol);
- setSymbolSize(symbolSize);
setSymbolColor(color);
setSymbolFillColor(fillColor);
- setSymbolLineWidth(1);
+}
+
+JKQTPGeoSymbol::JKQTPGeoSymbol(JKQTBasePlotter *parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize):
+ JKQTPGeoSymbol(parent, x, y, symbol)
+{
+ setSymbolSize(symbolSize);
+}
+
+JKQTPGeoSymbol::JKQTPGeoSymbol(JKQTPlotter *parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize):
+ JKQTPGeoSymbol(parent->getPlotter(), x, y, symbol, symbolSize)
+{
+
}
JKQTPGeoSymbol::JKQTPGeoSymbol(JKQTPlotter *parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize, QColor color, QColor fillColor):
JKQTPGeoSymbol(parent->getPlotter(), x, y, symbol, symbolSize, color, fillColor)
{
+}
+
+JKQTPGeoSymbol::JKQTPGeoSymbol(JKQTBasePlotter *parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize, QColor color):
+JKQTPGeoSymbol(parent, x, y, symbol, symbolSize)
+{
+ setSymbolColor(color);
+ if (parent) {
+ setSymbolFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.annotationStyle.symbolFillColorDerivationMode, color));
+ }
+}
+
+JKQTPGeoSymbol::JKQTPGeoSymbol(JKQTPlotter *parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize, QColor color):
+ JKQTPGeoSymbol(parent->getPlotter(), x, y, symbol, symbolSize, color)
+{
+
+}
+
+JKQTPGeoSymbol::JKQTPGeoSymbol(JKQTBasePlotter *parent, double x, double y, JKQTPGraphSymbols symbol):
+ JKQTPGeoSymbol(parent, x, y)
+{
+ setSymbolType(symbol);
+}
+
+JKQTPGeoSymbol::JKQTPGeoSymbol(JKQTPlotter *parent, double x, double y, JKQTPGraphSymbols symbol):
+ JKQTPGeoSymbol(parent->getPlotter(), x, y, symbol)
+{
+
+}
+
+JKQTPGeoSymbol::JKQTPGeoSymbol(JKQTBasePlotter *parent, double x, double y):
+ JKQTPPlotAnnotationElement(parent)
+{
+ this->x=x;
+ this->y=y;
+ initSymbolStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Annotation);
+}
+
+JKQTPGeoSymbol::JKQTPGeoSymbol(JKQTPlotter *parent, double x, double y):
+ JKQTPGeoSymbol(parent->getPlotter(), x, y)
+{
}
void JKQTPGeoSymbol::setColor(QColor c)
{
setSymbolColor(c);
- setSymbolFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setSymbolFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.annotationStyle.fillColorDerivationMode, c));
}
void JKQTPGeoSymbol::setX(double __value)
@@ -174,6 +242,17 @@ double JKQTPGeoSymbol::getY() const
return this->y;
}
+void JKQTPGeoSymbol::setP(const QPointF &p)
+{
+ x=p.x();
+ y=p.y();
+}
+
+QPointF JKQTPGeoSymbol::getP() const
+{
+ return QPointF(x,y);
+}
+
bool JKQTPGeoSymbol::getXMinMax(double &minx, double &maxx, double &smallestGreaterZero)
{
minx=x;
diff --git a/lib/jkqtplotter/graphs/jkqtpgeoannotations.h b/lib/jkqtplotter/graphs/jkqtpgeoannotations.h
index d3e412a18a..d819af4793 100644
--- a/lib/jkqtplotter/graphs/jkqtpgeoannotations.h
+++ b/lib/jkqtplotter/graphs/jkqtpgeoannotations.h
@@ -52,7 +52,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoSymbol: public JKQTPPlotAnnotationElement,
\param color color of drawing
\param fillColor fill color of the symbol (if filled)
*/
- JKQTPGeoSymbol(JKQTBasePlotter* parent, double x, double y, JKQTPGraphSymbols symbol=JKQTPCross, double symbolSize=10, QColor color=QColor("black"), QColor fillColor=QColor("grey"));
+ JKQTPGeoSymbol(JKQTBasePlotter* parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize);
/*! \brief class contructor
\param parent parent plotter widget
@@ -63,12 +63,90 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoSymbol: public JKQTPPlotAnnotationElement,
\param color color of drawing
\param fillColor fill color of the symbol (if filled)
*/
- JKQTPGeoSymbol(JKQTPlotter* parent, double x, double y, JKQTPGraphSymbols symbol=JKQTPCross, double symbolSize=10, QColor color=QColor("black"), QColor fillColor=QColor("grey"));
+ JKQTPGeoSymbol(JKQTPlotter* parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize);
+ /*! \brief class contructor
- /** \copydoc x */
+ \param parent parent plotter widget
+ \param x x-coordinate of symbol center
+ \param y y-coordinate of symbol center
+ \param symbol symbol type
+ \param symbolSize size of the symbol in pt
+ \param color color of drawing
+ \param fillColor fill color of the symbol (if filled)
+ */
+ JKQTPGeoSymbol(JKQTBasePlotter* parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize, QColor color, QColor fillColor);
+ /*! \brief class contructor
+
+ \param parent parent plotter widget
+ \param x x-coordinate of symbol center
+ \param y y-coordinate of symbol center
+ \param symbol symbol type
+ \param symbolSize size of the symbol in pt
+ \param color color of drawing
+ \param fillColor fill color of the symbol (if filled)
+ */
+ JKQTPGeoSymbol(JKQTPlotter* parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize, QColor color, QColor fillColor);
+
+ /*! \brief class contructor
+
+ \param parent parent plotter widget
+ \param x x-coordinate of symbol center
+ \param y y-coordinate of symbol center
+ \param symbol symbol type
+ \param symbolSize size of the symbol in pt
+ \param color color of drawing
+ */
+ JKQTPGeoSymbol(JKQTBasePlotter* parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize, QColor color);
+ /*! \brief class contructor
+
+ \param parent parent plotter widget
+ \param x x-coordinate of symbol center
+ \param y y-coordinate of symbol center
+ \param symbol symbol type
+ \param symbolSize size of the symbol in pt
+ \param color color of drawing
+ */
+ JKQTPGeoSymbol(JKQTPlotter* parent, double x, double y, JKQTPGraphSymbols symbol, double symbolSize, QColor color);
+
+
+ /*! \brief class contructor
+
+ \param parent parent plotter widget
+ \param x x-coordinate of symbol center
+ \param y y-coordinate of symbol center
+ \param symbol symbol type
+ */
+ JKQTPGeoSymbol(JKQTBasePlotter* parent, double x, double y, JKQTPGraphSymbols symbol);
+
+ /*! \brief class contructor
+
+ \param parent parent plotter widget
+ \param x x-coordinate of symbol center
+ \param y y-coordinate of symbol center
+ \param symbol symbol type
+ */
+ JKQTPGeoSymbol(JKQTPlotter* parent, double x, double y, JKQTPGraphSymbols symbol);
+ /*! \brief class contructor
+
+ \param parent parent plotter widget
+ \param x x-coordinate of symbol center
+ \param y y-coordinate of symbol center
+ */
+ JKQTPGeoSymbol(JKQTBasePlotter* parent, double x, double y);
+
+ /*! \brief class contructor
+
+ \param parent parent plotter widget
+ \param x x-coordinate of symbol center
+ \param y y-coordinate of symbol center
+ */
+ JKQTPGeoSymbol(JKQTPlotter* parent, double x, double y);
+ /** \copydoc x */
double getX() const;
/** \copydoc y */
double getY() const;
+ /** \brief returns x and y at the same time \see x, y */
+ QPointF getP() const;
/** \copydoc JKQTPPlotAnnotationElement::getXMinMax() */
virtual bool getXMinMax(double& minx, double& maxx, double& smallestGreaterZero) override;
@@ -90,7 +168,9 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoSymbol: public JKQTPPlotAnnotationElement,
void setX(double __value);
/** \copydoc y */
void setY(double __value);
-
+ /** \brief set x and y at the same time \see x, y */
+ void setP(const QPointF& p);
+
protected:
/** \brief x-position (in plot coordinates) of the symbol (symbol center) */
double x;
@@ -129,6 +209,27 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoText: public JKQTPPlotAnnotationElement, pu
\param fontSize base font size of text
*/
JKQTPGeoText(JKQTPlotter* parent, double x, double y, const QString& text, double fontSize, QColor color);
+
+ /*! \brief class contructor
+
+ \param parent parent plotter widget
+ \param x x-coordinate of text
+ \param y y-coordinate of text
+ \param text the text to display
+ \param fontSize base font size of text
+ */
+ JKQTPGeoText(JKQTBasePlotter* parent, double x, double y, const QString& text, double fontSize);
+ /*! \brief class contructor
+
+ \param parent parent plotter widget
+ \param x x-coordinate of text
+ \param y y-coordinate of text
+ \param text the text to display
+ \param fontSize base font size of text
+ */
+ JKQTPGeoText(JKQTPlotter* parent, double x, double y, const QString& text, double fontSize);
+
+
/*! \brief class contructor
\param parent parent plotter widget
@@ -152,6 +253,8 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoText: public JKQTPPlotAnnotationElement, pu
double getX() const;
/** \copydoc y */
double getY() const;
+ /** \brief returns x and y at the same time \see x, y */
+ QPointF getP() const;
/** \copydoc JKQTPPlotAnnotationElement::getXMinMax() */
@@ -176,6 +279,8 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoText: public JKQTPPlotAnnotationElement, pu
void setX(double __value);
/** \copydoc y */
void setY(double __value);
+ /** \brief set x and y at the same time \see x, y */
+ void setP(const QPointF& p);
protected:
/** \brief x-position (in plot coordinates) of the text (left/baseline) */
diff --git a/lib/jkqtplotter/graphs/jkqtpgeobase.cpp b/lib/jkqtplotter/graphs/jkqtpgeobase.cpp
index 1933e27ab8..15f9c5fd44 100644
--- a/lib/jkqtplotter/graphs/jkqtpgeobase.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpgeobase.cpp
@@ -27,19 +27,29 @@
#include
#define SmallestGreaterZeroCompare_xvsgz() if ((xvsgz>10.0*DBL_MIN)&&((smallestGreaterZero<10.0*DBL_MIN) || (xvsgzgetCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.geometricStyle.fillColorDerivationMode, c));
+}
+
+void JKQTPGeoBaseFilled::setStyle(QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle)
+{
+ setLineColor(color);
+ setLineWidth(lineWidth);
+ setLineStyle(style);
+ setFillColor(fillColor);
+ setFillStyle(fillStyle);
+}
+
+void JKQTPGeoBaseFilled::setStyle(QColor color, double lineWidth, Qt::PenStyle style)
+{
+ setLineColor(color);
+ setLineWidth(lineWidth);
+ setLineStyle(style);
+}
+
+void JKQTPGeoBaseFilled::setStyle(QColor color, Qt::PenStyle style)
+{
+ setLineStyle(style);
+ setLineColor(color);
+}
+
+void JKQTPGeoBaseFilled::setStyle(QColor color, double lineWidth)
+{
+ setLineColor(color);
+ setLineWidth(lineWidth);
+}
+
+void JKQTPGeoBaseFilled::setStyle(QColor color, QColor fillColor)
+{
+ setLineColor(color);
+ setFillColor(fillColor);
+}
+
+void JKQTPGeoBaseFilled::setStyleTransparentFill(QColor color, double lineWidth, Qt::PenStyle style)
+{
+ setLineColor(color);
+ setLineWidth(lineWidth);
+ setLineStyle(style);
+ setFillColor(Qt::transparent);
+ setFillStyle(Qt::SolidPattern);
+}
+
+void JKQTPGeoBaseFilled::setStyleTransparentFill(QColor color, Qt::PenStyle style)
+{
+ setLineColor(color);
+ setLineStyle(style);
+ setFillColor(Qt::transparent);
+ setFillStyle(Qt::SolidPattern);
+}
+
+void JKQTPGeoBaseFilled::setStyleTransparentFill(QColor color, double lineWidth)
+{
+ setLineColor(color);
+ setLineWidth(lineWidth);
+ setFillColor(Qt::transparent);
+ setFillStyle(Qt::SolidPattern);
+}
+
+void JKQTPGeoBaseFilled::setStyleTransparentFill(QColor color)
+{
+ setLineColor(color);
+ setFillColor(Qt::transparent);
+ setFillStyle(Qt::SolidPattern);
}
@@ -123,19 +182,37 @@ void JKQTPGeoBaseFilled::drawKeyMarker(JKQTPEnhancedPainter& painter, QRectF& re
}
-JKQTPGeoBaseDecoratedHeadLine::JKQTPGeoBaseDecoratedHeadLine(QColor color, double lineWidth, JKQTPLineDecoratorStyle headStyle, Qt::PenStyle style, JKQTBasePlotter *parent, DrawMode drawMode):
+JKQTPGeoBaseDecoratedHeadLine::JKQTPGeoBaseDecoratedHeadLine(JKQTPLineDecoratorStyle headStyle, JKQTBasePlotter *parent, DrawMode drawMode):
JKQTPGeometricPlotElement(drawMode, parent)
{
- setLineColor(color);
- setLineWidth(lineWidth);
- setLineStyle(style);
+ int parStyleDummy=0;
+ initDecoratedHeadLineStyle(parent, parStyleDummy, JKQTPPlotStyleType::Geometric);
setHeadDecoratorStyle(headStyle);
}
JKQTPGeoBaseDecoratedHeadLine::JKQTPGeoBaseDecoratedHeadLine(JKQTBasePlotter *parent, DrawMode drawMode):
JKQTPGeometricPlotElement(drawMode, parent)
{
+ initDecoratedHeadLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Geometric);
+}
+void JKQTPGeoBaseDecoratedHeadLine::setStyle(QColor color, double lineWidth)
+{
+ setLineColor(color);
+ setLineWidth(lineWidth);
+}
+
+void JKQTPGeoBaseDecoratedHeadLine::setStyle(QColor color, double lineWidth, Qt::PenStyle style)
+{
+ setLineColor(color);
+ setLineWidth(lineWidth);
+ setLineStyle(style);
+}
+
+void JKQTPGeoBaseDecoratedHeadLine::setStyle(QColor color, Qt::PenStyle style)
+{
+ setLineColor(color);
+ setLineStyle(style);
}
void JKQTPGeoBaseDecoratedHeadLine::setAlpha(float alpha)
@@ -164,12 +241,11 @@ QColor JKQTPGeoBaseDecoratedHeadLine::getKeyLabelColor() const
}
-JKQTPGeoBaseDecoratedLine::JKQTPGeoBaseDecoratedLine(QColor color, double lineWidth, JKQTPLineDecoratorStyle headStyle, JKQTPLineDecoratorStyle tailStyle, Qt::PenStyle style, JKQTBasePlotter *parent, DrawMode drawMode):
+JKQTPGeoBaseDecoratedLine::JKQTPGeoBaseDecoratedLine(JKQTPLineDecoratorStyle headStyle, JKQTPLineDecoratorStyle tailStyle, JKQTBasePlotter *parent, DrawMode drawMode):
JKQTPGeometricPlotElement(drawMode, parent)
{
- setLineColor(color);
- setLineWidth(lineWidth);
- setLineStyle(style);
+ int parStyleDummy=0;
+ initDecoratedLineStyle(parent, parStyleDummy, JKQTPPlotStyleType::Geometric);
setTailDecoratorStyle(tailStyle);
setHeadDecoratorStyle(headStyle);
}
@@ -177,7 +253,27 @@ JKQTPGeoBaseDecoratedLine::JKQTPGeoBaseDecoratedLine(QColor color, double lineWi
JKQTPGeoBaseDecoratedLine::JKQTPGeoBaseDecoratedLine(JKQTBasePlotter *parent, DrawMode drawMode):
JKQTPGeometricPlotElement(drawMode, parent)
{
+ initDecoratedLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Geometric);
+}
+
+void JKQTPGeoBaseDecoratedLine::setStyle(QColor color, double lineWidth)
+{
+ setLineColor(color);
+ setLineWidth(lineWidth);
+}
+
+void JKQTPGeoBaseDecoratedLine::setStyle(QColor color, double lineWidth, Qt::PenStyle style)
+{
+ setLineColor(color);
+ setLineWidth(lineWidth);
+ setLineStyle(style);
+}
+
+void JKQTPGeoBaseDecoratedLine::setStyle(QColor color, Qt::PenStyle style)
+{
+ setLineColor(color);
+ setLineStyle(style);
}
void JKQTPGeoBaseDecoratedLine::setAlpha(float alpha)
diff --git a/lib/jkqtplotter/graphs/jkqtpgeobase.h b/lib/jkqtplotter/graphs/jkqtpgeobase.h
index fe7ac12d9a..4f317f6395 100644
--- a/lib/jkqtplotter/graphs/jkqtpgeobase.h
+++ b/lib/jkqtplotter/graphs/jkqtpgeobase.h
@@ -41,18 +41,18 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoBaseLine: public JKQTPGeometricPlotElement,
public:
/*! \brief class contructor
- \param color color of drawing
- \param style line style of drawing
- \param lineWidth lineWidth of drawing
\param parent the parent plotter object
- */
- explicit JKQTPGeoBaseLine(QColor color, double lineWidth, Qt::PenStyle style=Qt::SolidLine, JKQTBasePlotter* parent=nullptr, DrawMode drawMode=DrawAsGraphicElement);
-
- /*! \brief class contructor
-
+ \param drawMode how to draw te element (as geometric or graphic element)
*/
explicit JKQTPGeoBaseLine(JKQTBasePlotter* parent, DrawMode drawMode=DrawAsGraphicElement);
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, double lineWidth);
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, double lineWidth, Qt::PenStyle style);
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, Qt::PenStyle style);
+
@@ -83,20 +83,26 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoBaseDecoratedHeadLine: public JKQTPGeometri
public:
/*! \brief class contructor
- \param color color of drawing
- \param lineWidth lineWidth of drawing
\param headStyle style of the head decoration
- \param style line style of drawing
\param parent the parent plotter object
+ \param drawMode how to draw te element (as geometric or graphic element)
*/
- explicit JKQTPGeoBaseDecoratedHeadLine(QColor color, double lineWidth, JKQTPLineDecoratorStyle headStyle, Qt::PenStyle style=Qt::SolidLine, JKQTBasePlotter* parent=nullptr, DrawMode drawMode=DrawAsGraphicElement);
+ explicit JKQTPGeoBaseDecoratedHeadLine(JKQTPLineDecoratorStyle headStyle, JKQTBasePlotter* parent, DrawMode drawMode=DrawAsGraphicElement);
/*! \brief class contructor
+ \param parent the parent plotter object
+ \param drawMode how to draw te element (as geometric or graphic element)
*/
explicit JKQTPGeoBaseDecoratedHeadLine(JKQTBasePlotter* parent, DrawMode drawMode=DrawAsGraphicElement);
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, double lineWidth);
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, double lineWidth, Qt::PenStyle style);
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, Qt::PenStyle style);
/** \brief sets the alpha-channel of the \a color (i.e. its transparency) */
@@ -126,17 +132,26 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoBaseDecoratedLine: public JKQTPGeometricPlo
public:
/*! \brief class contructor
- \param color color of drawing
- \param lineWidth lineWidth of drawing
\param headStyle style of the head decoration
\param tailStyle style of the tail decoration
- \param style line style of drawing
\param parent the parent plotter object
+ \param drawMode how to draw te element (as geometric or graphic element)
*/
- explicit JKQTPGeoBaseDecoratedLine(QColor color, double lineWidth, JKQTPLineDecoratorStyle headStyle, JKQTPLineDecoratorStyle tailStyle, Qt::PenStyle style=Qt::SolidLine, JKQTBasePlotter* parent=nullptr, DrawMode drawMode=DrawAsGraphicElement);
- /** \brief class contructor */
+ explicit JKQTPGeoBaseDecoratedLine(JKQTPLineDecoratorStyle headStyle, JKQTPLineDecoratorStyle tailStyle, JKQTBasePlotter* parent, DrawMode drawMode=DrawAsGraphicElement);
+ /** \brief class contructor
+ *
+ * \param parent the parent plotter object
+ * \param drawMode how to draw te element (as geometric or graphic element)
+ */
explicit JKQTPGeoBaseDecoratedLine(JKQTBasePlotter* parent, DrawMode drawMode=DrawAsGraphicElement);
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, double lineWidth);
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, double lineWidth, Qt::PenStyle style);
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, Qt::PenStyle style);
+
/** \brief sets the alpha-channel of the \a color (i.e. its transparency) */
@@ -164,38 +179,10 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoBaseFilled: public JKQTPGeoBaseLine, public
public:
/*! \brief class contructor
- \param color color of drawing
- \param fillColor color of the filling in the drawing
- \param style line style of drawing
- \param fillStyle filling style of the graph
- \param lineWidth lineWidth of drawing
\param parent the parent plotter object
+ \param drawMode how to draw te element (as geometric or graphic element)
*/
- JKQTPGeoBaseFilled(QColor color, QColor fillColor, double lineWidth, Qt::PenStyle style=Qt::SolidLine, Qt::BrushStyle fillStyle=Qt::SolidPattern, JKQTBasePlotter* parent=nullptr, DrawMode drawMode=DrawAsGraphicElement);
- /*! \brief class contructor
-
- \param color color of drawing
- \param fillColor color of the filling in the drawing
- \param style line style of drawing
- \param lineWidth lineWidth of drawing
- \param parent the parent plotter object
- */
- JKQTPGeoBaseFilled(QColor color, QColor fillColor, double lineWidth, Qt::PenStyle style, JKQTBasePlotter* parent, DrawMode drawMode=DrawAsGraphicElement);
- /*! \brief class contructor
-
- \param color color of drawing
- \param fillColor color of the filling in the drawing
- \param lineWidth lineWidth of drawing
- \param parent the parent plotter object
- */
- JKQTPGeoBaseFilled(QColor color, QColor fillColor, double lineWidth, JKQTBasePlotter* parent, DrawMode drawMode=DrawAsGraphicElement);
- /*! \brief class contructor
-
- \param color color of drawing
- \param fillColor color of the filling in the drawing
- \param parent the parent plotter object
- */
- JKQTPGeoBaseFilled(QColor color, QColor fillColor, JKQTBasePlotter *parent, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoBaseFilled(JKQTBasePlotter *parent, DrawMode drawMode=DrawAsGraphicElement);
/** \brief sets the alpha-channel of the \a color and \a fillColor (i.e. its transparency) to the same value */
virtual void setAlpha(float alpha) override;
@@ -203,6 +190,24 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoBaseFilled: public JKQTPGeoBaseLine, public
virtual void setAlpha(float alphaLine, float alphaFill);
/** \brief set line and fill color */
virtual void setColor(QColor c) override;
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle) ;
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, double lineWidth, Qt::PenStyle style) override;
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, Qt::PenStyle style) override;
+ /** \brief set several of the style properties with one call */
+ virtual void setStyle(QColor color, double lineWidth) override;
+ /** \brief set several of the style properties with one call */
+ void setStyle(QColor color, QColor fillColor);
+ /** \brief set several of the style properties with one call, sets fill to transparent */
+ void setStyleTransparentFill(QColor color, double lineWidth, Qt::PenStyle style);
+ /** \brief set several of the style properties with one call, sets fill to transparent */
+ void setStyleTransparentFill(QColor color, Qt::PenStyle style);
+ /** \brief set several of the style properties with one call, sets fill to transparent */
+ void setStyleTransparentFill(QColor color, double lineWidth);
+ /** \brief set several of the style properties with one call, sets fill to transparent */
+ void setStyleTransparentFill(QColor color);
/** \brief plots a key marker inside the specified rectangle \a rect */
virtual void drawKeyMarker(JKQTPEnhancedPainter& painter, QRectF& rect) override;
diff --git a/lib/jkqtplotter/graphs/jkqtpgeolines.cpp b/lib/jkqtplotter/graphs/jkqtpgeolines.cpp
index abd2101195..dc02b07f62 100644
--- a/lib/jkqtplotter/graphs/jkqtpgeolines.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpgeolines.cpp
@@ -33,19 +33,7 @@
-JKQTPGeoLine::JKQTPGeoLine(JKQTBasePlotter* parent, double x1, double y1, double x2, double y2, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoBaseDecoratedLine(color, lineWidth, JKQTPNoDecorator, JKQTPNoDecorator, style, parent)
-{
- this->x1=x1;
- this->y1=y1;
- this->x2=x2;
- this->y2=y2;
-}
-JKQTPGeoLine::JKQTPGeoLine(JKQTPlotter* parent, double x1, double y1, double x2, double y2, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoLine(parent->getPlotter(), x1,y1,x2,y2,color, lineWidth, style)
-{
-}
JKQTPGeoLine::JKQTPGeoLine(JKQTBasePlotter *parent, double x1_, double y1_, double x2_, double y2_):
JKQTPGeoBaseDecoratedLine(parent), x1(x1_), y1(y1_), x2(x2_), y2(y2_)
@@ -59,17 +47,7 @@ JKQTPGeoLine::JKQTPGeoLine(JKQTPlotter *parent, double x1, double y1, double x2,
{
}
-JKQTPGeoLine::JKQTPGeoLine(JKQTBasePlotter *parent, const QPointF &p1, const QPointF &p2, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoLine(parent, p1.x(), p1.y(), p2.x(), p2.y(), color, lineWidth, style)
-{
-}
-
-JKQTPGeoLine::JKQTPGeoLine(JKQTPlotter *parent, const QPointF &p1, const QPointF &p2, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoLine(parent, p1.x(), p1.y(), p2.x(), p2.y(), color, lineWidth, style)
-{
-
-}
JKQTPGeoLine::JKQTPGeoLine(JKQTBasePlotter *parent, const QPointF &p1, const QPointF &p2):
JKQTPGeoLine(parent, p1.x(), p1.y(), p2.x(), p2.y())
@@ -83,17 +61,6 @@ JKQTPGeoLine::JKQTPGeoLine(JKQTPlotter *parent, const QPointF &p1, const QPointF
}
-JKQTPGeoLine::JKQTPGeoLine(JKQTBasePlotter *parent, const QLineF &line, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoLine(parent, line.x1(), line.y1(), line.x2(), line.y2(), color, lineWidth, style)
-{
-
-}
-
-JKQTPGeoLine::JKQTPGeoLine(JKQTPlotter *parent, const QLineF &line, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoLine(parent, line.x1(), line.y1(), line.x2(), line.y2(), color, lineWidth, style)
-{
-
-}
JKQTPGeoLine::JKQTPGeoLine(JKQTBasePlotter *parent, const QLineF &line):
JKQTPGeoLine(parent, line.x1(), line.y1(), line.x2(), line.y2())
@@ -269,23 +236,23 @@ void JKQTPGeoLine::setLine(const QLineF &line)
-JKQTPGeoArrow::JKQTPGeoArrow(JKQTBasePlotter* parent, double x1, double y1, double x2, double y2, QColor color, JKQTPLineDecoratorStyle headStyle, JKQTPLineDecoratorStyle tailStyle, double lineWidth, Qt::PenStyle style):
- JKQTPGeoLine(parent, x1,y1,x2,y2,color, lineWidth, style)
+JKQTPGeoArrow::JKQTPGeoArrow(JKQTBasePlotter* parent, double x1, double y1, double x2, double y2, JKQTPLineDecoratorStyle headStyle, JKQTPLineDecoratorStyle tailStyle):
+ JKQTPGeoLine(parent, x1,y1,x2,y2)
{
setHeadDecoratorStyle(headStyle);
setTailDecoratorStyle(tailStyle);
}
-JKQTPGeoArrow::JKQTPGeoArrow(JKQTPlotter* parent, double x1, double y1, double x2, double y2, QColor color, JKQTPLineDecoratorStyle headStyle, JKQTPLineDecoratorStyle tailStyle, double lineWidth, Qt::PenStyle style):
- JKQTPGeoArrow(parent->getPlotter(), x1,y1,x2,y2,color, headStyle, tailStyle, lineWidth, style)
+JKQTPGeoArrow::JKQTPGeoArrow(JKQTPlotter* parent, double x1, double y1, double x2, double y2, JKQTPLineDecoratorStyle headStyle, JKQTPLineDecoratorStyle tailStyle):
+ JKQTPGeoArrow(parent->getPlotter(), x1,y1,x2,y2, headStyle, tailStyle)
{
}
-JKQTPGeoInfiniteLine::JKQTPGeoInfiniteLine(JKQTBasePlotter* parent, double x, double y, double dx, double dy, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoBaseDecoratedHeadLine(color, lineWidth, JKQTPNoDecorator, style, parent)
+JKQTPGeoInfiniteLine::JKQTPGeoInfiniteLine(JKQTBasePlotter* parent, double x, double y, double dx, double dy):
+ JKQTPGeoBaseDecoratedHeadLine(parent)
{
this->x=x;
this->y=y;
@@ -294,8 +261,8 @@ JKQTPGeoInfiniteLine::JKQTPGeoInfiniteLine(JKQTBasePlotter* parent, double x, do
this->two_sided=false;
}
-JKQTPGeoInfiniteLine::JKQTPGeoInfiniteLine(JKQTPlotter* parent, double x, double y, double dx, double dy, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoInfiniteLine(parent->getPlotter(), x, y, dx, dy, color, lineWidth, style)
+JKQTPGeoInfiniteLine::JKQTPGeoInfiniteLine(JKQTPlotter* parent, double x, double y, double dx, double dy):
+ JKQTPGeoInfiniteLine(parent->getPlotter(), x, y, dx, dy)
{
}
@@ -544,25 +511,25 @@ void JKQTPGeoInfiniteLine::setP(const QPointF &p)
-JKQTPGeoPolyLines::JKQTPGeoPolyLines(JKQTBasePlotter* parent, const QVector& points, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoBaseDecoratedLine(color, lineWidth, JKQTPNoDecorator, JKQTPNoDecorator, style, parent)
+JKQTPGeoPolyLines::JKQTPGeoPolyLines(JKQTBasePlotter* parent, const QVector& points):
+ JKQTPGeoBaseDecoratedLine(parent)
{
this->points=points;
}
-JKQTPGeoPolyLines::JKQTPGeoPolyLines(JKQTPlotter* parent, const QVector& points, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoPolyLines(parent->getPlotter(), points, color, lineWidth, style)
+JKQTPGeoPolyLines::JKQTPGeoPolyLines(JKQTPlotter* parent, const QVector& points):
+ JKQTPGeoPolyLines(parent->getPlotter(), points)
{
}
-JKQTPGeoPolyLines::JKQTPGeoPolyLines(JKQTBasePlotter *parent, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoBaseDecoratedLine(color, lineWidth, JKQTPNoDecorator, JKQTPNoDecorator, style, parent)
+JKQTPGeoPolyLines::JKQTPGeoPolyLines(JKQTBasePlotter *parent):
+ JKQTPGeoBaseDecoratedLine(parent)
{
}
-JKQTPGeoPolyLines::JKQTPGeoPolyLines(JKQTPlotter *parent, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoPolyLines(parent->getPlotter(), color, lineWidth, style)
+JKQTPGeoPolyLines::JKQTPGeoPolyLines(JKQTPlotter *parent):
+ JKQTPGeoPolyLines(parent->getPlotter())
{
}
@@ -728,8 +695,8 @@ QVector::const_iterator JKQTPGeoPolyLines::pointsCEnd() const
}
-JKQTPGeoArc::JKQTPGeoArc(JKQTBasePlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoBaseLine(color, lineWidth, style, parent)
+JKQTPGeoArc::JKQTPGeoArc(JKQTBasePlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop):
+ JKQTPGeoBaseLine(parent)
{
this->angleStart=angleStart;
this->angleStop=angleStop;
@@ -740,8 +707,8 @@ JKQTPGeoArc::JKQTPGeoArc(JKQTBasePlotter* parent, double x, double y, double wid
this->angle=0;
}
-JKQTPGeoArc::JKQTPGeoArc(JKQTPlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, QColor color, double lineWidth, Qt::PenStyle style):
- JKQTPGeoArc(parent->getPlotter(), x, y, width, height, angleStart, angleStop, color, lineWidth, style)
+JKQTPGeoArc::JKQTPGeoArc(JKQTPlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop):
+ JKQTPGeoArc(parent->getPlotter(), x, y, width, height, angleStart, angleStop)
{
}
diff --git a/lib/jkqtplotter/graphs/jkqtpgeolines.h b/lib/jkqtplotter/graphs/jkqtpgeolines.h
index 886bf9829f..24a89a5904 100644
--- a/lib/jkqtplotter/graphs/jkqtpgeolines.h
+++ b/lib/jkqtplotter/graphs/jkqtpgeolines.h
@@ -62,32 +62,6 @@
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoLine: public JKQTPGeoBaseDecoratedLine {
Q_OBJECT
public:
- /** \brief class constructor
- *
- * \param parent the parent plotter object
- * \param x1 x-coordinate of first point of line
- * \param y1 y-coordinate of first point of line
- * \param x2 x-coordinate of second point of line
- * \param y2 y-coordinate of second point of line
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param parent the parent plotter object
- */
- JKQTPGeoLine(JKQTBasePlotter* parent, double x1, double y1, double x2, double y2, QColor color, double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
- /** \brief class constructor
- *
- * \param parent the parent plotter object
- * \param x1 x-coordinate of first point of line
- * \param y1 y-coordinate of first point of line
- * \param x2 x-coordinate of second point of line
- * \param y2 y-coordinate of second point of line
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param parent the parent plotter object
- */
- JKQTPGeoLine(JKQTPlotter* parent, double x1, double y1, double x2, double y2, QColor color, double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -111,28 +85,6 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoLine: public JKQTPGeoBaseDecoratedLine {
- /** \brief class constructor
- *
- * \param parent the parent plotter object
- * \param p1 first point of line (tail)
- * \param p2 second point of line (head)
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param parent the parent plotter object
- */
- JKQTPGeoLine(JKQTBasePlotter* parent, const QPointF& p1, const QPointF& p2, QColor color, double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
- /** \brief class constructor
- *
- * \param parent the parent plotter object
- * \param p1 first point of line (tail)
- * \param p2 second point of line (head)
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param parent the parent plotter object
- */
- JKQTPGeoLine(JKQTPlotter* parent, const QPointF& p1, const QPointF& p2, QColor color, double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -152,26 +104,6 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoLine: public JKQTPGeoBaseDecoratedLine {
- /** \brief class constructor
- *
- * \param parent the parent plotter object
- * \param line the line
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param parent the parent plotter object
- */
- JKQTPGeoLine(JKQTBasePlotter* parent, const QLineF& line, QColor color, double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
- /** \brief class constructor
- *
- * \param parent the parent plotter object
- * \param line the line
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param parent the parent plotter object
- */
- JKQTPGeoLine(JKQTPlotter* parent, const QLineF& line, QColor color, double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -265,12 +197,10 @@ public:
* \param y1 y-coordinate of first point of line
* \param x2 x-coordinate of second point of line
* \param y2 y-coordinate of second point of line
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param parent the parent plotter object
+ * \param headStyle decorator/arrow style of the head
+ * \param tailStyle decorator/arrow style of the tail
*/
- JKQTPGeoArrow(JKQTBasePlotter* parent, double x1, double y1, double x2, double y2, QColor color, JKQTPLineDecoratorStyle headStyle=JKQTPDefaultLineDecorator, JKQTPLineDecoratorStyle tailStyle=JKQTPNoDecorator, double lineWidth=1.0, Qt::PenStyle style=Qt::SolidLine);
+ JKQTPGeoArrow(JKQTBasePlotter* parent, double x1, double y1, double x2, double y2, JKQTPLineDecoratorStyle headStyle=JKQTPDefaultLineDecorator, JKQTPLineDecoratorStyle tailStyle=JKQTPNoDecorator);
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -278,13 +208,42 @@ public:
* \param y1 y-coordinate of first point of line
* \param x2 x-coordinate of second point of line
* \param y2 y-coordinate of second point of line
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param parent the parent plotter object
+ * \param headStyle decorator/arrow style of the head
+ * \param tailStyle decorator/arrow style of the tail
*/
- JKQTPGeoArrow(JKQTPlotter* parent, double x1, double y1, double x2, double y2, QColor color, JKQTPLineDecoratorStyle headStyle=JKQTPDefaultLineDecorator, JKQTPLineDecoratorStyle tailStyle=JKQTPNoDecorator, double lineWidth=1.0, Qt::PenStyle style=Qt::SolidLine);
+ JKQTPGeoArrow(JKQTPlotter* parent, double x1, double y1, double x2, double y2, JKQTPLineDecoratorStyle headStyle=JKQTPDefaultLineDecorator, JKQTPLineDecoratorStyle tailStyle=JKQTPNoDecorator);
+ /** \brief class constructor
+ *
+ * \param parent the parent plotter object
+ * \param p1 first point of line (tail)
+ * \param p2 second point of line (head)
+ *
+ */
+ JKQTPGeoArrow(JKQTBasePlotter* parent, const QPointF& p1, const QPointF& p2, JKQTPLineDecoratorStyle headStyle=JKQTPDefaultLineDecorator, JKQTPLineDecoratorStyle tailStyle=JKQTPNoDecorator);
+ /** \brief class constructor
+ *
+ * \param parent the parent plotter object
+ * \param p1 first point of line (tail)
+ * \param p2 second point of line (head)
+ */
+ JKQTPGeoArrow(JKQTPlotter* parent, const QPointF& p1, const QPointF& p2, JKQTPLineDecoratorStyle headStyle=JKQTPDefaultLineDecorator, JKQTPLineDecoratorStyle tailStyle=JKQTPNoDecorator);
+
+
+
+ /** \brief class constructor
+ *
+ * \param parent the parent plotter object
+ * \param line the line
+ *
+ */
+ JKQTPGeoArrow(JKQTBasePlotter* parent, const QLineF& line, JKQTPLineDecoratorStyle headStyle=JKQTPDefaultLineDecorator, JKQTPLineDecoratorStyle tailStyle=JKQTPNoDecorator);
+ /** \brief class constructor
+ *
+ * \param parent the parent plotter object
+ * \param line the line
+ */
+ JKQTPGeoArrow(JKQTPlotter* parent, const QLineF& line, JKQTPLineDecoratorStyle headStyle=JKQTPDefaultLineDecorator, JKQTPLineDecoratorStyle tailStyle=JKQTPNoDecorator);
};
@@ -324,7 +283,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoInfiniteLine: public JKQTPGeoBaseDecoratedH
* \param lineWidth width of line
* \param style line style
*/
- JKQTPGeoInfiniteLine(JKQTBasePlotter* parent, double x, double y, double dx, double dy, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
+ JKQTPGeoInfiniteLine(JKQTBasePlotter* parent, double x, double y, double dx, double dy);
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -336,7 +295,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoInfiniteLine: public JKQTPGeoBaseDecoratedH
* \param lineWidth width of line
* \param style line style
*/
- JKQTPGeoInfiniteLine(JKQTPlotter* parent, double x, double y, double dx, double dy, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
+ JKQTPGeoInfiniteLine(JKQTPlotter* parent, double x, double y, double dx, double dy);
/** \copydoc JKQTPGeometricPlotElement::getXMinMax() */
@@ -426,7 +385,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPolyLines: public JKQTPGeoBaseDecoratedLine
* \param lineWidth width of line
* \param style line style
*/
- JKQTPGeoPolyLines(JKQTBasePlotter* parent, const QVector& points, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
+ JKQTPGeoPolyLines(JKQTBasePlotter* parent, const QVector& points);
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -435,7 +394,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPolyLines: public JKQTPGeoBaseDecoratedLine
* \param lineWidth width of line
* \param style line style
*/
- JKQTPGeoPolyLines(JKQTPlotter* parent, const QVector& points, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
+ JKQTPGeoPolyLines(JKQTPlotter* parent, const QVector& points);
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -443,7 +402,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPolyLines: public JKQTPGeoBaseDecoratedLine
* \param lineWidth width of line
* \param style line style
*/
- JKQTPGeoPolyLines(JKQTBasePlotter* parent, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
+ JKQTPGeoPolyLines(JKQTBasePlotter* parent);
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -451,7 +410,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPolyLines: public JKQTPGeoBaseDecoratedLine
* \param lineWidth width of line
* \param style line style
*/
- JKQTPGeoPolyLines(JKQTPlotter* parent, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
+ JKQTPGeoPolyLines(JKQTPlotter* parent);
/** \copydoc JKQTPGeometricPlotElement::getXMinMax() */
@@ -535,7 +494,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoArc: public JKQTPGeoBaseLine {
* \param style line style
*/
- JKQTPGeoArc(JKQTBasePlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
+ JKQTPGeoArc(JKQTBasePlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop);
/** \brief class constructor
* \param parent the parent plotter object
@@ -550,7 +509,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoArc: public JKQTPGeoBaseLine {
* \param style line style
*/
- JKQTPGeoArc(JKQTPlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine);
+ JKQTPGeoArc(JKQTPlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop);
/** \copydoc JKQTPGeometricPlotElement::getXMinMax() */
virtual bool getXMinMax(double& minx, double& maxx, double& smallestGreaterZero) override;
diff --git a/lib/jkqtplotter/graphs/jkqtpgeoshapes.cpp b/lib/jkqtplotter/graphs/jkqtpgeoshapes.cpp
index d5642df9b4..26f21a130c 100644
--- a/lib/jkqtplotter/graphs/jkqtpgeoshapes.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpgeoshapes.cpp
@@ -32,38 +32,26 @@
-JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTBasePlotter* parent, double x, double y, double width, double height, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoBaseFilled(color, fillColor, lineWidth, style, fillStyle, parent, drawMode)
+
+
+JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTBasePlotter *parent, double x, double y, double width, double height, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoBaseFilled(parent, drawMode)
{
this->x=x;
this->y=y;
- angle=0;
+ this->angle=0;
this->width=width;
this->height=height;
}
-JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTPlotter* parent, double x, double y, double width, double height, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoRectangle(parent->getPlotter(), x, y, width, height, color, lineWidth, style, fillColor, fillStyle, drawMode)
+JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTPlotter *parent, double x, double y, double width, double height, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoRectangle(parent->getPlotter(), x, y, width, height, drawMode)
{
+
}
-JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTBasePlotter *parent, double x, double y, double width, double height, double angle, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoBaseFilled(color, fillColor, lineWidth, style, fillStyle, parent, drawMode)
-{
- this->x=x;
- this->y=y;
- this->angle=angle;
- this->width=width;
- this->height=height;
-}
-
-JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTPlotter *parent, double x, double y, double width, double height, double angle, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoRectangle(parent->getPlotter(), x, y, width, height, angle, color, lineWidth, style, fillColor, fillStyle, drawMode)
-{
-}
-
-JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTBasePlotter *parent, QPointF bottomleft, QPointF topright, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoBaseFilled(color, fillColor, lineWidth, style, fillStyle, parent, drawMode)
+JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTBasePlotter *parent, QPointF bottomleft, QPointF topright, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoBaseFilled(parent, drawMode)
{
this->angle=0;
this->width=fabs(topright.x()-bottomleft.x());
@@ -72,34 +60,29 @@ JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTBasePlotter *parent, QPointF bottomleft
this->y=bottomleft.y()+this->height/2.0;
}
-JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTPlotter *parent, QPointF bottomleft, QPointF topright, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoRectangle(parent->getPlotter(), bottomleft, topright, color, lineWidth, style, fillColor, fillStyle, drawMode)
-{
-}
-
-JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTBasePlotter *parent, const QPointF ¢er, const QSizeF &size, double angle, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, JKQTPGeometricPlotElement::DrawMode drawMode):
- JKQTPGeoRectangle(parent, center.x(), center.y(), size.width(), size.height(), angle, color, lineWidth, style, fillColor, fillStyle, drawMode)
+JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTPlotter *parent, QPointF bottomleft, QPointF topright, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoRectangle(parent->getPlotter(), bottomleft, topright, drawMode)
{
}
-JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTPlotter *parent, const QPointF ¢er, const QSizeF &size, double angle, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, JKQTPGeometricPlotElement::DrawMode drawMode):
- JKQTPGeoRectangle(parent->getPlotter(), center, size, angle, color, lineWidth, style, fillColor, fillStyle, drawMode)
+JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTBasePlotter *parent, const QPointF ¢er, const QSizeF &size, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoBaseFilled(parent, drawMode)
+{
+ this->x=center.x();
+ this->y=center.y();
+ this->angle=0;
+ this->width=size.width();
+ this->height=size.height();
+}
+
+JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTPlotter *parent, const QPointF ¢er, const QSizeF &size, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoRectangle(parent->getPlotter(), center, size, drawMode)
{
}
-JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTBasePlotter *parent, const QPointF ¢er, const QSizeF &size, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, JKQTPGeometricPlotElement::DrawMode drawMode):
- JKQTPGeoRectangle(parent, center.x(), center.y(), size.width(), size.height(), color, lineWidth, style, fillColor, fillStyle, drawMode)
-{
-}
-
-JKQTPGeoRectangle::JKQTPGeoRectangle(JKQTPlotter *parent, const QPointF ¢er, const QSizeF &size, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, JKQTPGeometricPlotElement::DrawMode drawMode):
- JKQTPGeoRectangle(parent->getPlotter(), center, size, color, lineWidth, style, fillColor, fillStyle, drawMode)
-{
-
-}
QTransform JKQTPGeoRectangle::getTransform() {
QTransform trans;
@@ -259,24 +242,29 @@ QRectF JKQTPGeoRectangle::getBottomLeftRectangle() const
-JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTBasePlotter* parent, const QVector& points, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoBaseFilled(color, fillColor, lineWidth, style, fillStyle, parent, drawMode)
+
+JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTBasePlotter *parent, const QVector &points, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoBaseFilled(parent, drawMode)
{
this->points=points;
}
-JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTPlotter* parent, const QVector& points, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoPolygon(parent->getPlotter(), points, color, lineWidth, style, fillColor, fillStyle, drawMode)
+
+JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTPlotter *parent, const QVector &points, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoPolygon(parent->getPlotter(), points, drawMode)
{
}
-JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTBasePlotter* parent, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoBaseFilled(color, fillColor, lineWidth, style, fillStyle, parent, drawMode)
+JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTBasePlotter *parent, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoBaseFilled(parent, drawMode)
{
+
}
-JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTPlotter* parent, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoPolygon(parent->getPlotter(), color, lineWidth, style, fillColor, fillStyle, drawMode)
+
+JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTPlotter *parent, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoPolygon(parent->getPlotter(), drawMode)
{
+
}
bool JKQTPGeoPolygon::getXMinMax(double& minx, double& maxx, double& smallestGreaterZero) {
@@ -412,41 +400,44 @@ QVector::const_iterator JKQTPGeoPolygon::pointsCEnd() const
-JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTBasePlotter* parent, double x, double y, double width, double height, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoRectangle(parent, x, y, width, height, color, lineWidth, style, fillColor, fillStyle, drawMode)
+
+
+
+
+JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTBasePlotter *parent, double x, double y, double width, double height, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoRectangle(parent, x, y, width, height, drawMode)
+{
+}
+
+JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTPlotter *parent, double x, double y, double width, double height, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoEllipse(parent->getPlotter(), x, y, width, height, drawMode)
{
}
-JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTPlotter* parent, double x, double y, double width, double height, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoEllipse(parent->getPlotter(), x, y, width, height, color, lineWidth, style, fillColor, fillStyle, drawMode)
+JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTBasePlotter *parent, QPointF bottomleft, QPointF topright, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoRectangle(parent, bottomleft, topright, drawMode)
+{
+}
+
+JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTPlotter *parent, QPointF bottomleft, QPointF topright, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoEllipse(parent->getPlotter(), bottomleft, topright, drawMode)
{
}
-JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTBasePlotter *parent, double x, double y, double width, double height, double angle, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoRectangle(parent, x, y, width, height, angle, color, lineWidth, style, fillColor, fillStyle, drawMode)
+JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTBasePlotter *parent, const QPointF ¢er, const QSizeF &size, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoRectangle(parent, center, size, drawMode)
+{
+}
+
+JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTPlotter *parent, const QPointF ¢er, const QSizeF &size, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoEllipse(parent->getPlotter(), center, size, drawMode)
{
}
-JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTPlotter *parent, double x, double y, double width, double height, double angle, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoEllipse(parent->getPlotter(), x, y, width, height, angle, color, lineWidth, style, fillColor, fillStyle, drawMode)
-{
-}
-
-JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTBasePlotter *parent, QPointF bottomleft, QPointF topright, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoRectangle(parent, bottomleft, topright, color, lineWidth, style, fillColor, fillStyle, drawMode)
-{
-
-}
-
-JKQTPGeoEllipse::JKQTPGeoEllipse(JKQTPlotter *parent, QPointF bottomleft, QPointF topright, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoEllipse(parent->getPlotter(), bottomleft, topright, color, lineWidth, style, fillColor, fillStyle, drawMode)
-{
-
-}
void JKQTPGeoEllipse::draw(JKQTPEnhancedPainter& painter) {
@@ -465,16 +456,16 @@ void JKQTPGeoEllipse::drawInternal(JKQTPEnhancedPainter& painter, double angleSt
auto fTransform=std::bind([](const JKQTPGeometricPlotElement* plot, const QPointF& p) { return plot->transform(p); }, this, std::placeholders::_1);
QPolygonF rect;
if(mode==InternalDrawMode::Ellipse) {
- rect=JKQTPSplitEllipseIntoPoints(fTransform, x,y,width/2.0, height/2.0,0,360, angle);
+ rect=JKQTPSplitEllipseIntoPoints(fTransform, x,y,width/2.0, height/2.0,0,360);
} else if (mode==InternalDrawMode::Pie) {
QPointF first, last;
- rect=JKQTPSplitEllipseIntoPoints(fTransform, x,y,width/2.0, height/2.0,angleStart,angleStop, angle, nullptr, nullptr, &first, &last);
+ rect=JKQTPSplitEllipseIntoPoints(fTransform, x,y,width/2.0, height/2.0, angleStart, angleStop, 0, nullptr, nullptr, &first, &last);
QVector pie;
pie<angleStart=angleStart;
this->angleStop=angleStop;
}
-JKQTPGeoPie::JKQTPGeoPie(JKQTPlotter* parent, double x, double y, double width, double height,double angleStart, double angleStop, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoPie(parent->getPlotter(), x, y, width, height, angleStart, angleStop, color, lineWidth, style, fillColor, fillStyle, drawMode)
+JKQTPGeoPie::JKQTPGeoPie(JKQTPlotter *parent, double x, double y, double width, double height, double angleStart, double angleStop, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoPie(parent->getPlotter(), x, y, width, height, angleStart, angleStop, drawMode)
{
}
-
void JKQTPGeoPie::draw(JKQTPEnhancedPainter& painter) {
drawInternal(painter, angleStart, angleStop, InternalDrawMode::Pie);
}
@@ -527,7 +516,7 @@ double JKQTPGeoPie::getAngleStop() const
}
bool JKQTPGeoPie::getXMinMax(double& minx, double& maxx, double& smallestGreaterZero) {
- QPolygonF rect=QPolygonF(JKQTPSplitEllipseIntoPoints(x,y,width/2.0, height/2.0,angleStart,angleStop,angle, 180));
+ QPolygonF rect=QPolygonF(JKQTPSplitEllipseIntoPoints(x,y,width/2.0, height/2.0, angleStart, angleStop, 180));
rect.append(QPointF(x,y));
minx=rect.boundingRect().left();
maxx=rect.boundingRect().right();
@@ -540,7 +529,7 @@ bool JKQTPGeoPie::getXMinMax(double& minx, double& maxx, double& smallestGreater
}
bool JKQTPGeoPie::getYMinMax(double& miny, double& maxy, double& smallestGreaterZero) {
- QPolygonF rect=QPolygonF(JKQTPSplitEllipseIntoPoints(x,y,width/2.0, height/2.0,angleStart,angleStop,angle, 180));
+ QPolygonF rect=QPolygonF(JKQTPSplitEllipseIntoPoints(x,y,width/2.0, height/2.0, angleStart, angleStop, 180));
rect.append(QPointF(x,y));
miny=rect.boundingRect().bottom();
maxy=rect.boundingRect().top();
@@ -555,25 +544,26 @@ bool JKQTPGeoPie::getYMinMax(double& miny, double& maxy, double& smallestGreater
-JKQTPGeoChord::JKQTPGeoChord(JKQTBasePlotter* parent, double x, double y, double width, double height,double angleStart, double angleStop, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoPie(parent, x, y, width, height, angleStart, angleStop, color, lineWidth, style, fillColor, fillStyle, drawMode)
+
+JKQTPGeoChord::JKQTPGeoChord(JKQTBasePlotter *parent, double x, double y, double width, double height, double angleStart, double angleStop, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoPie(parent, x, y, width, height, angleStart, angleStop, drawMode)
{
}
-JKQTPGeoChord::JKQTPGeoChord(JKQTPlotter* parent, double x, double y, double width, double height,double angleStart, double angleStop, QColor color, double lineWidth, Qt::PenStyle style, QColor fillColor, Qt::BrushStyle fillStyle, DrawMode drawMode):
- JKQTPGeoChord(parent->getPlotter(), x, y, width, height, angleStart, angleStop, color, lineWidth, style, fillColor, fillStyle, drawMode)
+JKQTPGeoChord::JKQTPGeoChord(JKQTPlotter *parent, double x, double y, double width, double height, double angleStart, double angleStop, JKQTPGeometricPlotElement::DrawMode drawMode):
+ JKQTPGeoChord(parent->getPlotter(), x, y, width, height, angleStart, angleStop, drawMode)
{
}
-
void JKQTPGeoChord::draw(JKQTPEnhancedPainter& painter) {
drawInternal(painter, angleStart, angleStop, InternalDrawMode::Chord);
}
+
bool JKQTPGeoChord::getXMinMax(double& minx, double& maxx, double& smallestGreaterZero) {
- const QPolygonF rect=QPolygonF(JKQTPSplitEllipseIntoPoints(x,y,width/2.0, height/2.0,angleStart,angleStop,angle, 180));
+ const QPolygonF rect=QPolygonF(JKQTPSplitEllipseIntoPoints(x,y,width/2.0, height/2.0, angleStart, angleStop, 180));
minx=rect.boundingRect().left();
maxx=rect.boundingRect().right();
if (minx>maxx) std::swap(minx, maxx);
@@ -584,7 +574,7 @@ bool JKQTPGeoChord::getXMinMax(double& minx, double& maxx, double& smallestGreat
}
bool JKQTPGeoChord::getYMinMax(double& miny, double& maxy, double& smallestGreaterZero) {
- const QPolygonF rect=QPolygonF(JKQTPSplitEllipseIntoPoints(x,y,width/2.0, height/2.0,angleStart,angleStop,angle, 180));
+ const QPolygonF rect=QPolygonF(JKQTPSplitEllipseIntoPoints(x,y,width/2.0, height/2.0, angleStart, angleStop, 180));
miny=rect.boundingRect().bottom();
maxy=rect.boundingRect().top();
if (miny>maxy) std::swap(miny, maxy);
diff --git a/lib/jkqtplotter/graphs/jkqtpgeoshapes.h b/lib/jkqtplotter/graphs/jkqtpgeoshapes.h
index 45aab1231a..f4a5a81e3c 100644
--- a/lib/jkqtplotter/graphs/jkqtpgeoshapes.h
+++ b/lib/jkqtplotter/graphs/jkqtpgeoshapes.h
@@ -49,6 +49,9 @@
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoRectangle: public JKQTPGeoBaseFilled {
Q_OBJECT
public:
+
+
+
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -56,13 +59,10 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoRectangle: public JKQTPGeoBaseFilled {
* \param y y-coordinate of center of rectangle
* \param width width of rectangle
* \param height of rectangle
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of rectangle
- * \param fillStyle filling style of rectangle
+ *
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoRectangle(JKQTBasePlotter* parent, double x, double y, double width, double height, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoRectangle(JKQTBasePlotter* parent, double x, double y, double width, double height, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -70,117 +70,48 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoRectangle: public JKQTPGeoBaseFilled {
* \param y y-coordinate of center of rectangle
* \param width width of rectangle
* \param height of rectangle
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of rectangle
- * \param fillStyle filling style of rectangle
- */
- JKQTPGeoRectangle(JKQTPlotter* parent, double x, double y, double width, double height, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
- /** \brief class constructor
*
- * \param parent the parent plotter object
- * \param x x-coordinate of center of rectangle
- * \param y y-coordinate of center of rectangle
- * \param width width of rectangle
- * \param height of rectangle
- * \param angle rotation angle of the rectangle
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of rectangle
- * \param fillStyle filling style of rectangle
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoRectangle(JKQTBasePlotter* parent, double x, double y, double width, double height, double angle, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
- /** \brief class constructor
- *
- * \param parent the parent plotter object
- * \param x x-coordinate of center of rectangle
- * \param y y-coordinate of center of rectangle
- * \param width width of rectangle
- * \param height of rectangle
- * \param angle rotation angle of the rectangle
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of rectangle
- * \param fillStyle filling style of rectangle
- */
- JKQTPGeoRectangle(JKQTPlotter* parent, double x, double y, double width, double height, double angle, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoRectangle(JKQTPlotter* parent, double x, double y, double width, double height, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
* \param bottomleft bottom left corner of rectangle
* \param topright top right corner of rectangle
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of rectangle
- * \param fillStyle filling style of rectangle
+ *
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoRectangle(JKQTBasePlotter* parent, QPointF bottomleft, QPointF topright, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoRectangle(JKQTBasePlotter* parent, QPointF bottomleft, QPointF topright, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
* \param bottomleft bottom left corner of rectangle
* \param topright top right corner of rectangle
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of rectangle
- * \param fillStyle filling style of rectangle
+ *
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoRectangle(JKQTPlotter* parent, QPointF bottomleft, QPointF topright, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoRectangle(JKQTPlotter* parent, QPointF bottomleft, QPointF topright, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
* \param center center of rectangle
* \param size width and heigt of rectangle
- * \param angle rotation angle of the rectangle
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of rectangle
- * \param fillStyle filling style of rectangle
+ *
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoRectangle(JKQTBasePlotter* parent, const QPointF& center, const QSizeF& size, double angle, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoRectangle(JKQTBasePlotter* parent, const QPointF& center, const QSizeF& size, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
* \param center center of rectangle
* \param size width and heigt of rectangle
- * \param angle rotation angle of the rectangle
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of rectangle
- * \param fillStyle filling style of rectangle
- */
- JKQTPGeoRectangle(JKQTPlotter* parent, const QPointF& center, const QSizeF& size, double angle, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
- /** \brief class constructor
*
- * \param parent the parent plotter object
- * \param center center of rectangle
- * \param size width and heigt of rectangle
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of rectangle
- * \param fillStyle filling style of rectangle
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoRectangle(JKQTBasePlotter* parent, const QPointF& center, const QSizeF& size, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
- /** \brief class constructor
- *
- * \param parent the parent plotter object
- * \param center center of rectangle
- * \param size width and heigt of rectangle
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of rectangle
- * \param fillStyle filling style of rectangle
- */
- JKQTPGeoRectangle(JKQTPlotter* parent, const QPointF& center, const QSizeF& size, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoRectangle(JKQTPlotter* parent, const QPointF& center, const QSizeF& size, DrawMode drawMode=DrawAsGraphicElement);
+
+
@@ -275,45 +206,29 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPolygon: public JKQTPGeoBaseFilled {
*
* \param parent the parent plotter object
* \param points points on the polygon
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor color of the filling
- * \param fillStyle style of the filling
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoPolygon(JKQTBasePlotter* parent, const QVector& points, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoPolygon(JKQTBasePlotter* parent, const QVector& points, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
* \param points points on the polygon
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor color of the filling
- * \param fillStyle style of the filling
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoPolygon(JKQTPlotter* parent, const QVector& points, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoPolygon(JKQTPlotter* parent, const QVector& points, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor color of the filling
- * \param fillStyle style of the filling
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoPolygon(JKQTBasePlotter* parent, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoPolygon(JKQTBasePlotter* parent, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor color of the filling
- * \param fillStyle style of the filling
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoPolygon(JKQTPlotter* parent, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoPolygon(JKQTPlotter* parent, DrawMode drawMode=DrawAsGraphicElement);
/** \copydoc JKQTPGeometricPlotElement::getXMinMax() */
@@ -385,89 +300,69 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPolygon: public JKQTPGeoBaseFilled {
class JKQTPLOTTER_LIB_EXPORT JKQTPGeoEllipse: public JKQTPGeoRectangle {
Q_OBJECT
public:
- /** \brief class constructor
- *
- * \param parent the parent plotter object
- * \param x x-coordinate of center of ellipse
- * \param y y-coordinate of center of ellipse
- * \param width width of ellipse (2 * half axis)
- * \param height of ellipse (2 * half axis)
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of ellipse
- * \param fillStyle filling style of ellipse
- */
- JKQTPGeoEllipse(JKQTBasePlotter* parent, double x, double y, double width, double height, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+
+
/** \brief class constructor
*
* \param parent the parent plotter object
- * \param x x-coordinate of center of ellipse
- * \param y y-coordinate of center of ellipse
- * \param width width of ellipse (2 * half axis)
- * \param height of ellipse (2 * half axis)
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of ellipse
- * \param fillStyle filling style of ellipse
- */
- JKQTPGeoEllipse(JKQTPlotter* parent, double x, double y, double width, double height, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
- /** \brief class constructor
- *
- * \param parent the parent plotter object
- * \param x x-coordinate of center of ellipse
- * \param y y-coordinate of center of ellipse
+ * \param x x-coordinate of center of rectangle
+ * \param y y-coordinate of center of rectangle
* \param width width of rectangle
* \param height of rectangle
- * \param angle rotation angle of the ellipse
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of ellipse
- * \param fillStyle filling style of ellipse
+ *
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoEllipse(JKQTBasePlotter* parent, double x, double y, double width, double height, double angle, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoEllipse(JKQTBasePlotter* parent, double x, double y, double width, double height, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
- * \param x x-coordinate of center of ellipse
- * \param y y-coordinate of center of ellipse
+ * \param x x-coordinate of center of rectangle
+ * \param y y-coordinate of center of rectangle
* \param width width of rectangle
* \param height of rectangle
- * \param angle rotation angle of the ellipse
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of ellipse
- * \param fillStyle filling style of ellipse
+ *
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoEllipse(JKQTPlotter* parent, double x, double y, double width, double height, double angle, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoEllipse(JKQTPlotter* parent, double x, double y, double width, double height, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
- * \param bottomleft bottom left corner of ellipse
- * \param topright top right corner of ellipse
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of ellipse
- * \param fillStyle filling style of ellipse
+ * \param bottomleft bottom left corner of rectangle
+ * \param topright top right corner of rectangle
+ *
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoEllipse(JKQTBasePlotter* parent, QPointF bottomleft, QPointF topright, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoEllipse(JKQTBasePlotter* parent, QPointF bottomleft, QPointF topright, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
- * \param bottomleft bottom left corner of ellipse
- * \param topright top right corner of ellipse
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of ellipse
- * \param fillStyle filling style of ellipse
+ * \param bottomleft bottom left corner of rectangle
+ * \param topright top right corner of rectangle
+ *
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoEllipse(JKQTPlotter* parent, QPointF bottomleft, QPointF topright, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoEllipse(JKQTPlotter* parent, QPointF bottomleft, QPointF topright, DrawMode drawMode=DrawAsGraphicElement);
+ /** \brief class constructor
+ *
+ * \param parent the parent plotter object
+ * \param center center of rectangle
+ * \param size width and heigt of rectangle
+ *
+ * \param drawMode draw the rectangle as a graphic or geometric element
+ */
+ JKQTPGeoEllipse(JKQTBasePlotter* parent, const QPointF& center, const QSizeF& size, DrawMode drawMode=DrawAsGraphicElement);
+ /** \brief class constructor
+ *
+ * \param parent the parent plotter object
+ * \param center center of rectangle
+ * \param size width and heigt of rectangle
+ *
+ * \param drawMode draw the rectangle as a graphic or geometric element
+ */
+ JKQTPGeoEllipse(JKQTPlotter* parent, const QPointF& center, const QSizeF& size, DrawMode drawMode=DrawAsGraphicElement);
+
+
/** \brief plots the graph to the plotter object specified as parent
@@ -500,18 +395,6 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoEllipse: public JKQTPGeoRectangle {
* A pie on linear and log-log axes (start angle: 10deg and end-angle 110deg):
* \image html plot_geopie.png
*
- * Here is the code to generate the plots above:
- * \code
- * plot->addGraph(new JKQTPGeoRectangle(plot,3.5,0.5,0.9,0.9, QColor("silver"), 1, Qt::PenStyle::DashLine));
- * plot->addGraph(new JKQTPGeoEllipse(plot,3.5,0.5,0.9,0.9, QColor("silver"), 1, Qt::PenStyle::DashLine));
- * plot->addGraph(new JKQTPGeoPie(plot,3.5,0.5,0.9,0.9, 10, 110 , QColor("blue"), 4, Qt::PenStyle::SolidLine,QColor("lightblue")));
- * plot->addGraph(new JKQTPGeoSymbol(plot, 3.5,0.5, JKQTPCircle, 5, QColor("grey")));
- * plot->addGraph(new JKQTPGeoLine(plot, 3.5,0.5,3.5+0.5*cos(10.0/180.0*JKQTPSTATISTICS_PI),0.5+0.5*sin(10.0/180.0*JKQTPSTATISTICS_PI), QColor("grey")));
- * plot->addGraph(new JKQTPGeoText(plot, 3.5+0.55*cos(10.0/180.0*JKQTPSTATISTICS_PI),0.5+0.55*sin(10.0/180.0*JKQTPSTATISTICS_PI), "10\\degree", 10, QColor("grey")));
- * plot->addGraph(new JKQTPGeoLine(plot, 3.5,0.5,3.5+0.5*cos(110.0/180.0*JKQTPSTATISTICS_PI),0.5+0.5*sin(110.0/180.0*JKQTPSTATISTICS_PI), QColor("grey")));
- * plot->addGraph(new JKQTPGeoText(plot, 3.5+0.55*cos(110.0/180.0*JKQTPSTATISTICS_PI),0.5+0.55*sin(110.0/180.0*JKQTPSTATISTICS_PI), "110\\degree", 10, QColor("grey")));
- * \endcode
- *
* \note This function support the JKQTPGeometricPlotElement::DrawMode::DrawAsMathematicalCurve only.
* This means that pies are always treated as mathematical curves, as no meaningful
* parametrization for pies on non-linear axes could be found!
@@ -530,13 +413,9 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPie: public JKQTPGeoEllipse {
* \param height of ellipse (2 * half axis)
* \param angleStart if we only draw an arc, this is the starting angle in degrees
* \param angleStop if we only draw an arc, this is the ending angle in degrees
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of ellipse
- * \param fillStyle filling style of ellipse
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoPie(JKQTBasePlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoPie(JKQTBasePlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -546,13 +425,9 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPie: public JKQTPGeoEllipse {
* \param height of ellipse (2 * half axis)
* \param angleStart if we only draw an arc, this is the starting angle in degrees
* \param angleStop if we only draw an arc, this is the ending angle in degrees
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of ellipse
- * \param fillStyle filling style of ellipse
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoPie(JKQTPlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoPie(JKQTPlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, DrawMode drawMode=DrawAsGraphicElement);
/** \copydoc JKQTPGeometricPlotElement::getXMinMax() */
@@ -611,13 +486,9 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoChord: public JKQTPGeoPie {
* \param height of ellipse (2 * half axis)
* \param angleStart if we only draw an arc, this is the starting angle in degrees
* \param angleStop if we only draw an arc, this is the ending angle in degrees
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of ellipse
- * \param fillStyle filling style of ellipse
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoChord(JKQTBasePlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoChord(JKQTBasePlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, DrawMode drawMode=DrawAsGraphicElement);
/** \brief class constructor
*
* \param parent the parent plotter object
@@ -627,13 +498,9 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoChord: public JKQTPGeoPie {
* \param height of ellipse (2 * half axis)
* \param angleStart if we only draw an arc, this is the starting angle in degrees
* \param angleStop if we only draw an arc, this is the ending angle in degrees
- * \param color color of line
- * \param lineWidth width of line
- * \param style line style
- * \param fillColor filling color of ellipse
- * \param fillStyle filling style of ellipse
+ * \param drawMode draw the rectangle as a graphic or geometric element
*/
- JKQTPGeoChord(JKQTPlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, QColor color=QColor("black"), double lineWidth=1, Qt::PenStyle style=Qt::SolidLine, QColor fillColor=QColor("transparent"), Qt::BrushStyle fillStyle=Qt::SolidPattern, DrawMode drawMode=DrawAsGraphicElement);
+ JKQTPGeoChord(JKQTPlotter* parent, double x, double y, double width, double height, double angleStart, double angleStop, DrawMode drawMode=DrawAsGraphicElement);
/** \copydoc JKQTPGeometricPlotElement::getXMinMax() */
virtual bool getXMinMax(double& minx, double& maxx, double& smallestGreaterZero) override;
diff --git a/lib/jkqtplotter/graphs/jkqtpimage.cpp b/lib/jkqtplotter/graphs/jkqtpimage.cpp
index 8279750c35..c7ab058483 100644
--- a/lib/jkqtplotter/graphs/jkqtpimage.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpimage.cpp
@@ -742,7 +742,7 @@ JKQTPMathImage::JKQTPMathImage(JKQTBasePlotter *parent):
JKQTPColorPaletteWithModifierStyleAndToolsMixin(parent)
{
initJKQTPMathImage();
- if (parent) this->palette=parent->getCurrentPlotterStyle().defaultPalette;
+ if (parent) this->palette=parent->getCurrentPlotterStyle().graphsStyle.defaultPalette;
}
diff --git a/lib/jkqtplotter/graphs/jkqtpimpulses.cpp b/lib/jkqtplotter/graphs/jkqtpimpulses.cpp
index f7c4506ed4..e2fa5ddb91 100644
--- a/lib/jkqtplotter/graphs/jkqtpimpulses.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpimpulses.cpp
@@ -38,9 +38,8 @@
JKQTPImpulsesGraphBase::JKQTPImpulsesGraphBase(JKQTBasePlotter* parent):
JKQTPXYBaselineGraph(parent), drawSymbols(false)
{
- initLineStyle(parent, parentPlotStyle);
- initSymbolStyle(parent, parentPlotStyle);
- setLineWidth(3);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Impulses);
+ initSymbolStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Impulses);
}
QColor JKQTPImpulsesGraphBase::getKeyLabelColor() const {
@@ -51,7 +50,7 @@ void JKQTPImpulsesGraphBase::setColor(QColor c)
{
setLineColor(c);
setSymbolColor(c);
- setSymbolFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setSymbolFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.impulseStyle.fillColorDerivationMode, c));
c.setAlphaF(0.5);
setHighlightingLineColor(c);
}
@@ -246,7 +245,7 @@ JKQTPImpulsesHorizontalErrorGraph::JKQTPImpulsesHorizontalErrorGraph(JKQTBasePlo
JKQTPImpulsesHorizontalGraph(parent)
{
setErrorColorFromGraphColor(getLineColor());
- initErrorStyle(parent, parentPlotStyle);
+ initErrorStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Impulses);
}
JKQTPImpulsesHorizontalErrorGraph::JKQTPImpulsesHorizontalErrorGraph(JKQTPlotter *parent):
@@ -270,7 +269,7 @@ JKQTPImpulsesVerticalErrorGraph::JKQTPImpulsesVerticalErrorGraph(JKQTBasePlotter
JKQTPImpulsesVerticalGraph(parent)
{
setErrorColorFromGraphColor(getLineColor());
- initErrorStyle(parent, parentPlotStyle);
+ initErrorStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Impulses);
}
JKQTPImpulsesVerticalErrorGraph::JKQTPImpulsesVerticalErrorGraph(JKQTPlotter *parent):
diff --git a/lib/jkqtplotter/graphs/jkqtppeakstream.cpp b/lib/jkqtplotter/graphs/jkqtppeakstream.cpp
index 2fb6f5f218..b4e1dfa718 100644
--- a/lib/jkqtplotter/graphs/jkqtppeakstream.cpp
+++ b/lib/jkqtplotter/graphs/jkqtppeakstream.cpp
@@ -40,7 +40,7 @@ JKQTPPeakStreamGraph::JKQTPPeakStreamGraph(JKQTBasePlotter *parent):
yPeaks=true;
peakHeight=1;
drawBaseline=true;
- initLineStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
}
diff --git a/lib/jkqtplotter/graphs/jkqtprange.cpp b/lib/jkqtplotter/graphs/jkqtprange.cpp
index 5598d84a42..1e2f501a82 100644
--- a/lib/jkqtplotter/graphs/jkqtprange.cpp
+++ b/lib/jkqtplotter/graphs/jkqtprange.cpp
@@ -49,8 +49,8 @@ JKQTPRangeBase::JKQTPRangeBase(JKQTBasePlotter* parent):
if (parent) { // get style settings from parent object
- initLineStyle(parent, parentPlotStyle);
- initFillStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
+ initFillStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
centerColor=parent->getPlotStyle(parentPlotStyle).color();
}
@@ -77,7 +77,7 @@ void JKQTPRangeBase::setColor(QColor c)
{
setLineColor(c);
centerColor=c;
- setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.defaultGraphStyle.fillColorDerivationMode, c));
}
diff --git a/lib/jkqtplotter/graphs/jkqtpscatter.cpp b/lib/jkqtplotter/graphs/jkqtpscatter.cpp
index b79edc825e..3cc56371dc 100644
--- a/lib/jkqtplotter/graphs/jkqtpscatter.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpscatter.cpp
@@ -52,8 +52,8 @@ JKQTPXYLineGraph::JKQTPXYLineGraph(JKQTBasePlotter* parent):
sortData=JKQTPXYGraph::Unsorted;
drawLine=true;
- initLineStyle(parent, parentPlotStyle);
- initSymbolStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
+ initSymbolStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
}
void JKQTPXYLineGraph::draw(JKQTPEnhancedPainter& painter) {
@@ -168,7 +168,7 @@ void JKQTPXYLineGraph::setColor(QColor c)
{
setLineColor(c);
setSymbolColor(c);
- setSymbolFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setSymbolFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.defaultGraphStyle.fillColorDerivationMode, c));
c.setAlphaF(0.5);
setHighlightingLineColor(c);
}
@@ -310,7 +310,7 @@ JKQTPXYParametrizedScatterGraph::JKQTPXYParametrizedScatterGraph(JKQTBasePlotter
gridSymbolFractionSize=0.9;
symbolFillDerivationMode=JKQTPFFCMLighterColor;
if (parent) {
- symbolFillDerivationMode=parent->getCurrentPlotterStyle().graphFillColorDerivationMode;
+ symbolFillDerivationMode=parent->getCurrentPlotterStyle().graphsStyle.defaultGraphStyle.fillColorDerivationMode;
}
clearSizeColumnFunctor();
diff --git a/lib/jkqtplotter/graphs/jkqtpsinglecolumnsymbols.cpp b/lib/jkqtplotter/graphs/jkqtpsinglecolumnsymbols.cpp
index 445a701ef5..2a1a9c9fce 100644
--- a/lib/jkqtplotter/graphs/jkqtpsinglecolumnsymbols.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpsinglecolumnsymbols.cpp
@@ -43,7 +43,7 @@ JKQTPSingleColumnSymbolsGraph::JKQTPSingleColumnSymbolsGraph(JKQTBasePlotter *pa
position=0;
width=1;
- initSymbolStyle(parent, parentPlotStyle);
+ initSymbolStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
}
@@ -257,7 +257,7 @@ QColor JKQTPSingleColumnSymbolsGraph::getKeyLabelColor() const
void JKQTPSingleColumnSymbolsGraph::setColor(QColor col)
{
setSymbolColor(col);
- setSymbolFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, col));
+ setSymbolFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.defaultGraphStyle.fillColorDerivationMode, col));
}
void JKQTPSingleColumnSymbolsGraph::setPosition(double __value)
diff --git a/lib/jkqtplotter/graphs/jkqtpspecialline.cpp b/lib/jkqtplotter/graphs/jkqtpspecialline.cpp
index c02a0b592c..1ad7041455 100644
--- a/lib/jkqtplotter/graphs/jkqtpspecialline.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpspecialline.cpp
@@ -38,9 +38,9 @@ JKQTPSpecialLineGraphBase::JKQTPSpecialLineGraphBase(JKQTBasePlotter* parent):
JKQTPXYBaselineGraph(parent), m_drawSymbols(false), m_specialLineType(JKQTPStepLeft)
{
parentPlotStyle=-1;
- initLineStyle(parent, parentPlotStyle);
- initFillStyle(parent, parentPlotStyle);
- initSymbolStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
+ initFillStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
+ initSymbolStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Default);
setFillCurve(false);
}
@@ -92,8 +92,8 @@ void JKQTPSpecialLineGraphBase::setColor(QColor c)
{
setLineColor(c);
setSymbolColor(c);
- setSymbolFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
- setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setSymbolFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.defaultGraphStyle.symbolFillColorDerivationMode, c));
+ setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.defaultGraphStyle.fillColorDerivationMode, c));
c.setAlphaF(0.5);
setHighlightingLineColor(c);
}
diff --git a/lib/jkqtplotter/graphs/jkqtpviolinplotstylingmixins.cpp b/lib/jkqtplotter/graphs/jkqtpviolinplotstylingmixins.cpp
index 3b2498d856..48594e6cd6 100644
--- a/lib/jkqtplotter/graphs/jkqtpviolinplotstylingmixins.cpp
+++ b/lib/jkqtplotter/graphs/jkqtpviolinplotstylingmixins.cpp
@@ -60,23 +60,24 @@ void JKQTPGraphViolinplotStyleMixin::initViolinplotStyle(JKQTBasePlotter *parent
{
setFillStyle(Qt::SolidPattern);
setFillColor(parent->getCurrentPlotterStyle().plotBackgroundBrush.color());
- initLineStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, JKQTPPlotStyleType::Barchart);
if (parent) { // get style settings from parent object
if (parentPlotStyle<0) parentPlotStyle=parent->getNextStyle();
- m_whiskerLinePen.setColor(parent->getPlotStyle(parentPlotStyle).color());
- m_whiskerLinePen.setStyle(parent->getPlotStyle(parentPlotStyle).style());
- whiskerLineWidth=parent->getPlotStyle(parentPlotStyle).widthF();
- m_whiskerCapLinePen.setColor(parent->getPlotStyle(parentPlotStyle).color());
- m_whiskerCapLinePen.setStyle(parent->getPlotStyle(parentPlotStyle).style());
- whiskerCapLineWidth=parent->getPlotStyle(parentPlotStyle).widthF();
- m_medianLinePen.setColor(parent->getPlotStyle(parentPlotStyle).color());
- m_medianLinePen.setStyle(parent->getPlotStyle(parentPlotStyle).style());
- medianLineWidth=parent->getPlotStyle(parentPlotStyle).widthF();
- m_meanSymbolLinePen=QPen(parent->getPlotStyle(parentPlotStyle).color(), parent->getPlotStyle(parentPlotStyle).style());
- m_meanSymbolSize=parent->getPlotStyle(parentPlotStyle).symbolSize();
- m_meanSymbolLineWidth=parent->getPlotStyle(parentPlotStyle).symbolLineWidthF();
- m_meanSymbolType=parent->getPlotStyle(parentPlotStyle).symbol();
- m_meanSymbolFillColor=parent->getPlotStyle(parentPlotStyle).symbolFillColor();
+ const JKQTBasePlotter::JKQTPPen pen=parent->getPlotStyle(parentPlotStyle, JKQTPPlotStyleType::Barchart);
+ m_whiskerLinePen.setColor(pen.color());
+ m_whiskerLinePen.setStyle(pen.style());
+ whiskerLineWidth=pen.widthF();
+ m_whiskerCapLinePen.setColor(pen.color());
+ m_whiskerCapLinePen.setStyle(pen.style());
+ whiskerCapLineWidth=pen.widthF();
+ m_medianLinePen.setColor(pen.color());
+ m_medianLinePen.setStyle(pen.style());
+ medianLineWidth=pen.widthF();
+ m_meanSymbolLinePen=QPen(pen.color(), pen.style());
+ m_meanSymbolSize=pen.symbolSize();
+ m_meanSymbolLineWidth=pen.symbolLineWidthF();
+ m_meanSymbolType=pen.symbol();
+ m_meanSymbolFillColor=pen.symbolFillColor();
}
setWhiskerLineColor(getLineColor());
@@ -102,9 +103,9 @@ double JKQTPGraphViolinplotStyleMixin::getViolinWidthAbsolute() const
void JKQTPGraphViolinplotStyleMixin::setViolinplotColor(QColor c, JKQTBasePlotter *parent)
{
setLineColor(c);
- setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.filledStyle.fillColorDerivationMode, c));
setMeanColor(c);
- setMeanFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphFillColorDerivationMode, c));
+ setMeanFillColor(JKQTPGetDerivedColor(parent->getCurrentPlotterStyle().graphsStyle.filledStyle.symbolFillColorDerivationMode, c));
setWhiskerLineColor(getLineColor());
setWhiskerCapLineColor(getLineColor());
setMedianLineColor(getLineColor());
diff --git a/lib/jkqtplotter/jkqtpbaseplotter.cpp b/lib/jkqtplotter/jkqtpbaseplotter.cpp
index 10601cf729..3d7c551dbc 100644
--- a/lib/jkqtplotter/jkqtpbaseplotter.cpp
+++ b/lib/jkqtplotter/jkqtpbaseplotter.cpp
@@ -975,22 +975,22 @@ void JKQTBasePlotter::drawSystemYAxis(JKQTPEnhancedPainter& painter) {
}
-JKQTBasePlotter::JKQTPPen JKQTBasePlotter::getPlotStyle(int i) const{
+JKQTBasePlotter::JKQTPPen JKQTBasePlotter::getPlotStyle(int i, JKQTPPlotStyleType type) const{
int colorI=-1;
int styleI=0;
int symbolI=0;
int brushI=0;
for (int k=0; k<=i; k++) {
colorI++;
- if (colorI>=plotterStyle.defaultGraphColors.size()) {
+ if (colorI>=plotterStyle.graphsStyle.defaultGraphColors.size()) {
styleI++;
brushI++;
colorI=0;
- if (styleI>=plotterStyle.defaultGraphPenStyles.size()) styleI=0;
- if (brushI>=plotterStyle.defaultGraphFillStyles.size()) brushI=0;
+ if (styleI>=plotterStyle.graphsStyle.defaultGraphPenStyles.size()) styleI=0;
+ if (brushI>=plotterStyle.graphsStyle.defaultGraphFillStyles.size()) brushI=0;
}
symbolI++;
- if (symbolI>=plotterStyle.defaultGraphSymbols.size()) {
+ if (symbolI>=plotterStyle.graphsStyle.defaultGraphSymbols.size()) {
symbolI=0;
}
}
@@ -998,19 +998,33 @@ JKQTBasePlotter::JKQTPPen JKQTBasePlotter::getPlotStyle(int i) const{
//std::cout<<"plotstyle "<plotterStyle.useAntiAliasingForGraphs;
+ return this->plotterStyle.graphsStyle.useAntiAliasingForGraphs;
}
bool JKQTBasePlotter::isUsingAntiAliasingForText() const
@@ -2420,19 +2434,6 @@ bool JKQTBasePlotter::isUsingAntiAliasingForText() const
}
-void JKQTBasePlotter::setGraphWidth(double __value)
-{
- if (jkqtp_approximatelyUnequal(this->plotterStyle.defaultGraphWidth , __value)) {
- this->plotterStyle.defaultGraphWidth = __value;
- redrawPlot();
- }
-}
-
-double JKQTBasePlotter::getGraphWidth() const
-{
- return this->plotterStyle.defaultGraphWidth;
-}
-
void JKQTBasePlotter::setBackgroundColor(const QColor &__value)
{
if (this->plotterStyle.widgetBackgroundBrush != QBrush(__value)) {
@@ -3025,8 +3026,8 @@ void JKQTBasePlotter::setUseAntiAliasingForText(bool __value)
void JKQTBasePlotter::setUseAntiAliasingForGraphs(bool __value)
{
- if (this->plotterStyle.useAntiAliasingForGraphs != __value) {
- this->plotterStyle.useAntiAliasingForGraphs = __value;
+ if (this->plotterStyle.graphsStyle.useAntiAliasingForGraphs != __value) {
+ this->plotterStyle.graphsStyle.useAntiAliasingForGraphs = __value;
redrawPlot();
}
}
diff --git a/lib/jkqtplotter/jkqtpbaseplotter.h b/lib/jkqtplotter/jkqtpbaseplotter.h
index 15563a878c..04d57e0dc6 100644
--- a/lib/jkqtplotter/jkqtpbaseplotter.h
+++ b/lib/jkqtplotter/jkqtpbaseplotter.h
@@ -614,8 +614,9 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
};
+
/** \brief returns a QPen object for the i-th plot style */
- JKQTPPen getPlotStyle(int i) const;
+ JKQTPPen getPlotStyle(int i, JKQTPPlotStyleType type=JKQTPPlotStyleType::Default) const;
/*! \brief draw the contained graph (including grid prints) into the given JKQTPEnhancedPainter
\param painter JKQTPEnhancedPainter to which the plot should be drawn
@@ -673,8 +674,6 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
bool isUsingAntiAliasingForGraphs() const;
/** \copydoc JKQTBasePlotterStyle::useAntiAliasingForText */
bool isUsingAntiAliasingForText() const;
- /** \copydoc JKQTBasePlotterStyle::defaultGraphWidth */
- double getGraphWidth() const;
/** \copydoc JKQTBasePlotterStyle::widgetBackgroundBrush */
QColor getBackgroundColor() const;
/** \copydoc JKQTBasePlotterStyle::exportBackgroundBrush */
@@ -1459,8 +1458,6 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotter: public QObject {
void setUseAntiAliasingForGraphs(bool __value);
/** \copydoc JKQTBasePlotterStyle::useAntiAliasingForText */
void setUseAntiAliasingForText(bool __value);
- /** \copydoc JKQTBasePlotterStyle::defaultGraphWidth */
- void setGraphWidth(double __value);
/** \copydoc JKQTBasePlotterStyle::widgetBackgroundBrush */
void setBackgroundColor(const QColor & __value);
/** \copydoc JKQTBasePlotterStyle::exportBackgroundBrush */
diff --git a/lib/jkqtplotter/jkqtpbaseplotterstyle.cpp b/lib/jkqtplotter/jkqtpbaseplotterstyle.cpp
index 15585c4e2a..b97c7c36bc 100644
--- a/lib/jkqtplotter/jkqtpbaseplotterstyle.cpp
+++ b/lib/jkqtplotter/jkqtpbaseplotterstyle.cpp
@@ -12,9 +12,6 @@ JKQTBasePlotterStyle::JKQTBasePlotterStyle():
plotBorderLeft(5),
plotBorderBottom(5),
plotBorderRight(5),
- defaultGraphWidth(2),
- defaultGraphSymbolSize(10),
- defaultGraphSymbolLineWidth(1),
widgetBackgroundBrush(QApplication::palette().color(QPalette::Window)),
exportBackgroundBrush(QColor("white")),
plotBackgroundBrush(QColor("white")),
@@ -25,37 +22,17 @@ JKQTBasePlotterStyle::JKQTBasePlotterStyle():
plotLabelFontName(QApplication::font().family()+"+XITS"),
plotLabelFontSize(12),
useAntiAliasingForSystem(true),
- useAntiAliasingForGraphs(true),
useAntiAliasingForText(true),
defaultTextColor(QColor("black")),
defaultFontSize(8),
defaultFontName(QApplication::font().family()+"+XITS"),
- defaultPalette(JKQTPMathImageMATLAB),
- graphFillColorDerivationMode(JKQTPFFCMLighterColor),
- graphErrorColorDerivationMode(JKQTPFFCMDarkerColor),
- graphErrorFillColorDerivationMode(JKQTPFFCMEvenLighterColor),
- defaultGraphColors(), defaultGraphPenStyles(), defaultGraphSymbols(), defaultGraphFillStyles(),
keyStyle(*this),
xAxisStyle(*this),
yAxisStyle(*this),
rightColorbarAxisStyle(*this),
- topColorbarAxisStyle(*this)
+ topColorbarAxisStyle(*this),
+ graphsStyle(*this)
{
- /*
- keyStyle=JKQTPKeyStyle(*this);
- xAxisStyle=JKQTPCoordinateAxisStyle(*this);
- yAxisStyle=JKQTPCoordinateAxisStyle(*this);
- rightColorbarAxisStyle=JKQTPCoordinateAxisStyle(*this);
- topColorbarAxisStyle=JKQTPCoordinateAxisStyle(*this);
- */
-
- defaultGraphColors<(i));
- defaultGraphFillStyles<=0) {
- defaultGraphColors.push_back(jkqtp_String2QColor(settings.value(group+"default_graph_styles/color"+QString::number(id), jkqtp_QColor2String(QColor("red"))).toString()));
- }
-
- id=readID(k, group+"default_graph_styles/line_style");
- if (id>=0) {
- defaultGraphPenStyles.push_back(jkqtp_String2QPenStyle(settings.value(group+"default_graph_styles/line_style"+QString::number(id), jkqtp_QPenStyle2String(Qt::SolidLine)).toString()));
- }
-
- id=readID(k, group+"default_graph_styles/symbol");
- if (id>=0) {
- defaultGraphSymbols.push_back(String2JKQTPGraphSymbols(settings.value(group+"default_graph_styles/symbol"+QString::number(id), JKQTPGraphSymbols2String(JKQTPCross)).toString()));
- }
- id=readID(k, group+"default_graph_styles/fill_style");
- if (id>=0) {
- defaultGraphFillStyles.push_back(jkqtp_String2QBrushStyle(settings.value(group+"default_graph_styles/fill_style"+QString::number(id), jkqtp_QBrushStyle2String(Qt::SolidPattern)).toString()));
- }
- }
- if (defaultGraphColors.size()==0) {
- for (int i=defaultGraphColors.size(); i
-/** \brief Support Class for JKQTBasePlotter, which summarizes all proeprties that define the visual styling of a JKQTBasePlotter
+/** \brief Support Class for JKQTBasePlotter, which summarizes all properties that define the visual styling of a JKQTBasePlotter
* \ingroup jkqtpplotter_styling
*
* \see JKQTBasePlotter, \ref jkqtpplotter_styling
@@ -107,12 +108,6 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotterStyle {
* \see JKQTBasePlotter::setBorder(), \ref jkqtplotter_base_plotsize
*/
int plotBorderRight;
- /** \brief width (in pt) of lines used for newly added graphs */
- double defaultGraphWidth;
- /** \brief size (in pt) of symbols used for newly added graphs */
- double defaultGraphSymbolSize;
- /** \brief with (in pt) of symbol lines used for newly added graphs */
- double defaultGraphSymbolLineWidth;
/** \brief color of the background of the plot (widget area) when drawing (to the screen) */
QBrush widgetBackgroundBrush;
/** \brief color of the background of the plot (widget area) when exporting*/
@@ -133,12 +128,6 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotterStyle {
double plotLabelFontSize;
/** \brief specifies whether to use antialiasing for plotting the coordinate system */
bool useAntiAliasingForSystem;
- /** \brief specifies whether to use antialiasing for plotting the graphs
- *
- * \note You can set this property \c false to increase plotting speed of complex plots (with many graphs inside). You can reach a
- * roughly three-fold speed improvement!
- */
- bool useAntiAliasingForGraphs;
/** \brief specifies whether to use antialiasing when drawing any text
* \note You can set this property \c false to increase plotting speed of complex plots (with many graphs inside). You can reach a
* roughly three-fold speed improvement!
@@ -150,24 +139,6 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotterStyle {
double defaultFontSize;
/** \brief default font name in the plot */
QString defaultFontName;
- /** \brief color palette used by default for new graphs */
- JKQTPMathImageColorPalette defaultPalette;
- /** \brief defines how to derive a fill color for a new graph */
- JKQTPColorDerivationMode graphFillColorDerivationMode;
- /** \brief defines how to derive an error color for a new graph */
- JKQTPColorDerivationMode graphErrorColorDerivationMode;
- /** \brief defines how to derive an error fill color from the error color for a new graph */
- JKQTPColorDerivationMode graphErrorFillColorDerivationMode;
-
-
- /** \brief colors used to automatically collor different graphs differently */
- QVector defaultGraphColors;
- /** \brief Qt::PenStyle used to automatically style different graphs differently */
- QVector defaultGraphPenStyles;
- /** \brief JKQTPGraphSymbols used to automatically assign to different graphs */
- QVector defaultGraphSymbols;
- /** \brief Qt::BrushStyle used to automatically style different graphs differently */
- QVector defaultGraphFillStyles;
/** \brief style of the plot key/legend */
@@ -180,6 +151,8 @@ class JKQTPLOTTER_LIB_EXPORT JKQTBasePlotterStyle {
JKQTPCoordinateAxisStyle rightColorbarAxisStyle;
/** \brief style of the coordinate axes used to display colorbars at the top */
JKQTPCoordinateAxisStyle topColorbarAxisStyle;
+ /** \brief style of the graphs */
+ JKQTGraphsBaseStyle graphsStyle;
};
diff --git a/lib/jkqtplotter/jkqtpcoordinateaxesstyle.h b/lib/jkqtplotter/jkqtpcoordinateaxesstyle.h
index 103f6434d9..1bc461b9d5 100644
--- a/lib/jkqtplotter/jkqtpcoordinateaxesstyle.h
+++ b/lib/jkqtplotter/jkqtpcoordinateaxesstyle.h
@@ -28,7 +28,7 @@
class JKQTBasePlotterStyle; // forward
-/** \brief Support Class for JKQTPCoordinateAxis, which summarizes all proeprties that define the visual styling of a JKQTPCoordinateAxis
+/** \brief Support Class for JKQTPCoordinateAxis, which summarizes all properties that define the visual styling of a JKQTPCoordinateAxis
* \ingroup jkqtpplotter_styling
*
* \see JKQTPCoordinateAxis, \ref jkqtpplotter_styling
diff --git a/lib/jkqtplotter/jkqtpgraphsbaseerrors.cpp b/lib/jkqtplotter/jkqtpgraphsbaseerrors.cpp
index b11333915b..0fe9049ea3 100644
--- a/lib/jkqtplotter/jkqtpgraphsbaseerrors.cpp
+++ b/lib/jkqtplotter/jkqtpgraphsbaseerrors.cpp
@@ -46,16 +46,17 @@ JKQTPGraphErrorStyleMixin::JKQTPGraphErrorStyleMixin() {
m_errorBarCapSize=7;
}
-void JKQTPGraphErrorStyleMixin::initErrorStyle(JKQTBasePlotter *parent, int &parentPlotStyle)
+void JKQTPGraphErrorStyleMixin::initErrorStyle(JKQTBasePlotter *parent, int &parentPlotStyle, JKQTPPlotStyleType styletype)
{
if (parent) { // get style settings from parent object
if (parentPlotStyle<0) parentPlotStyle=parent->getNextStyle();
- m_errorFillColor=parent->getPlotStyle(parentPlotStyle).errorFillColor();
+ const JKQTBasePlotter::JKQTPPen pen=parent->getPlotStyle(parentPlotStyle, styletype);
+ m_errorFillColor=pen.errorFillColor();
m_errorFillBrush.setColor(m_errorFillColor);
- m_errorFillBrush.setStyle(parent->getPlotStyle(parentPlotStyle).errorFillStyle());
- m_errorLinePen.setColor(parent->getPlotStyle(parentPlotStyle).errorColor());
- m_errorLinePen.setStyle(parent->getPlotStyle(parentPlotStyle).errorStyle());
- m_errorLineWidth=parent->getPlotStyle(parentPlotStyle).errorWidthF();
+ m_errorFillBrush.setStyle(pen.errorFillStyle());
+ m_errorLinePen.setColor(pen.errorColor());
+ m_errorLinePen.setStyle(pen.errorStyle());
+ m_errorLineWidth=pen.errorWidthF();
}
}
diff --git a/lib/jkqtplotter/jkqtpgraphsbaseerrors.h b/lib/jkqtplotter/jkqtpgraphsbaseerrors.h
index c154525821..17dac37c20 100644
--- a/lib/jkqtplotter/jkqtpgraphsbaseerrors.h
+++ b/lib/jkqtplotter/jkqtpgraphsbaseerrors.h
@@ -49,7 +49,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGraphErrorStyleMixin {
virtual ~JKQTPGraphErrorStyleMixin()=default;
/** \brief initiaize the error indicator style (from the parent plotter) */
- void initErrorStyle(JKQTBasePlotter* parent, int &parentPlotStyle);
+ void initErrorStyle(JKQTBasePlotter* parent, int &parentPlotStyle, JKQTPPlotStyleType styletype=JKQTPPlotStyleType::Default);
diff --git a/lib/jkqtplotter/jkqtpgraphsbasestyle.cpp b/lib/jkqtplotter/jkqtpgraphsbasestyle.cpp
new file mode 100644
index 0000000000..0d284371be
--- /dev/null
+++ b/lib/jkqtplotter/jkqtpgraphsbasestyle.cpp
@@ -0,0 +1,324 @@
+#include "jkqtpgraphsbasestyle.h"
+#include
+#include
+#include "jkqtplotter/jkqtptools.h"
+#include "jkqtplotter/jkqtpbaseplotterstyle.h"
+
+
+
+JKQTGraphsSpecificStyleProperties::JKQTGraphsSpecificStyleProperties(JKQTPPlotStyleType type, const JKQTBasePlotterStyle &/*parent*/):
+ defaultLineWidth(2),
+ defaultSymbolSize(10),
+ defaultSymbolLineSize(1),
+ defaultErrorIndicatorWidth(1),
+ defaultHeadDecoratorStyle(JKQTPLineDecoratorStyle::JKQTPDefaultLineDecorator),
+ defaultHeadDecoratorSizeFactor(8.0),
+ graphColorDerivationMode(JKQTPFFCMSameColor),
+ fillColorDerivationMode(JKQTPFFCMLighterColor),
+ errorColorDerivationMode(JKQTPFFCMDarkerColor),
+ errorFillColorDerivationMode(JKQTPFFCMEvenLighterColor),
+ symbolFillColorDerivationMode(JKQTPFFCMLighterColor)
+{
+ switch(type) {
+ case JKQTPPlotStyleType::Default:
+ break;
+ case JKQTPPlotStyleType::Filled:
+ break;
+ case JKQTPPlotStyleType::Impulses:
+ defaultLineWidth=3;
+ break;
+ case JKQTPPlotStyleType::Barchart:
+ defaultLineWidth=0;
+ graphColorDerivationMode=JKQTPFFCMLighterColor;
+ fillColorDerivationMode=JKQTPFFCMLighterColor;
+ break;
+ case JKQTPPlotStyleType::Boxplot:
+ defaultLineWidth=1;
+ fillColorDerivationMode=JKQTPFFCMWhite;
+ break;
+ case JKQTPPlotStyleType::Annotation:
+ defaultSymbolSize=16;
+ break;
+ case JKQTPPlotStyleType::Geometric:
+ fillColorDerivationMode=JKQTPFFCMFullyTransparentColor;
+ break;
+ }
+}
+
+void JKQTGraphsSpecificStyleProperties::loadSettings(const QSettings &settings, const QString &group, const JKQTGraphsSpecificStyleProperties &defaultStyle)
+{
+ defaultLineWidth=settings.value(group+"linewidth", defaultStyle.defaultLineWidth).toDouble();
+ defaultSymbolSize=settings.value(group+"symbol_size", defaultStyle.defaultSymbolSize).toDouble();
+ defaultSymbolLineSize=settings.value(group+"symbol_line_size", defaultStyle.defaultLineWidth).toDouble();
+ defaultErrorIndicatorWidth=settings.value(group+"error_indicator_width", defaultStyle.defaultLineWidth).toDouble();
+ defaultHeadDecoratorStyle=String2JKQTPLineDecoratorStyle(settings.value(group+"head_decorator_type", JKQTPLineDecoratorStyle2String(defaultStyle.defaultHeadDecoratorStyle)).toString());
+ defaultHeadDecoratorSizeFactor=settings.value(group+"head_decorator_size_factor", defaultStyle.defaultHeadDecoratorSizeFactor).toDouble();
+
+ graphColorDerivationMode=String2JKQTPColorDerivationMode(settings.value(group+"graph_color_mode", JKQTPColorDerivationMode2String(defaultStyle.graphColorDerivationMode)).toString());
+ fillColorDerivationMode=String2JKQTPColorDerivationMode(settings.value(group+"fill_color_mode", JKQTPColorDerivationMode2String(defaultStyle.fillColorDerivationMode)).toString());
+ errorColorDerivationMode=String2JKQTPColorDerivationMode(settings.value(group+"error_color_mode", JKQTPColorDerivationMode2String(defaultStyle.errorColorDerivationMode)).toString());
+ errorFillColorDerivationMode=String2JKQTPColorDerivationMode(settings.value(group+"error_fill_color_mode", JKQTPColorDerivationMode2String(defaultStyle.errorFillColorDerivationMode)).toString());
+ symbolFillColorDerivationMode=String2JKQTPColorDerivationMode(settings.value(group+"symbol_fill_color_mode", JKQTPColorDerivationMode2String(defaultStyle.symbolFillColorDerivationMode)).toString());
+
+}
+
+void JKQTGraphsSpecificStyleProperties::saveSettings(QSettings &settings, const QString &group) const
+{
+ settings.setValue(group+"linewidth", defaultLineWidth);
+ settings.setValue(group+"symbol_size", defaultSymbolSize);
+ settings.setValue(group+"symbol_line_size", defaultSymbolLineSize);
+ settings.setValue(group+"error_indicator_width", defaultErrorIndicatorWidth);
+ settings.setValue(group+"head_decorator_size_factor", defaultHeadDecoratorSizeFactor);
+ settings.setValue(group+"head_decorator_type", JKQTPLineDecoratorStyle2String(defaultHeadDecoratorStyle));
+
+ settings.setValue(group+"graph_color_mode", JKQTPColorDerivationMode2String(graphColorDerivationMode));
+ settings.setValue(group+"fill_color_mode", JKQTPColorDerivationMode2String(fillColorDerivationMode));
+ settings.setValue(group+"error_color_mode", JKQTPColorDerivationMode2String(errorColorDerivationMode));
+ settings.setValue(group+"error_fill_color_mode", JKQTPColorDerivationMode2String(errorFillColorDerivationMode));
+ settings.setValue(group+"symbol_fill_color_mode", JKQTPColorDerivationMode2String(symbolFillColorDerivationMode));
+}
+
+
+JKQTGeometricSpecificStyleProperties::JKQTGeometricSpecificStyleProperties(const JKQTBasePlotterStyle& parent):
+ JKQTGraphsSpecificStyleProperties(JKQTPPlotStyleType::Geometric, parent),
+ defaultColor(parent.defaultTextColor),
+ defaultLineStyle(Qt::SolidLine),
+ defaultSymbol(JKQTPGraphSymbols::JKQTPCross),
+ defaultFillStyle(Qt::SolidPattern)
+{
+
+}
+
+JKQTGeometricSpecificStyleProperties::JKQTGeometricSpecificStyleProperties(const JKQTBasePlotterStyle& parent, const JKQTGraphsSpecificStyleProperties &other):
+ JKQTGraphsSpecificStyleProperties(other),
+ defaultColor(parent.defaultTextColor),
+ defaultLineStyle(Qt::SolidLine),
+ defaultSymbol(JKQTPGraphSymbols::JKQTPCross),
+ defaultFillStyle(Qt::SolidPattern)
+{
+
+}
+
+JKQTGeometricSpecificStyleProperties::JKQTGeometricSpecificStyleProperties(JKQTPPlotStyleType type, const JKQTBasePlotterStyle &parent):
+ JKQTGraphsSpecificStyleProperties(type, parent),
+ defaultColor(parent.defaultTextColor),
+ defaultLineStyle(Qt::SolidLine),
+ defaultSymbol(JKQTPGraphSymbols::JKQTPCross),
+ defaultFillStyle(Qt::SolidPattern)
+{
+
+}
+
+
+void JKQTGeometricSpecificStyleProperties::loadSettings(const QSettings &settings, const QString &group, const JKQTGraphsSpecificStyleProperties &defaultStyle)
+{
+ JKQTGraphsSpecificStyleProperties::loadSettings(settings, group, defaultStyle);
+ defaultColor=jkqtp_String2QColor(settings.value(group+"color", jkqtp_QColor2String(defaultColor)).toString());
+ defaultLineStyle=jkqtp_String2QPenStyle(settings.value(group+"line_style", jkqtp_QPenStyle2String(defaultLineStyle)).toString());
+ defaultSymbol=String2JKQTPGraphSymbols(settings.value(group+"symbol", JKQTPGraphSymbols2String(defaultSymbol)).toString());
+ defaultFillStyle=jkqtp_String2QBrushStyle(settings.value(group+"fill_style", jkqtp_QBrushStyle2String(defaultFillStyle)).toString());
+}
+
+void JKQTGeometricSpecificStyleProperties::saveSettings(QSettings &settings, const QString &group) const
+{
+ JKQTGraphsSpecificStyleProperties::saveSettings(settings, group);
+ settings.setValue(group+"color", jkqtp_QColor2String(defaultColor));
+ settings.setValue(group+"line_style", jkqtp_QPenStyle2String(defaultLineStyle));
+ settings.setValue(group+"symbol", JKQTPGraphSymbols2String(defaultSymbol));
+ settings.setValue(group+"fill_style", jkqtp_QBrushStyle2String(defaultFillStyle));
+}
+
+JKQTAnnotationsSpecificStyleProperties::JKQTAnnotationsSpecificStyleProperties(const JKQTBasePlotterStyle& parent):
+ JKQTGeometricSpecificStyleProperties(JKQTPPlotStyleType::Geometric, parent),
+ defaultTextColor(parent.defaultTextColor),
+ defaultFontSize(12),
+ defaultFontName(parent.defaultFontName)
+{
+
+}
+
+JKQTAnnotationsSpecificStyleProperties::JKQTAnnotationsSpecificStyleProperties(const JKQTBasePlotterStyle& parent, const JKQTGraphsSpecificStyleProperties &other):
+ JKQTGeometricSpecificStyleProperties(parent, other),
+ defaultTextColor(parent.defaultTextColor),
+ defaultFontSize(12),
+ defaultFontName(parent.defaultFontName)
+{
+
+}
+
+void JKQTAnnotationsSpecificStyleProperties::loadSettings(const QSettings &settings, const QString &group, const JKQTAnnotationsSpecificStyleProperties &defaultStyle)
+{
+ JKQTGeometricSpecificStyleProperties::loadSettings(settings, group, defaultStyle);
+ defaultTextColor=jkqtp_String2QColor(settings.value(group+"text_color", jkqtp_QColor2String(defaultStyle.defaultTextColor)).toString());
+ defaultFontSize=settings.value(group+"font_size", defaultStyle.defaultFontSize).toDouble();
+ defaultFontName=settings.value(group+"font_name", defaultStyle.defaultFontName).toString();
+}
+
+void JKQTAnnotationsSpecificStyleProperties::saveSettings(QSettings &settings, const QString &group) const
+{
+ JKQTGeometricSpecificStyleProperties::saveSettings(settings, group);
+ settings.setValue(group+"text_color", jkqtp_QColor2String(defaultTextColor));
+ settings.setValue(group+"font_size", defaultFontSize);
+ settings.setValue(group+"font_name", defaultFontName);
+}
+
+
+
+JKQTGraphsBaseStyle::JKQTGraphsBaseStyle(const JKQTBasePlotterStyle& parent):
+ useAntiAliasingForGraphs(true),
+ defaultGraphStyle(JKQTPPlotStyleType::Default, parent),
+ barchartStyle(JKQTPPlotStyleType::Barchart, parent),
+ boxplotStyle(JKQTPPlotStyleType::Boxplot, parent),
+ filledStyle(JKQTPPlotStyleType::Filled, parent),
+ impulseStyle(JKQTPPlotStyleType::Impulses, parent),
+ geometricStyle(parent),
+ annotationStyle(parent),
+ defaultPalette(JKQTPMathImageColorPalette::JKQTPMathImageMATLAB)
+{
+ defaultGraphColors<(i));
+ defaultGraphFillStyles<=0) {
+ defaultGraphColors.push_back(jkqtp_String2QColor(settings.value(group+"auto_styles/color"+QString::number(id), jkqtp_QColor2String(QColor("red"))).toString()));
+ }
+
+ id=readID(k, group+"auto_styles/line_style");
+ if (id>=0) {
+ defaultGraphPenStyles.push_back(jkqtp_String2QPenStyle(settings.value(group+"auto_styles/line_style"+QString::number(id), jkqtp_QPenStyle2String(Qt::SolidLine)).toString()));
+ }
+
+ id=readID(k, group+"auto_styles/symbol");
+ if (id>=0) {
+ defaultGraphSymbols.push_back(String2JKQTPGraphSymbols(settings.value(group+"auto_styles/symbol"+QString::number(id), JKQTPGraphSymbols2String(JKQTPCross)).toString()));
+ }
+ id=readID(k, group+"auto_styles/fill_style");
+ if (id>=0) {
+ defaultGraphFillStyles.push_back(jkqtp_String2QBrushStyle(settings.value(group+"auto_styles/fill_style"+QString::number(id), jkqtp_QBrushStyle2String(Qt::SolidPattern)).toString()));
+ }
+ }
+ if (defaultGraphColors.size()==0) {
+ for (int i=defaultGraphColors.size(); i)
+
+
+
+ This software is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, either version 2.1 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see .
+*/
+
+#ifndef JKQTPGRAPHSBASESTYLE_H
+#define JKQTPGRAPHSBASESTYLE_H
+
+#include "jkqtplotter/jkqtptools.h"
+#include "jkqtplotter/jkqtpimagetools.h"
+#include "jkqtplotter/jkqtpcoordinateaxesstyle.h"
+#include "jkqtplotter/jkqtpkeystyle.h"
+#include "jkqtplotter/jkqtpimagetools.h"
+#include "jkqtplotter/jkqtplotter_imexport.h"
+#include "jkqtcommon/jkqtpdrawingtools.h"
+#include "jkqtcommon/jkqtpbasicimagetools.h"
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+class JKQTBasePlotterStyle; // forward
+
+
+/** \brief Support Class for JKQTBasePlotter, which summarizes all properties that define the visual styling of graphs
+ * \ingroup jkqtpplotter_styling
+ *
+ * \see JKQTBasePlotter, \ref jkqtpplotter_styling
+ */
+class JKQTPLOTTER_LIB_EXPORT JKQTGraphsSpecificStyleProperties {
+ Q_GADGET
+ public:
+ JKQTGraphsSpecificStyleProperties(JKQTPPlotStyleType type, const JKQTBasePlotterStyle& parent);
+ JKQTGraphsSpecificStyleProperties(const JKQTGraphsSpecificStyleProperties& other)=default;
+ JKQTGraphsSpecificStyleProperties(JKQTGraphsSpecificStyleProperties&& other)=default;
+ JKQTGraphsSpecificStyleProperties& operator=(const JKQTGraphsSpecificStyleProperties& other)=default;
+ JKQTGraphsSpecificStyleProperties& operator=(JKQTGraphsSpecificStyleProperties&& other)=default;
+
+
+ /** \brief loads the plot properties from a QSettings object
+ *
+ * \param settings QSettings-object to read from
+ * \param group Group in the QSettings-object to read from
+ * \param defaultStyle If a setting cannot be found in \a settings, default values are taken from this object
+ * By default, this is a default-constructed object
+ */
+ void loadSettings(const QSettings &settings, const QString& group, const JKQTGraphsSpecificStyleProperties &defaultStyle);
+
+ /** \brief saves the plot properties into a QSettings object.
+ *
+ * \param settings QSettings-object to save to
+ * \param group Group in the QSettings-object to save to
+ */
+ void saveSettings(QSettings& settings, const QString& group) const;
+
+ /** \brief width (in pt) of lines used for newly added graphs */
+ double defaultLineWidth;
+ /** \brief size (in pt) of symbols used for newly added graphs */
+ double defaultSymbolSize;
+ /** \brief width (in pt) of the outline of symbols used for newly added graphs */
+ double defaultSymbolLineSize;
+ /** \brief width (in pt) of lines used for the error indicators of newly added graphs */
+ double defaultErrorIndicatorWidth;
+ /** \brief head decorator style */
+ JKQTPLineDecoratorStyle defaultHeadDecoratorStyle;
+ /** \brief head decorator size-factor, used to calculate the size of the arrow from the line width */
+ double defaultHeadDecoratorSizeFactor;
+ /** \brief defines how to derive the basic graph color for a new graph from the color selected from JKQTGraphsBaseStyle::defaultGraphColors
+ *
+ * This property is usually JKQTPFFCMSameColor, but can be changed to allow to e.g. fill
+ * barcharts always with a lighter color than the full color ...
+ */
+ JKQTPColorDerivationMode graphColorDerivationMode;
+ /** \brief defines how to derive a fill color for a new graph */
+ JKQTPColorDerivationMode fillColorDerivationMode;
+ /** \brief defines how to derive an error color for a new graph */
+ JKQTPColorDerivationMode errorColorDerivationMode;
+ /** \brief defines how to derive an error fill color from the error color for a new graph */
+ JKQTPColorDerivationMode errorFillColorDerivationMode;
+ /** \brief defines how to derive a symbol fill color for a new graph */
+ JKQTPColorDerivationMode symbolFillColorDerivationMode;
+ };
+
+
+
+ /** \brief Support Class for JKQTBasePlotter, which summarizes all properties that define the visual styling of geometric elements
+ * \ingroup jkqtpplotter_styling
+ *
+ * \see JKQTBasePlotter, \ref jkqtpplotter_styling
+ */
+ class JKQTPLOTTER_LIB_EXPORT JKQTGeometricSpecificStyleProperties: public JKQTGraphsSpecificStyleProperties {
+ Q_GADGET
+ public:
+ JKQTGeometricSpecificStyleProperties(const JKQTBasePlotterStyle& parent);
+ JKQTGeometricSpecificStyleProperties(const JKQTBasePlotterStyle& parent, const JKQTGraphsSpecificStyleProperties& other);
+ JKQTGeometricSpecificStyleProperties(JKQTPPlotStyleType type, const JKQTBasePlotterStyle& parent);
+ JKQTGeometricSpecificStyleProperties(const JKQTGeometricSpecificStyleProperties& other)=default;
+ JKQTGeometricSpecificStyleProperties(JKQTGeometricSpecificStyleProperties&& other)=default;
+ JKQTGeometricSpecificStyleProperties& operator=(const JKQTGeometricSpecificStyleProperties& other)=default;
+ JKQTGeometricSpecificStyleProperties& operator=(JKQTGeometricSpecificStyleProperties&& other)=default;
+
+
+ /** \brief loads the plot properties from a QSettings object
+ *
+ * \param settings QSettings-object to read from
+ * \param group Group in the QSettings-object to read from
+ * \param defaultStyle If a setting cannot be found in \a settings, default values are taken from this object
+ * By default, this is a default-constructed object
+ */
+ void loadSettings(const QSettings &settings, const QString& group, const JKQTGraphsSpecificStyleProperties &defaultStyle);
+
+ /** \brief saves the plot properties into a QSettings object.
+ *
+ * \param settings QSettings-object to save to
+ * \param group Group in the QSettings-object to save to
+ */
+ void saveSettings(QSettings& settings, const QString& group) const;
+
+
+ /** \brief graph color used */
+ QColor defaultColor;
+ /** \brief graph line style used */
+ Qt::PenStyle defaultLineStyle;
+ /** \brief graph symbol used */
+ JKQTPGraphSymbols defaultSymbol;
+ /** \brief graph fill style used */
+ Qt::BrushStyle defaultFillStyle;
+
+
+ };
+
+
+ /** \brief Support Class for JKQTBasePlotter, which summarizes all properties that define the visual styling of annotation elements
+ * \ingroup jkqtpplotter_styling
+ *
+ * \see JKQTBasePlotter, \ref jkqtpplotter_styling
+ */
+ class JKQTPLOTTER_LIB_EXPORT JKQTAnnotationsSpecificStyleProperties: public JKQTGeometricSpecificStyleProperties {
+ Q_GADGET
+ public:
+ JKQTAnnotationsSpecificStyleProperties(const JKQTBasePlotterStyle& parent);
+ JKQTAnnotationsSpecificStyleProperties(const JKQTBasePlotterStyle& parent, const JKQTGraphsSpecificStyleProperties& other);
+ JKQTAnnotationsSpecificStyleProperties(const JKQTAnnotationsSpecificStyleProperties& other)=default;
+ JKQTAnnotationsSpecificStyleProperties(JKQTAnnotationsSpecificStyleProperties&& other)=default;
+ JKQTAnnotationsSpecificStyleProperties& operator=(const JKQTAnnotationsSpecificStyleProperties& other)=default;
+ JKQTAnnotationsSpecificStyleProperties& operator=(JKQTAnnotationsSpecificStyleProperties&& other)=default;
+
+
+ /** \brief loads the plot properties from a QSettings object
+ *
+ * \param settings QSettings-object to read from
+ * \param group Group in the QSettings-object to read from
+ * \param defaultStyle If a setting cannot be found in \a settings, default values are taken from this object
+ * By default, this is a default-constructed object
+ */
+ void loadSettings(const QSettings &settings, const QString& group, const JKQTAnnotationsSpecificStyleProperties &defaultStyle);
+
+ /** \brief saves the plot properties into a QSettings object.
+ *
+ * \param settings QSettings-object to save to
+ * \param group Group in the QSettings-object to save to
+ */
+ void saveSettings(QSettings& settings, const QString& group) const;
+
+ /** \brief defines how to derive a text color for a new graph */
+ JKQTPColorDerivationMode textColorDerivationMode;
+ /** \brief default text color in the plot */
+ QColor defaultTextColor;
+ /** \brief default font size in the plot [pt] */
+ double defaultFontSize;
+ /** \brief default font name in the plot */
+ QString defaultFontName;
+
+
+ };
+
+
+
+/** \brief Support Class for JKQTBasePlotter, which summarizes all properties that define the visual styling of a JKQTBasePlotter
+ * \ingroup jkqtpplotter_styling
+ *
+ * \see JKQTBasePlotter, \ref jkqtpplotter_styling
+ */
+class JKQTPLOTTER_LIB_EXPORT JKQTGraphsBaseStyle {
+ Q_GADGET
+ public:
+ JKQTGraphsBaseStyle(const JKQTBasePlotterStyle& parent);
+
+
+
+ /** \brief loads the plot properties from a QSettings object
+ *
+ * \param settings QSettings-object to read from
+ * \param group Group in the QSettings-object to read from
+ * \param defaultStyle If a setting cannot be found in \a settings, default values are taken from this object
+ * By default, this is a default-constructed object
+ */
+ void loadSettings(const QSettings &settings, const QString& group, const JKQTGraphsBaseStyle &defaultStyle, const JKQTBasePlotterStyle& parent);
+
+ /** \brief saves the plot properties into a QSettings object.
+ *
+ * \param settings QSettings-object to save to
+ * \param group Group in the QSettings-object to save to
+ */
+ void saveSettings(QSettings& settings, const QString& group=QString("graphs_styling/")) const;
+
+ /** \brief specifies whether to use antialiasing for plotting the graphs
+ *
+ * \note You can set this property \c false to increase plotting speed of complex plots (with many graphs inside). You can reach a
+ * roughly three-fold speed improvement!
+ */
+ bool useAntiAliasingForGraphs;
+
+
+ /** \brief styling options for standard graphs */
+ JKQTGraphsSpecificStyleProperties defaultGraphStyle;
+ /** \brief styling options for bargraph graphs */
+ JKQTGraphsSpecificStyleProperties barchartStyle;
+ /** \brief styling options for boxplots graphs */
+ JKQTGraphsSpecificStyleProperties boxplotStyle;
+ /** \brief styling options for filled graphs */
+ JKQTGraphsSpecificStyleProperties filledStyle;
+ /** \brief styling options for impulses graphs */
+ JKQTGraphsSpecificStyleProperties impulseStyle;
+ /** \brief styling options for geometric elements */
+ JKQTGeometricSpecificStyleProperties geometricStyle;
+ /** \brief styling options for annotation elements */
+ JKQTAnnotationsSpecificStyleProperties annotationStyle;
+
+ /** \brief returns defaultGraphStyle, barchartStyle, ..., depending on the value of \a type */
+ const JKQTGraphsSpecificStyleProperties& getGraphStyleByType(JKQTPPlotStyleType type) const;
+
+ /** \brief color palette used by default for new graphs */
+ JKQTPMathImageColorPalette defaultPalette;
+
+ /** \brief colors used to automatically collor different graphs differently */
+ QVector defaultGraphColors;
+ /** \brief Qt::PenStyle used to automatically style different graphs differently */
+ QVector defaultGraphPenStyles;
+ /** \brief JKQTPGraphSymbols used to automatically assign to different graphs */
+ QVector defaultGraphSymbols;
+ /** \brief Qt::BrushStyle used to automatically style different graphs differently */
+ QVector defaultGraphFillStyles;
+
+};
+
+#endif // JKQTPGRAPHSBASESTYLE_H
diff --git a/lib/jkqtplotter/jkqtpgraphsbasestylingmixins.cpp b/lib/jkqtplotter/jkqtpgraphsbasestylingmixins.cpp
index 09c32eb0cf..c9f2b633be 100644
--- a/lib/jkqtplotter/jkqtpgraphsbasestylingmixins.cpp
+++ b/lib/jkqtplotter/jkqtpgraphsbasestylingmixins.cpp
@@ -34,13 +34,14 @@ JKQTPGraphLineStyleMixin::JKQTPGraphLineStyleMixin()
m_highlightingLineColor.setAlphaF(0.5);
}
-void JKQTPGraphLineStyleMixin::initLineStyle(JKQTBasePlotter* parent, int &parentPlotStyle)
+void JKQTPGraphLineStyleMixin::initLineStyle(JKQTBasePlotter* parent, int &parentPlotStyle, JKQTPPlotStyleType styletype)
{
if (parent) { // get style settings from parent object
if (parentPlotStyle<0) parentPlotStyle=parent->getNextStyle();
- m_linePen.setColor(parent->getPlotStyle(parentPlotStyle).color());
- m_linePen.setStyle(parent->getPlotStyle(parentPlotStyle).style());
- m_lineWidth=parent->getPlotStyle(parentPlotStyle).widthF();
+ const JKQTBasePlotter::JKQTPPen pen=parent->getPlotStyle(parentPlotStyle, styletype);
+ m_linePen.setColor(pen.color());
+ m_linePen.setStyle(pen.style());
+ m_lineWidth=pen.widthF();
m_highlightingLineColor=getLineColor();
m_highlightingLineColor.setAlphaF(0.5);
}
@@ -169,15 +170,16 @@ JKQTPGraphSymbolStyleMixin::JKQTPGraphSymbolStyleMixin()
m_symbolLineWidth=1;
}
-void JKQTPGraphSymbolStyleMixin::initSymbolStyle(JKQTBasePlotter *parent, int& parentPlotStyle)
+void JKQTPGraphSymbolStyleMixin::initSymbolStyle(JKQTBasePlotter *parent, int& parentPlotStyle, JKQTPPlotStyleType styletype)
{
if (parent) { // get style settings from parent object
if (parentPlotStyle<0) parentPlotStyle=parent->getNextStyle();
- m_symbolColor=parent->getPlotStyle(parentPlotStyle).color();
- m_symbolSize=parent->getPlotStyle(parentPlotStyle).symbolSize();
- m_symbolLineWidth=parent->getPlotStyle(parentPlotStyle).symbolLineWidthF();
- m_symbolType=parent->getPlotStyle(parentPlotStyle).symbol();
- m_symbolFillColor=parent->getPlotStyle(parentPlotStyle).symbolFillColor();
+ const JKQTBasePlotter::JKQTPPen pen=parent->getPlotStyle(parentPlotStyle, styletype);
+ m_symbolColor=pen.color();
+ m_symbolSize=pen.symbolSize();
+ m_symbolLineWidth=pen.symbolLineWidthF();
+ m_symbolType=pen.symbol();
+ m_symbolFillColor=pen.symbolFillColor();
}
}
@@ -286,13 +288,14 @@ JKQTPGraphFillStyleMixin::JKQTPGraphFillStyleMixin()
}
-void JKQTPGraphFillStyleMixin::initFillStyle(JKQTBasePlotter *parent, int &parentPlotStyle)
+void JKQTPGraphFillStyleMixin::initFillStyle(JKQTBasePlotter *parent, int &parentPlotStyle, JKQTPPlotStyleType styletype)
{
if (parent) { // get style settings from parent object
if (parentPlotStyle<0) parentPlotStyle=parent->getNextStyle();
- m_fillColor=parent->getPlotStyle(parentPlotStyle).fillColor();
+ const JKQTBasePlotter::JKQTPPen pen=parent->getPlotStyle(parentPlotStyle, styletype);
+ m_fillColor=pen.fillColor();
m_fillBrush.setColor(m_fillColor);
- m_fillBrush.setStyle(parent->getPlotStyle(parentPlotStyle).fillStyle());
+ m_fillBrush.setStyle(pen.fillStyle());
}
}
@@ -403,16 +406,17 @@ QPen JKQTPGraphLineStyleMixin::getHighlightingLinePenForRects(JKQTPEnhancedPaint
JKQTPGraphTextStyleMixin::JKQTPGraphTextStyleMixin(JKQTBasePlotter *parent)
{
- m_textFontName=parent->getDefaultTextFontName();
- m_textFontSize=parent->getDefaultTextSize();
- m_textColor=parent->getDefaultTextColor();
+ m_textFontSize=parent->getCurrentPlotterStyle().graphsStyle.annotationStyle.defaultFontSize;
+ m_textColor=parent->getCurrentPlotterStyle().graphsStyle.annotationStyle.defaultTextColor;
+ m_textFontName=parent->getCurrentPlotterStyle().graphsStyle.annotationStyle.defaultFontName;
}
-void JKQTPGraphTextStyleMixin::initTextStyle(JKQTBasePlotter *parent, int &parentPlotStyle)
+void JKQTPGraphTextStyleMixin::initTextStyle(JKQTBasePlotter *parent, int &/*parentPlotStyle*/, JKQTPPlotStyleType styletype)
{
- if (parent) { // get style settings from parent object
- if (parentPlotStyle<0) parentPlotStyle=parent->getNextStyle();
- m_textColor=parent->getPlotStyle(parentPlotStyle).color();
+ if (parent && styletype==JKQTPPlotStyleType::Annotation) { // get style settings from parent object
+ m_textFontSize=parent->getCurrentPlotterStyle().graphsStyle.annotationStyle.defaultFontSize;
+ m_textColor=parent->getCurrentPlotterStyle().graphsStyle.annotationStyle.defaultTextColor;
+ m_textFontName=parent->getCurrentPlotterStyle().graphsStyle.annotationStyle.defaultFontName;
}
}
@@ -459,9 +463,13 @@ JKQTPGraphDecoratedLineStyleMixin::JKQTPGraphDecoratedLineStyleMixin():
m_tailDecoratorSizeFactor=m_headDecoratorSizeFactor=8.0;
}
-void JKQTPGraphDecoratedLineStyleMixin::initDecoratedLineStyle(JKQTBasePlotter *parent, int &parentPlotStyle)
+void JKQTPGraphDecoratedLineStyleMixin::initDecoratedLineStyle(JKQTBasePlotter *parent, int &parentPlotStyle, JKQTPPlotStyleType styletype)
{
- initLineStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, styletype);
+ if (parent) { // get style settings from parent object
+ m_headDecoratorStyle=parent->getCurrentPlotterStyle().graphsStyle.getGraphStyleByType(styletype).defaultHeadDecoratorStyle;
+ m_headDecoratorSizeFactor=m_tailDecoratorSizeFactor=parent->getCurrentPlotterStyle().graphsStyle.getGraphStyleByType(styletype).defaultHeadDecoratorSizeFactor;
+ }
}
JKQTPGraphDecoratedLineStyleMixin::~JKQTPGraphDecoratedLineStyleMixin()
@@ -528,9 +536,13 @@ JKQTPGraphDecoratedHeadLineStyleMixin::JKQTPGraphDecoratedHeadLineStyleMixin():
m_headDecoratorSizeFactor=8.0;
}
-void JKQTPGraphDecoratedHeadLineStyleMixin::initDecoratedHeadLineStyle(JKQTBasePlotter *parent, int &parentPlotStyle)
+void JKQTPGraphDecoratedHeadLineStyleMixin::initDecoratedHeadLineStyle(JKQTBasePlotter *parent, int &parentPlotStyle, JKQTPPlotStyleType styletype)
{
- initLineStyle(parent, parentPlotStyle);
+ initLineStyle(parent, parentPlotStyle, styletype);
+ if (parent) { // get style settings from parent object
+ m_headDecoratorStyle=parent->getCurrentPlotterStyle().graphsStyle.getGraphStyleByType(styletype).defaultHeadDecoratorStyle;
+ m_headDecoratorSizeFactor=parent->getCurrentPlotterStyle().graphsStyle.getGraphStyleByType(styletype).defaultHeadDecoratorSizeFactor;
+ }
}
JKQTPGraphDecoratedHeadLineStyleMixin::~JKQTPGraphDecoratedHeadLineStyleMixin()
diff --git a/lib/jkqtplotter/jkqtpgraphsbasestylingmixins.h b/lib/jkqtplotter/jkqtpgraphsbasestylingmixins.h
index 358cd5f8f8..2b0a4cfdeb 100644
--- a/lib/jkqtplotter/jkqtpgraphsbasestylingmixins.h
+++ b/lib/jkqtplotter/jkqtpgraphsbasestylingmixins.h
@@ -24,6 +24,7 @@
#include
#include "jkqtplotter/jkqtptools.h"
#include "jkqtplotter/jkqtplotter_imexport.h"
+#include "jkqtplotter/jkqtpbaseplotter.h"
#include "jkqtcommon/jkqtpdrawingtools.h"
@@ -31,7 +32,6 @@
#define jkqtpgraphsbasestylingmixins_H
-class JKQTBasePlotter; // forward
class JKQTPlotter; // forward
@@ -51,7 +51,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGraphLineStyleMixin {
/** \brief class constructor */
JKQTPGraphLineStyleMixin();
/** \brief initiaize the line style (from the parent plotter) */
- void initLineStyle(JKQTBasePlotter *parent, int &parentPlotStyle);
+ void initLineStyle(JKQTBasePlotter *parent, int &parentPlotStyle, JKQTPPlotStyleType styletype=JKQTPPlotStyleType::Default);
virtual ~JKQTPGraphLineStyleMixin();
@@ -161,7 +161,7 @@ public:
/** \brief class constructor */
JKQTPGraphDecoratedHeadLineStyleMixin();
/** \brief initiaize the line style (from the parent plotter) */
- void initDecoratedHeadLineStyle(JKQTBasePlotter *parent, int &parentPlotStyle);
+ void initDecoratedHeadLineStyle(JKQTBasePlotter *parent, int &parentPlotStyle, JKQTPPlotStyleType styletype=JKQTPPlotStyleType::Default);
virtual ~JKQTPGraphDecoratedHeadLineStyleMixin();
@@ -212,7 +212,7 @@ public:
/** \brief class constructor */
JKQTPGraphDecoratedLineStyleMixin();
/** \brief initiaize the line style (from the parent plotter) */
- void initDecoratedLineStyle(JKQTBasePlotter *parent, int &parentPlotStyle);
+ void initDecoratedLineStyle(JKQTBasePlotter *parent, int &parentPlotStyle, JKQTPPlotStyleType styletype=JKQTPPlotStyleType::Default);
virtual ~JKQTPGraphDecoratedLineStyleMixin();
@@ -283,7 +283,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGraphSymbolStyleMixin {
/** \brief class constructor */
JKQTPGraphSymbolStyleMixin();
/** \brief initiaize the symbol style (from the parent plotter) */
- void initSymbolStyle(JKQTBasePlotter *parent, int &parentPlotStyle);
+ void initSymbolStyle(JKQTBasePlotter *parent, int &parentPlotStyle, JKQTPPlotStyleType styletype=JKQTPPlotStyleType::Default);
virtual ~JKQTPGraphSymbolStyleMixin();
@@ -399,7 +399,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGraphFillStyleMixin {
JKQTPGraphFillStyleMixin();
/** \brief initiaize the fill style (from the parent plotter) */
- void initFillStyle(JKQTBasePlotter* parent, int &parentPlotStyle);
+ void initFillStyle(JKQTBasePlotter* parent, int &parentPlotStyle, JKQTPPlotStyleType styletype=JKQTPPlotStyleType::Default);
virtual ~JKQTPGraphFillStyleMixin();
@@ -497,7 +497,7 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGraphTextStyleMixin {
JKQTPGraphTextStyleMixin(JKQTBasePlotter *parent);
/** \brief initiaize the fill style (from the parent plotter) */
- void initTextStyle(JKQTBasePlotter* parent, int &parentPlotStyle);
+ void initTextStyle(JKQTBasePlotter* parent, int &parentPlotStyle, JKQTPPlotStyleType styletype=JKQTPPlotStyleType::Default);
virtual ~JKQTPGraphTextStyleMixin();
diff --git a/lib/jkqtplotter/jkqtpimagetools.cpp b/lib/jkqtplotter/jkqtpimagetools.cpp
index 0cf48c59c7..df289e18e2 100644
--- a/lib/jkqtplotter/jkqtpimagetools.cpp
+++ b/lib/jkqtplotter/jkqtpimagetools.cpp
@@ -77,7 +77,7 @@ JKQTPColorPaletteStyleAndToolsMixin::JKQTPColorPaletteStyleAndToolsMixin(JKQTBas
this->colorBarTopVisible=false;
this->colorBarRightVisible=true;
- if (parent) this->palette=parent->getCurrentPlotterStyle().defaultPalette;
+ if (parent) this->palette=parent->getCurrentPlotterStyle().graphsStyle.defaultPalette;
}
diff --git a/lib/jkqtplotter/jkqtpkeystyle.h b/lib/jkqtplotter/jkqtpkeystyle.h
index a2662b4c48..9d9e5f4ab5 100644
--- a/lib/jkqtplotter/jkqtpkeystyle.h
+++ b/lib/jkqtplotter/jkqtpkeystyle.h
@@ -28,7 +28,7 @@
class JKQTBasePlotterStyle; // forward
-/** \brief Support Class for JKQTBasePlotter, which summarizes all proeprties that define the visual styling of the key in a JKQTBasePlotter
+/** \brief Support Class for JKQTBasePlotter, which summarizes all properties that define the visual styling of the key in a JKQTBasePlotter
* \ingroup jkqtpplotter_styling
*
* \see JKQTBasePlotter, JKQTBasePlotterStyle, \ref jkqtpplotter_styling
diff --git a/lib/jkqtplotter/jkqtplotterstyle.h b/lib/jkqtplotter/jkqtplotterstyle.h
index 156f09e7cb..dcc71c7c5e 100644
--- a/lib/jkqtplotter/jkqtplotterstyle.h
+++ b/lib/jkqtplotter/jkqtplotterstyle.h
@@ -31,7 +31,7 @@
#include
-/** \brief Support Class for JKQTPlotter, which summarizes all proeprties that define the visual styling of a JKQTPlotter
+/** \brief Support Class for JKQTPlotter, which summarizes all properties that define the visual styling of a JKQTPlotter
* \ingroup jkqtpplotter_styling
*
* \see JKQTPlotter, \ref jkqtpplotter_styling
diff --git a/lib/jkqtplotter/jkqtptools.cpp b/lib/jkqtplotter/jkqtptools.cpp
index 5d17ec9bf0..705f680655 100644
--- a/lib/jkqtplotter/jkqtptools.cpp
+++ b/lib/jkqtplotter/jkqtptools.cpp
@@ -379,6 +379,12 @@ bool JKQTPCADrawModeHasAxisLabel(JKQTPCADrawMode pos)
QString JKQTPColorDerivationMode2String(JKQTPColorDerivationMode mode)
{
switch(mode) {
+ case JKQTPFFCMFullyTransparentColor: return "transparent";
+ case JKQTPFFCMBlack: return "black";
+ case JKQTPFFCMWhite: return "white";
+ case JKQTPFFCMGrey25: return "grey25";
+ case JKQTPFFCMGrey50: return "grey50";
+ case JKQTPFFCMGrey75: return "grey75";
case JKQTPFFCMSameColor: return "same";
case JKQTPFFCMInvertedColor: return "inverted";
case JKQTPFFCMLighterColor: return "lighter";
@@ -395,8 +401,14 @@ QString JKQTPColorDerivationMode2String(JKQTPColorDerivationMode mode)
JKQTPColorDerivationMode String2JKQTPColorDerivationMode(const QString &mode)
{
- QString m=mode.trimmed().toLower();
+ const QString m=mode.trimmed().toLower();
+ if (m=="transparent" || m=="no_color") return JKQTPFFCMFullyTransparentColor;
if (m=="same") return JKQTPFFCMSameColor;
+ if (m=="black") return JKQTPFFCMBlack;
+ if (m=="white") return JKQTPFFCMWhite;
+ if (m=="grey25") return JKQTPFFCMGrey25;
+ if (m=="grey50") return JKQTPFFCMGrey50;
+ if (m=="grey75") return JKQTPFFCMGrey75;
if (m=="inverted") return JKQTPFFCMInvertedColor;
if (m=="lighter") return JKQTPFFCMLighterColor;
if (m=="even_lighter") return JKQTPFFCMEvenLighterColor;
@@ -409,21 +421,27 @@ JKQTPColorDerivationMode String2JKQTPColorDerivationMode(const QString &mode)
return JKQTPFFCMSameColor;
}
-QColor JKQTPGetDerivedColor(JKQTPColorDerivationMode mode, const QColor &col)
+QColor JKQTPGetDerivedColor(JKQTPColorDerivationMode mode, const QColor &basecolor)
{
switch(mode) {
- case JKQTPFFCMSameColor: return col;
- case JKQTPFFCMInvertedColor: return QColor(255-col.red(), 255-col.green(), 255-col.blue(), col.alpha());
- case JKQTPFFCMLighterColor: return col.lighter();
- case JKQTPFFCMEvenLighterColor: return col.lighter().lighter();
- case JKQTPFFCMDarkerColor: return col.darker();
- case JKQTPFFCMEvenDarkerColor: return col.darker().darker();
- case JKQTPFFCMMoreTransparentColor: { QColor c=col; c.setAlphaF(0.66*c.alphaF()); return c; }
- case JKQTPFFCMEvenMoreTransparentColor: { QColor c=col; c.setAlphaF(0.33*c.alphaF()); return c; }
- case JKQTPFFCMLessTransparentColor: { QColor c=col; c.setAlphaF(c.alphaF()+(1.0-c.alphaF())*0.33); return c; }
- case JKQTPFFCMEvenLessTransparentColor: { QColor c=col; c.setAlphaF(c.alphaF()+(1.0-c.alphaF())*0.66); return c; }
+ case JKQTPFFCMSameColor: return basecolor;
+ case JKQTPFFCMFullyTransparentColor: return QColor(Qt::transparent);
+ case JKQTPFFCMBlack: return QColor(Qt::black);
+ case JKQTPFFCMWhite: return QColor(Qt::white);
+ case JKQTPFFCMGrey25: return QColor(static_cast(0.25*255.0),static_cast(0.25*255.0),static_cast(0.25*255.0));
+ case JKQTPFFCMGrey50: return QColor(static_cast(0.50*255.0),static_cast(0.50*255.0),static_cast(0.50*255.0));
+ case JKQTPFFCMGrey75: return QColor(static_cast(0.75*255.0),static_cast(0.75*255.0),static_cast(0.75*255.0));
+ case JKQTPFFCMInvertedColor: return QColor(255-basecolor.red(), 255-basecolor.green(), 255-basecolor.blue(), basecolor.alpha());
+ case JKQTPFFCMLighterColor: return basecolor.lighter();
+ case JKQTPFFCMEvenLighterColor: return basecolor.lighter().lighter();
+ case JKQTPFFCMDarkerColor: return basecolor.darker();
+ case JKQTPFFCMEvenDarkerColor: return basecolor.darker().darker();
+ case JKQTPFFCMMoreTransparentColor: { QColor c=basecolor; c.setAlphaF(0.66*c.alphaF()); return c; }
+ case JKQTPFFCMEvenMoreTransparentColor: { QColor c=basecolor; c.setAlphaF(0.33*c.alphaF()); return c; }
+ case JKQTPFFCMLessTransparentColor: { QColor c=basecolor; c.setAlphaF(c.alphaF()+(1.0-c.alphaF())*0.33); return c; }
+ case JKQTPFFCMEvenLessTransparentColor: { QColor c=basecolor; c.setAlphaF(c.alphaF()+(1.0-c.alphaF())*0.66); return c; }
}
- return col;
+ return basecolor;
}
QString JKQTPUserActionMarkerType2String(JKQTPUserActionMarkerType act)
diff --git a/lib/jkqtplotter/jkqtptools.h b/lib/jkqtplotter/jkqtptools.h
index 2bf9431cdc..bf4a9b206d 100644
--- a/lib/jkqtplotter/jkqtptools.h
+++ b/lib/jkqtplotter/jkqtptools.h
@@ -57,10 +57,21 @@ class JKQTPEnhancedPainter; // forward
class JKQTBasePlotter; // forward declaration
+/** \brief used to specify teh type of graph when calling getPlotStyle()
+ * \ingroup jkqtpplottersupprt
+ */
+enum class JKQTPPlotStyleType {
+ Default, /*!< general graphs */
+ Barchart, /*!< barchart-type graphs */
+ Boxplot, /*!< boxplot-type graphs */
+ Filled, /*!< filled graphs */
+ Impulses, /*!< impulse-type graphs */
+ Geometric, /*!< geometric elements (e.g. rectangles, circles, lines, ...) */
+ Annotation, /*!< annotation elements */
+};
/** \brief Styles in which to mark single positions during user actions in JKQTPlotter
* \ingroup jkqtpplottersupprt
-
*/
enum JKQTPUserActionMarkerType {
jkqtpuamtCircle=0, /*!< \brief a small circle around the position to mark */
@@ -212,6 +223,13 @@ typedef JKQTPMouseDoubleClickActionsHashMap::const_iterator JKQTPMouseDoubleClic
*/
enum JKQTPColorDerivationMode {
+ JKQTPFFCMFullyTransparentColor, /*!< \brief fully transparent color */
+ JKQTPFFCMNoColor=JKQTPFFCMFullyTransparentColor, /*!< \brief fully transparent color */
+ JKQTPFFCMBlack, /*!< \brief fill with black */
+ JKQTPFFCMGrey75, /*!< \brief fill with 75% grey */
+ JKQTPFFCMGrey50, /*!< \brief fill with 50% grey */
+ JKQTPFFCMGrey25, /*!< \brief fill with 25% grey */
+ JKQTPFFCMWhite, /*!< \brief fill with white */
JKQTPFFCMSameColor, /*!< \brief fill with the same color */
JKQTPFFCMInvertedColor, /*!< \brief fill with the inverted color */
JKQTPFFCMLighterColor, /*!< \brief fill with the a lighter color */
@@ -227,9 +245,12 @@ enum JKQTPColorDerivationMode {
/** \brief use a JKQTPColorDerivationMode to derive a color from \a col as specified
* \ingroup jkqtpplotter_styling
*
+ * \param mode the mode of how to modify the given color \a basecolor
+ * \param basecolor the color in which to base the derivation
+ *
* \see JKQTPColorDerivationMode
*/
-JKQTPLOTTER_LIB_EXPORT QColor JKQTPGetDerivedColor(JKQTPColorDerivationMode mode, const QColor& col);
+JKQTPLOTTER_LIB_EXPORT QColor JKQTPGetDerivedColor(JKQTPColorDerivationMode mode, const QColor& basecolor);
/** \brief construct a QColor, based on the given \a color, but with alpha set to the specified value \a alphaF
* \ingroup jkqtpplotter_styling