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 | |
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')
-rw-r--r-- | qt-ui/profile/divecartesianaxis.cpp | 14 | ||||
-rw-r--r-- | qt-ui/profile/divecartesianaxis.h | 2 | ||||
-rw-r--r-- | qt-ui/profile/diveprofileitem.cpp | 3 | ||||
-rw-r--r-- | qt-ui/profile/diveprofileitem.h | 2 |
4 files changed, 17 insertions, 4 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(); diff --git a/qt-ui/profile/divecartesianaxis.h b/qt-ui/profile/divecartesianaxis.h index 3f18fe8ff..f321983ab 100644 --- a/qt-ui/profile/divecartesianaxis.h +++ b/qt-ui/profile/divecartesianaxis.h @@ -63,6 +63,8 @@ protected: QColor colorForValue(double value); private slots: void settingsChanged(); +private: + bool showWithPPGraph; }; class TimeAxis : public DiveCartesianAxis { diff --git a/qt-ui/profile/diveprofileitem.cpp b/qt-ui/profile/diveprofileitem.cpp index 05791eed5..11d80e96b 100644 --- a/qt-ui/profile/diveprofileitem.cpp +++ b/qt-ui/profile/diveprofileitem.cpp @@ -471,9 +471,8 @@ void DiveCalculatedCeiling::preferencesChanged() if ( dataModel && is3mIncrement != shouldShow3mIncrement){ // recalculate that part. dataModel->calculateDecompression(); - is3mIncrement = shouldShow3mIncrement; } - + is3mIncrement = shouldShow3mIncrement; setVisible(s.value("calcceiling").toBool()); } diff --git a/qt-ui/profile/diveprofileitem.h b/qt-ui/profile/diveprofileitem.h index 4dd32b9fa..1f9fa26e3 100644 --- a/qt-ui/profile/diveprofileitem.h +++ b/qt-ui/profile/diveprofileitem.h @@ -123,7 +123,7 @@ class DiveCalculatedTissue : public DiveCalculatedCeiling { Q_OBJECT public: DiveCalculatedTissue(); - void preferencesChanged(); + virtual void preferencesChanged(); }; class MeanDepthLine : public DiveLineItem { |