diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2014-02-04 19:21:57 -0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-02-05 06:30:33 -0800 |
commit | 7b9400685d86eee904b07471353435f34fec3686 (patch) | |
tree | c0a2aa0f7b32864b8cac6f4e827ac09f18e34e40 /qt-ui/profile/divecartesianaxis.cpp | |
parent | 25b0a846af1d4661d16c3de9784879ad44476d08 (diff) | |
download | subsurface-7b9400685d86eee904b07471353435f34fec3686.tar.gz |
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 <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/profile/divecartesianaxis.cpp')
-rw-r--r-- | qt-ui/profile/divecartesianaxis.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
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(); |