aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/profile
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
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')
-rw-r--r--qt-ui/profile/divecartesianaxis.cpp14
-rw-r--r--qt-ui/profile/divecartesianaxis.h2
-rw-r--r--qt-ui/profile/diveprofileitem.cpp3
-rw-r--r--qt-ui/profile/diveprofileitem.h2
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 {