mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 21:03:23 +00:00
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>
This commit is contained in:
parent
25b0a846af
commit
7b9400685d
5 changed files with 18 additions and 4 deletions
|
@ -157,6 +157,7 @@ void PreferencesDialog::syncSettings()
|
||||||
SB("redceiling", ui.red_ceiling);
|
SB("redceiling", ui.red_ceiling);
|
||||||
SB("calcceiling", ui.calculated_ceiling);
|
SB("calcceiling", ui.calculated_ceiling);
|
||||||
SB("calcceiling3m", ui.increment_3m);
|
SB("calcceiling3m", ui.increment_3m);
|
||||||
|
prefs.calc_ceiling_3m_incr = ui.increment_3m->isChecked() ? 1 : 0;
|
||||||
SB("calcndltts", ui.calc_ndl_tts);
|
SB("calcndltts", ui.calc_ndl_tts);
|
||||||
SB("calcalltissues", ui.all_tissues);
|
SB("calcalltissues", ui.all_tissues);
|
||||||
s.setValue("gflow", ui.gflow->value());
|
s.setValue("gflow", ui.gflow->value());
|
||||||
|
|
|
@ -21,12 +21,16 @@ static QPen gridPen(){
|
||||||
}
|
}
|
||||||
void DiveCartesianAxis::setMaximum(double maximum)
|
void DiveCartesianAxis::setMaximum(double maximum)
|
||||||
{
|
{
|
||||||
|
if (max == maximum)
|
||||||
|
return;
|
||||||
max = maximum;
|
max = maximum;
|
||||||
emit maxChanged();
|
emit maxChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DiveCartesianAxis::setMinimum(double minimum)
|
void DiveCartesianAxis::setMinimum(double minimum)
|
||||||
{
|
{
|
||||||
|
if (min == minimum)
|
||||||
|
return;
|
||||||
min = minimum;
|
min = minimum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -255,7 +259,7 @@ QColor DepthAxis::colorForValue(double value)
|
||||||
return QColor(Qt::red);
|
return QColor(Qt::red);
|
||||||
}
|
}
|
||||||
|
|
||||||
DepthAxis::DepthAxis()
|
DepthAxis::DepthAxis() : showWithPPGraph(false)
|
||||||
{
|
{
|
||||||
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), this, SLOT(settingsChanged()));
|
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), this, SLOT(settingsChanged()));
|
||||||
settingsChanged(); // force the correct size of the line.
|
settingsChanged(); // force the correct size of the line.
|
||||||
|
@ -267,11 +271,16 @@ void DepthAxis::settingsChanged()
|
||||||
|
|
||||||
s.beginGroup("TecDetails");
|
s.beginGroup("TecDetails");
|
||||||
bool ppGraph = s.value("phegraph").toBool() || s.value("po2graph").toBool() || s.value("pn2graph").toBool();
|
bool ppGraph = s.value("phegraph").toBool() || s.value("po2graph").toBool() || s.value("pn2graph").toBool();
|
||||||
|
if ( ppGraph == showWithPPGraph){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (ppGraph) {
|
if (ppGraph) {
|
||||||
animateChangeLine(QLineF(0,2,0,60));
|
animateChangeLine(QLineF(0,2,0,60));
|
||||||
} else {
|
} else {
|
||||||
animateChangeLine(QLineF(0,2,0,98));
|
animateChangeLine(QLineF(0,2,0,98));
|
||||||
}
|
}
|
||||||
|
showWithPPGraph = ppGraph;
|
||||||
}
|
}
|
||||||
|
|
||||||
QColor TimeAxis::colorForValue(double value)
|
QColor TimeAxis::colorForValue(double value)
|
||||||
|
@ -419,6 +428,9 @@ void PartialGasPressureAxis::preferencesChanged()
|
||||||
max = model->po2Max();
|
max = model->po2Max();
|
||||||
|
|
||||||
qreal pp = floor(max * 10.0) / 10.0 + 0.2;
|
qreal pp = floor(max * 10.0) / 10.0 + 0.2;
|
||||||
|
if (maximum() == pp)
|
||||||
|
return;
|
||||||
|
|
||||||
setMaximum(pp);
|
setMaximum(pp);
|
||||||
setTickInterval( pp > 4 ? 0.5 : 0.25 );
|
setTickInterval( pp > 4 ? 0.5 : 0.25 );
|
||||||
updateTicks();
|
updateTicks();
|
||||||
|
|
|
@ -63,6 +63,8 @@ protected:
|
||||||
QColor colorForValue(double value);
|
QColor colorForValue(double value);
|
||||||
private slots:
|
private slots:
|
||||||
void settingsChanged();
|
void settingsChanged();
|
||||||
|
private:
|
||||||
|
bool showWithPPGraph;
|
||||||
};
|
};
|
||||||
|
|
||||||
class TimeAxis : public DiveCartesianAxis {
|
class TimeAxis : public DiveCartesianAxis {
|
||||||
|
|
|
@ -471,9 +471,8 @@ void DiveCalculatedCeiling::preferencesChanged()
|
||||||
if ( dataModel && is3mIncrement != shouldShow3mIncrement){
|
if ( dataModel && is3mIncrement != shouldShow3mIncrement){
|
||||||
// recalculate that part.
|
// recalculate that part.
|
||||||
dataModel->calculateDecompression();
|
dataModel->calculateDecompression();
|
||||||
is3mIncrement = shouldShow3mIncrement;
|
|
||||||
}
|
}
|
||||||
|
is3mIncrement = shouldShow3mIncrement;
|
||||||
setVisible(s.value("calcceiling").toBool());
|
setVisible(s.value("calcceiling").toBool());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -123,7 +123,7 @@ class DiveCalculatedTissue : public DiveCalculatedCeiling {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
DiveCalculatedTissue();
|
DiveCalculatedTissue();
|
||||||
void preferencesChanged();
|
virtual void preferencesChanged();
|
||||||
};
|
};
|
||||||
|
|
||||||
class MeanDepthLine : public DiveLineItem {
|
class MeanDepthLine : public DiveLineItem {
|
||||||
|
|
Loading…
Add table
Reference in a new issue