mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-07 20:13:24 +00:00
Move the creation of the Gas Pressure item to the constructor
This makes the Gas Pressure Item a 'cached' item, when the dive changes, the item will regenerate the drawing based on it's model. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
2f0b778f92
commit
2c2d3351ac
2 changed files with 10 additions and 14 deletions
|
@ -258,7 +258,7 @@ void DiveTemperatureItem::paint(QPainter* painter, const QStyleOptionGraphicsIte
|
||||||
void DiveGasPressureItem::modelDataChanged()
|
void DiveGasPressureItem::modelDataChanged()
|
||||||
{
|
{
|
||||||
// We don't have enougth data to calculate things, quit.
|
// We don't have enougth data to calculate things, quit.
|
||||||
if (!hAxis || !vAxis || !dataModel || hDataColumn == -1 || vDataColumn == -1)
|
if (!hAxis || !vAxis || !dataModel || hDataColumn == -1 || vDataColumn == -1 || dataModel->rowCount() == 0)
|
||||||
return;
|
return;
|
||||||
int last_index = -1;
|
int last_index = -1;
|
||||||
int lift_pen = false;
|
int lift_pen = false;
|
||||||
|
|
|
@ -137,6 +137,15 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) :
|
||||||
scene()->addItem(tissueItem);
|
scene()->addItem(tissueItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gasPressureItem = new DiveGasPressureItem();
|
||||||
|
gasPressureItem->setHorizontalAxis(timeAxis);
|
||||||
|
gasPressureItem->setVerticalAxis(cylinderPressureAxis);
|
||||||
|
gasPressureItem->setModel(dataModel);
|
||||||
|
gasPressureItem->setVerticalDataColumn(DivePlotDataModel::TEMPERATURE);
|
||||||
|
gasPressureItem->setHorizontalDataColumn(DivePlotDataModel::TIME);
|
||||||
|
gasPressureItem->setZValue(1);
|
||||||
|
scene()->addItem(gasPressureItem);
|
||||||
|
|
||||||
background->setFlag(QGraphicsItem::ItemIgnoresTransformations);
|
background->setFlag(QGraphicsItem::ItemIgnoresTransformations);
|
||||||
|
|
||||||
//enum State{ EMPTY, PROFILE, EDIT, ADD, PLAN, INVALID };
|
//enum State{ EMPTY, PROFILE, EDIT, ADD, PLAN, INVALID };
|
||||||
|
@ -381,19 +390,6 @@ void ProfileWidget2::plotDives(QList<dive*> dives)
|
||||||
temperatureItem->setZValue(1);
|
temperatureItem->setZValue(1);
|
||||||
scene()->addItem(temperatureItem);
|
scene()->addItem(temperatureItem);
|
||||||
|
|
||||||
if(gasPressureItem){
|
|
||||||
scene()->removeItem(gasPressureItem);
|
|
||||||
delete gasPressureItem;
|
|
||||||
}
|
|
||||||
gasPressureItem = new DiveGasPressureItem();
|
|
||||||
gasPressureItem->setHorizontalAxis(timeAxis);
|
|
||||||
gasPressureItem->setVerticalAxis(cylinderPressureAxis);
|
|
||||||
gasPressureItem->setModel(dataModel);
|
|
||||||
gasPressureItem->setVerticalDataColumn(DivePlotDataModel::TEMPERATURE);
|
|
||||||
gasPressureItem->setHorizontalDataColumn(DivePlotDataModel::TIME);
|
|
||||||
gasPressureItem->setZValue(1);
|
|
||||||
scene()->addItem(gasPressureItem);
|
|
||||||
|
|
||||||
diveComputerText->setText(currentdc->model);
|
diveComputerText->setText(currentdc->model);
|
||||||
diveComputerText->animateMoveTo(1 , sceneRect().height());
|
diveComputerText->animateMoveTo(1 , sceneRect().height());
|
||||||
emit startProfileState();
|
emit startProfileState();
|
||||||
|
|
Loading…
Add table
Reference in a new issue