[chronojump] Guides for CairoPaintBarsPreJumpReactive (max/avg/min of tv sums)
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Guides for CairoPaintBarsPreJumpReactive (max/avg/min of tv sums)
- Date: Tue, 7 Sep 2021 17:21:11 +0000 (UTC)
commit c544406fbe8c4304893c8c05b219a7734ef174fa
Author: Xavier de Blas <xaviblas gmail com>
Date: Tue Sep 7 19:19:51 2021 +0200
Guides for CairoPaintBarsPreJumpReactive (max/avg/min of tv sums)
src/gui/eventExecute.cs | 11 +++++++
src/gui/usefulObjects.cs | 81 +++++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 88 insertions(+), 4 deletions(-)
---
diff --git a/src/gui/eventExecute.cs b/src/gui/eventExecute.cs
index 8788719f8..5ab4c180e 100644
--- a/src/gui/eventExecute.cs
+++ b/src/gui/eventExecute.cs
@@ -3015,6 +3015,17 @@ public class CairoPaintBarsPreJumpReactive : CairoPaintBarsPre
longestWord.Length, maxRowsForText));
}
+ cb.PassGuidesData (new CairoBarsGuideManage(
+ ! ShowPersonNames, true, //usePersonGuides, useGroupGuides
+ eventGraphJumpsRjStored.SessionMaxTvSum,
+ eventGraphJumpsRjStored.SessionAvgTvSum,
+ eventGraphJumpsRjStored.SessionMinTvSum,
+ 0,
+ eventGraphJumpsRjStored.PersonMaxTvSum,
+ eventGraphJumpsRjStored.PersonAvgTvSum,
+ eventGraphJumpsRjStored.PersonMinTvSum
+ ));
+
cb.GraphDo (pointA_l, pointB_l, names_l,
fontHeightForBottomNames, bottomMargin, title);
}
diff --git a/src/gui/usefulObjects.cs b/src/gui/usefulObjects.cs
index ddbd723cb..709512efd 100644
--- a/src/gui/usefulObjects.cs
+++ b/src/gui/usefulObjects.cs
@@ -153,6 +153,13 @@ public class PrepareEventGraphJumpReactive
public List<JumpRj> jumpsAtSQL;
public string type; //jumpType (useful to know if "all jumps" (type == "")
+ public double SessionMaxTvSum;
+ public double SessionAvgTvSum;
+ public double SessionMinTvSum;
+ public double PersonMaxTvSum;
+ public double PersonAvgTvSum;
+ public double PersonMinTvSum;
+
public PrepareEventGraphJumpReactive () {
}
@@ -162,14 +169,80 @@ public class PrepareEventGraphJumpReactive
public PrepareEventGraphJumpReactive (
int sessionID, int personID, bool allPersons, int limit, string type)
{
+ // 1) assign variables
+ this.type = type;
+
int personIDTemp = personID;
- if(allPersons)
+ //if(allPersons)
personIDTemp = -1;
- jumpsAtSQL = SqliteJumpRj.SelectJumps (false, sessionID, personIDTemp, type,
- Sqlite.Orders_by.ID_DESC, limit, allPersons); //show names on comments only
if "all persons"
+ // 2) select (use limit=-1 to calculate MaxTvSum, ...)
+ List<JumpRj> jAll = SqliteJumpRj.SelectJumps (false, sessionID, personIDTemp, type,
+ Sqlite.Orders_by.ID_DESC, -1, allPersons); //show names on comments only
if "all persons"
- this.type = type;
+ // 3) calulate stats
+ SessionMaxTvSum = 0;
+ SessionAvgTvSum = 0;
+ SessionMinTvSum = 100000;
+ PersonMaxTvSum = 0;
+ PersonAvgTvSum = 0;
+ PersonMinTvSum = 100000;
+
+ jumpsAtSQL = new List<JumpRj>();
+
+ if(jAll.Count == 0)
+ {
+ SessionMinTvSum = 0;
+ PersonMinTvSum = 0;
+
+ return;
+ }
+
+ int personCount = 0;
+ foreach(JumpRj j in jAll)
+ {
+ //session stuff
+ if(j.TvSum > SessionMaxTvSum)
+ SessionMaxTvSum = j.TvSum;
+
+ SessionAvgTvSum += j.TvSum;
+
+ if(j.TvSum < SessionMinTvSum)
+ SessionMinTvSum = j.TvSum;
+
+ //person stuff
+ if(j.PersonID == personID)
+ {
+ if(j.TvSum > PersonMaxTvSum)
+ PersonMaxTvSum = j.TvSum;
+
+ PersonAvgTvSum += j.TvSum;
+
+ if(j.TvSum < PersonMinTvSum)
+ PersonMinTvSum = j.TvSum;
+
+ personCount ++;
+ }
+
+ //add the jump to the list
+ if(jumpsAtSQL.Count < limit && (allPersons || j.PersonID == personID))
+ jumpsAtSQL.Add(j);
+ }
+ //calculate averages
+ SessionAvgTvSum = UtilAll.DivideSafe(SessionAvgTvSum, jAll.Count);
+ PersonAvgTvSum = UtilAll.DivideSafe(PersonAvgTvSum, personCount);
+
+ //if we have to show one person data, and there are no jumps of this person, set all
variables 0 again
+ if(! allPersons && personCount == 0)
+ {
+ jumpsAtSQL = new List<JumpRj>();
+ SessionMaxTvSum = 0;
+ SessionAvgTvSum = 0;
+ SessionMinTvSum = 0;
+ PersonMaxTvSum = 0;
+ PersonAvgTvSum = 0;
+ PersonMinTvSum = 0;
+ }
}
~PrepareEventGraphJumpReactive () {}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]