From: Dmitry Shachnev <mitya57@debian.org>
Date: Tue, 3 Nov 2020 15:50:08 +0300
Subject: Use QRandomGenerator instead of deprecated qrand()/qsrand()

---
 examples/plots/mainwindow.cpp | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/examples/plots/mainwindow.cpp b/examples/plots/mainwindow.cpp
index a5d3405..0372254 100644
--- a/examples/plots/mainwindow.cpp
+++ b/examples/plots/mainwindow.cpp
@@ -1055,7 +1055,7 @@ void MainWindow::setupStyledDemo(QCustomPlot *customPlot)
   for (int i=0; i<x3.size(); ++i)
   {
     x3[i] = i/(double)(x3.size()-1)*10;
-    y3[i] = 0.05+3*(0.5+qCos(x3[i]*x3[i]*0.2+2)*0.5)/(double)(x3[i]+0.7)+qrand()/(double)RAND_MAX*0.01;
+    y3[i] = 0.05+3*(0.5+qCos(x3[i]*x3[i]*0.2+2)*0.5)/(double)(x3[i]+0.7)+QRandomGenerator::global()->bounded(0.01);
   }
   for (int i=0; i<x4.size(); ++i)
   {
@@ -1177,7 +1177,7 @@ void MainWindow::setupAdvancedAxesDemo(QCustomPlot *customPlot)
   // prepare data:
   QVector<QCPGraphData> dataCos(21), dataGauss(50), dataRandom(100);
   QVector<double> x3, y3;
-  qsrand(3);
+  QRandomGenerator generator(3u);
   for (int i=0; i<dataCos.size(); ++i)
   {
     dataCos[i].key = i/(double)(dataCos.size()-1)*10-5.0;
@@ -1191,7 +1191,7 @@ void MainWindow::setupAdvancedAxesDemo(QCustomPlot *customPlot)
   for (int i=0; i<dataRandom.size(); ++i)
   {
     dataRandom[i].key = i/(double)dataRandom.size()*10;
-    dataRandom[i].value = qrand()/(double)RAND_MAX-0.5+dataRandom[qMax(0, i-1)].value;
+    dataRandom[i].value = generator.generateDouble()-0.5+dataRandom[qMax(0, i-1)].value;
   }
   x3 << 1 << 2 << 3 << 4;
   y3 << 2 << 2.5 << 4 << 1.5;
@@ -1302,12 +1302,12 @@ void MainWindow::setupFinancialDemo(QCustomPlot *customPlot)
   time[0] = startTime;
   value1[0] = 60;
   value2[0] = 20;
-  qsrand(9);
+  QRandomGenerator generator(9u);
   for (int i=1; i<n; ++i)
   {
     time[i] = startTime + 3600*i;
-    value1[i] = value1[i-1] + (qrand()/(double)RAND_MAX-0.5)*10;
-    value2[i] = value2[i-1] + (qrand()/(double)RAND_MAX-0.5)*3;
+    value1[i] = value1[i-1] + (generator.generateDouble()-0.5)*10;
+    value2[i] = value2[i-1] + (generator.generateDouble()-0.5)*3;
   }
   
   // create candlestick chart:
@@ -1346,7 +1346,7 @@ void MainWindow::setupFinancialDemo(QCustomPlot *customPlot)
   QCPBars *volumeNeg = new QCPBars(volumeAxisRect->axis(QCPAxis::atBottom), volumeAxisRect->axis(QCPAxis::atLeft));
   for (int i=0; i<n/5; ++i)
   {
-    int v = qrand()%20000+qrand()%20000+qrand()%20000-10000*3;
+    int v = generator.bounded(20000)+generator.bounded(20000)+generator.bounded(20000)-10000*3;
     (v < 0 ? volumeNeg : volumePos)->addData(startTime+3600*5.0*i, qAbs(v)); // add data to either volumeNeg or volumePos, depending on sign of v
   }
   volumePos->setWidth(3600*4);
@@ -1390,8 +1390,8 @@ void MainWindow::realtimeDataSlot()
   if (key-lastPointKey > 0.002) // at most add point every 2 ms
   {
     // add data to lines:
-    ui->customPlot->graph(0)->addData(key, qSin(key)+qrand()/(double)RAND_MAX*1*qSin(key/0.3843));
-    ui->customPlot->graph(1)->addData(key, qCos(key)+qrand()/(double)RAND_MAX*0.5*qSin(key/0.4364));
+    ui->customPlot->graph(0)->addData(key, qSin(key)+QRandomGenerator::global()->bounded(1.0)*qSin(key/0.3843));
+    ui->customPlot->graph(1)->addData(key, qCos(key)+QRandomGenerator::global()->bounded(0.5)*qSin(key/0.4364));
     // rescale value (vertical) axis to fit the current data:
     //ui->customPlot->graph(0)->rescaleValueAxis();
     //ui->customPlot->graph(1)->rescaleValueAxis(true);
