mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Profile: change get_plot_pressure to take index instead of pointer
The goal here is to make it possible to detach the pressure related data from the plot_info structure. Thus, the pressure related data can be allocated independently depending on the number of cylinders per dive. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
fbd74c26d6
commit
4724c88533
5 changed files with 80 additions and 71 deletions
|
@ -665,11 +665,12 @@ void DiveGasPressureItem::modelDataChanged(const QModelIndex &topLeft, const QMo
|
|||
QPolygonF boundingPoly;
|
||||
polygons.clear();
|
||||
|
||||
const struct plot_info *pInfo = &dataModel->data();
|
||||
for (int i = 0, count = dataModel->rowCount(); i < count; i++) {
|
||||
struct plot_data *entry = dataModel->data().entry + i;
|
||||
const struct plot_data *entry = pInfo->entry + i;
|
||||
|
||||
for (int cyl = 0; cyl < MAX_CYLINDERS; cyl++) {
|
||||
int mbar = get_plot_pressure(entry, cyl);
|
||||
int mbar = get_plot_pressure(pInfo, i, cyl);
|
||||
int time = entry->sec;
|
||||
|
||||
if (!mbar)
|
||||
|
@ -726,10 +727,10 @@ void DiveGasPressureItem::modelDataChanged(const QModelIndex &topLeft, const QMo
|
|||
double axisLog = log10(log10(axisRange));
|
||||
|
||||
for (int i = 0, count = dataModel->rowCount(); i < count; i++) {
|
||||
struct plot_data *entry = dataModel->data().entry + i;
|
||||
const struct plot_data *entry = pInfo->entry + i;
|
||||
|
||||
for (int cyl = 0; cyl < MAX_CYLINDERS; cyl++) {
|
||||
int mbar = get_plot_pressure(entry, cyl);
|
||||
int mbar = get_plot_pressure(pInfo, i, cyl);
|
||||
|
||||
if (!mbar)
|
||||
continue;
|
||||
|
|
|
@ -230,7 +230,6 @@ void ToolTipItem::setTimeAxis(DiveCartesianAxis *axis)
|
|||
|
||||
void ToolTipItem::refresh(const QPointF &pos)
|
||||
{
|
||||
struct plot_data *entry;
|
||||
static QPixmap tissues(16,60);
|
||||
static QPainter painter(&tissues);
|
||||
static struct membuffer mb = {};
|
||||
|
@ -245,7 +244,7 @@ void ToolTipItem::refresh(const QPointF &pos)
|
|||
clear();
|
||||
|
||||
mb.len = 0;
|
||||
entry = get_plot_details_new(&pInfo, time, &mb);
|
||||
int idx = get_plot_details_new(&pInfo, time, &mb);
|
||||
|
||||
tissues.fill();
|
||||
painter.setPen(QColor(0, 0, 0, 0));
|
||||
|
@ -255,10 +254,11 @@ void ToolTipItem::refresh(const QPointF &pos)
|
|||
painter.drawRect(0, 10, 16, (100 - AMB_PERCENTAGE) / 2);
|
||||
painter.setBrush(QColor(Qt::red));
|
||||
painter.drawRect(0,0,16,10);
|
||||
if (entry) {
|
||||
if (idx) {
|
||||
ProfileWidget2 *view = qobject_cast<ProfileWidget2*>(scene()->views().first());
|
||||
Q_ASSERT(view);
|
||||
|
||||
const struct plot_data *entry = &pInfo.entry[idx];
|
||||
painter.setPen(QColor(0, 0, 0, 255));
|
||||
if (decoMode() == BUEHLMANN)
|
||||
painter.drawLine(0, lrint(60 - entry->gfline / 2), 16, lrint(60 - entry->gfline / 2));
|
||||
|
|
|
@ -116,7 +116,7 @@ void RulerItem2::recalculate()
|
|||
}
|
||||
QLineF line(startPoint, endPoint);
|
||||
setLine(line);
|
||||
compare_samples(&pInfo.entry[source->idx], &pInfo.entry[dest->idx], buffer, 500, 1);
|
||||
compare_samples(&pInfo, source->idx, dest->idx, buffer, 500, 1);
|
||||
text = QString(buffer);
|
||||
|
||||
// draw text
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue