mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Use the same behavior as the old time markers
This commit adds the same behavior for the old time markers on the new ones. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
7a07665d89
commit
9f6ebf96a7
3 changed files with 30 additions and 7 deletions
|
@ -71,6 +71,7 @@ void DiveCartesianAxis::updateTicks()
|
|||
}
|
||||
if (steps < 1)
|
||||
return;
|
||||
|
||||
if (!labels.isEmpty() && labels.size() > steps) {
|
||||
while (labels.size() > steps) {
|
||||
DiveTextItem *removedText = labels.takeLast();
|
||||
|
@ -102,12 +103,14 @@ void DiveCartesianAxis::updateTicks()
|
|||
} else {
|
||||
childPos = begin - i * stepSize;
|
||||
}
|
||||
|
||||
labels[i]->setText(textForValue(currValue));
|
||||
if ( orientation == LeftToRight || orientation == RightToLeft) {
|
||||
labels[i]->animateMoveTo(childPos, m.y1() + tickSize);
|
||||
} else {
|
||||
labels[i]->animateMoveTo(m.x1() - tickSize, childPos);
|
||||
}
|
||||
labels[i]->setVisible( i % 2 );
|
||||
}
|
||||
|
||||
// Add's the rest of the needed Ticks / Text.
|
||||
|
@ -121,9 +124,6 @@ void DiveCartesianAxis::updateTicks()
|
|||
DiveTextItem *label = NULL;
|
||||
|
||||
if (showText){
|
||||
QString text = textForValue(currValue);
|
||||
if(text.isEmpty())
|
||||
continue; // Do not create or do anything with an empty string.
|
||||
label = new DiveTextItem(this);
|
||||
label->setText(textForValue(currValue));
|
||||
label->setBrush(QBrush(textColor));
|
||||
|
@ -143,6 +143,7 @@ void DiveCartesianAxis::updateTicks()
|
|||
label->animateMoveTo(m.x1() - tickSize, childPos);
|
||||
}
|
||||
}
|
||||
label->setVisible( i % 2 );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -283,7 +284,10 @@ QColor TimeAxis::colorForValue(double value)
|
|||
|
||||
QString TimeAxis::textForValue(double value)
|
||||
{
|
||||
return QString::number(value / 60);
|
||||
int nr = value / 60;
|
||||
if (maximum() < 600 )
|
||||
return QString("%1:%2").arg(nr).arg( (int)value%60, 2, 10, QChar('0'));
|
||||
return QString::number(nr);
|
||||
}
|
||||
|
||||
QString TemperatureAxis::textForValue(double value)
|
||||
|
|
|
@ -42,11 +42,13 @@ const QString& DiveTextItem::text()
|
|||
|
||||
void DiveTextItem::updateText()
|
||||
{
|
||||
if(internalText.isEmpty())
|
||||
return;
|
||||
|
||||
delete textItem;
|
||||
textItem = NULL;
|
||||
delete textBackgroundItem;
|
||||
textBackgroundItem = NULL;
|
||||
if(internalText.isEmpty()){
|
||||
return;
|
||||
}
|
||||
|
||||
QFont fnt(qApp->font());
|
||||
QFontMetrics fm(fnt);
|
||||
|
|
|
@ -387,6 +387,23 @@ void ProfileWidget2::plotDives(QList<dive*> dives)
|
|||
temperatureAxis->setMinimum(pInfo.mintemp);
|
||||
temperatureAxis->setMaximum(pInfo.maxtemp);
|
||||
timeAxis->setMaximum(maxtime);
|
||||
|
||||
int i, incr;
|
||||
static int increments[8] = { 10, 20, 30, 60, 5*60, 10*60, 15*60, 30*60 };
|
||||
/* Time markers: at most every 10 seconds, but no more than 12 markers.
|
||||
* We start out with 10 seconds and increment up to 30 minutes,
|
||||
* depending on the dive time.
|
||||
* This allows for 6h dives - enough (I hope) for even the craziest
|
||||
* divers - but just in case, for those 8h depth-record-breaking dives,
|
||||
* we double the interval if this still doesn't get us to 12 or fewer
|
||||
* time markers */
|
||||
i = 0;
|
||||
while (i < 7 && maxtime / increments[i] > 12)
|
||||
i++;
|
||||
incr = increments[i];
|
||||
while (maxtime / incr > 12)
|
||||
incr *= 2;
|
||||
timeAxis->setTickInterval(incr);
|
||||
timeAxis->updateTicks();
|
||||
cylinderPressureAxis->setMinimum(pInfo.minpressure);
|
||||
cylinderPressureAxis->setMaximum(pInfo.maxpressure);
|
||||
|
|
Loading…
Reference in a new issue