aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/profile/divecartesianaxis.cpp
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2014-02-04 19:21:57 -0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-02-05 06:30:33 -0800
commit7b9400685d86eee904b07471353435f34fec3686 (patch)
treec0a2aa0f7b32864b8cac6f4e827ac09f18e34e40 /qt-ui/profile/divecartesianaxis.cpp
parent25b0a846af1d4661d16c3de9784879ad44476d08 (diff)
downloadsubsurface-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.cpp14
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();