From 7b9400685d86eee904b07471353435f34fec3686 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Tue, 4 Feb 2014 19:21:57 -0200 Subject: Optimizations and fixes on the new profile. This patch optimizes a few items when hitting the 'save preferences' dialog, since when a preference is modified, all the items try to reload their visual based on wether a preference changed or not, the correct code for 'hey, my pref changed, let's update' needed to be done. now the axis will only set a new maximum if it's different from the old one ( and thus, going to a new dive with the same maxdepth or maxtime as the old one will not touch their axis, not triggering gratuitous animations. ) also, the 'incr by 3m' was not being called - it seems that our 'syncsettings' method is not storing things on the 'prefs' global var. I added just for the incr by 3m case, but it's something that we need to check later. Signed-off-by: Tomaz Canabrava Signed-off-by: Dirk Hohndel --- qt-ui/profile/divecartesianaxis.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'qt-ui/profile/divecartesianaxis.cpp') diff --git a/qt-ui/profile/divecartesianaxis.cpp b/qt-ui/profile/divecartesianaxis.cpp index 7c91281b4..c6567d413 100644 --- a/qt-ui/profile/divecartesianaxis.cpp +++ b/qt-ui/profile/divecartesianaxis.cpp @@ -21,12 +21,16 @@ static QPen gridPen(){ } void DiveCartesianAxis::setMaximum(double maximum) { + if (max == maximum) + return; max = maximum; emit maxChanged(); } void DiveCartesianAxis::setMinimum(double minimum) { + if (min == minimum) + return; min = minimum; } @@ -255,7 +259,7 @@ QColor DepthAxis::colorForValue(double value) return QColor(Qt::red); } -DepthAxis::DepthAxis() +DepthAxis::DepthAxis() : showWithPPGraph(false) { connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), this, SLOT(settingsChanged())); settingsChanged(); // force the correct size of the line. @@ -267,11 +271,16 @@ void DepthAxis::settingsChanged() s.beginGroup("TecDetails"); bool ppGraph = s.value("phegraph").toBool() || s.value("po2graph").toBool() || s.value("pn2graph").toBool(); + if ( ppGraph == showWithPPGraph){ + return; + } + if (ppGraph) { animateChangeLine(QLineF(0,2,0,60)); } else { animateChangeLine(QLineF(0,2,0,98)); } + showWithPPGraph = ppGraph; } QColor TimeAxis::colorForValue(double value) @@ -419,6 +428,9 @@ void PartialGasPressureAxis::preferencesChanged() max = model->po2Max(); qreal pp = floor(max * 10.0) / 10.0 + 0.2; + if (maximum() == pp) + return; + setMaximum(pp); setTickInterval( pp > 4 ? 0.5 : 0.25 ); updateTicks(); -- cgit v1.2.3-70-g09d2