src/ChartFermenter.cpp

changeset 434
ebf4996ab396
parent 371
d03a426e0b6b
child 490
b67fb2e5bb41
--- a/src/ChartFermenter.cpp	Mon Nov 07 15:02:16 2022 +0100
+++ b/src/ChartFermenter.cpp	Fri Nov 11 15:04:23 2022 +0100
@@ -44,11 +44,13 @@
     buttonBox->setStandardButtons(QDialogButtonBox::Ok);
     buttonBox->addButton(saveButton,QDialogButtonBox::ActionRole);
 
-    QSplineSeries *pv_air = new QSplineSeries();
-    QSplineSeries *pv_beer = new QSplineSeries();
-    QSplineSeries *pv_chiller = new QSplineSeries();
-    QSplineSeries *pwr_cool = new QSplineSeries();
-    QSplineSeries *pwr_heat = new QSplineSeries();
+    QLineSeries *pv_air = new QLineSeries();
+    QLineSeries *pv_beer = new QLineSeries();
+    QLineSeries *pv_chiller = new QLineSeries();
+    QLineSeries *pwr_cool1 = new QLineSeries();
+    QLineSeries *pwr_cool0 = new QLineSeries();
+    QLineSeries *pwr_heat1 = new QLineSeries();	// Top side of area
+    QLineSeries *pwr_heat0 = new QLineSeries();	// Bottom side of area
 
     query.prepare("SELECT * FROM log_fermenter WHERE code=:code ORDER BY datetime");
     query.bindValue(":code", code);
@@ -59,34 +61,38 @@
         pv_beer->append(timestamp, query.value("temp_beer").toDouble());
         if (query.value("temp_chiller").toDouble() > 0)
             pv_chiller->append(timestamp, query.value("temp_chiller").toDouble());
-        pwr_cool->append(timestamp, query.value("cooler_power").toDouble());
-        pwr_heat->append(timestamp, query.value("heater_power").toDouble());
+	pwr_cool0->append(timestamp, 0);
+        pwr_cool1->append(timestamp, query.value("cooler_power").toInt());
+	pwr_heat0->append(timestamp, 0);
+        pwr_heat1->append(timestamp, query.value("heater_power").toInt());
     }
 
     pv_air->setName(tr("Air"));
     pv_air->setColor(QColorConstants::Svg::lightgreen);
     pv_beer->setName(tr("Beer"));
     QPen pen(QColorConstants::Svg::navy);
-    pen.setWidth(3);
+    pen.setWidth(2);
     pv_beer->setPen(pen);
     pv_chiller->setName(tr("Chiller"));
     pv_chiller->setColor(QColorConstants::Svg::lightsalmon);
     pv_chiller->setOpacity(0.75);
 
+    QAreaSeries *pwr_cool = new QAreaSeries(pwr_cool0, pwr_cool1);
     pwr_cool->setName("Cool %");
-    pwr_cool->setOpacity(0.25);
+    pwr_cool->setOpacity(0.50);
     pwr_cool->setColor(QColorConstants::Blue);
+    QAreaSeries *pwr_heat = new QAreaSeries(pwr_heat0, pwr_heat1);
     pwr_heat->setName("Heat %");
-    pwr_heat->setOpacity(0.25);
+    pwr_heat->setOpacity(0.50);
     pwr_heat->setColor(QColorConstants::Red);
 
     chart = new QChart();
     chart->setTitle(QString("%1 \"%2\"").arg(code).arg(name));
-    chart->addSeries(pwr_cool);
+    chart->addSeries(pwr_cool);		// Order is important, first drawn is lowest layer.
     chart->addSeries(pwr_heat);
     chart->addSeries(pv_chiller);
     chart->addSeries(pv_air);
-    chart->addSeries(pv_beer);
+    chart->addSeries(pv_beer);		// Top layer
 
     QDateTimeAxis *axisX = new QDateTimeAxis;
     axisX->setTickCount(10);
@@ -119,9 +125,9 @@
     pwr_cool->attachAxis(axisYR);
     pwr_heat->attachAxis(axisYR);
 
-    connect(pv_air, &QSplineSeries::hovered, this, &ChartFermenter::tooltip);
-    connect(pv_beer, &QSplineSeries::hovered, this, &ChartFermenter::tooltip);
-    connect(pv_chiller, &QSplineSeries::hovered, this, &ChartFermenter::tooltip);
+    connect(pv_air, &QLineSeries::hovered, this, &ChartFermenter::tooltip);
+    connect(pv_beer, &QLineSeries::hovered, this, &ChartFermenter::tooltip);
+    connect(pv_chiller, &QLineSeries::hovered, this, &ChartFermenter::tooltip);
 
     chartView = new QChartView(chart);
     chartView->setRenderHint(QPainter::Antialiasing);

mercurial