aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/profile
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2014-01-23 16:03:19 -0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-01-23 21:11:14 -0800
commit43cf4fb98417fc6fd2124704fca7f46988d57e72 (patch)
treea231c19b89339523ec10225fdfa43800a53cec52 /qt-ui/profile
parent563c39b8221ac2e3730c9f51a0e890b42af8ca78 (diff)
downloadsubsurface-43cf4fb98417fc6fd2124704fca7f46988d57e72.tar.gz
Move profile item to be used as cache.
the profile item should also use the model to know when to change something, this makes it happen. 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/diveprofileitem.cpp3
-rw-r--r--qt-ui/profile/profilewidget2.cpp23
2 files changed, 12 insertions, 14 deletions
diff --git a/qt-ui/profile/diveprofileitem.cpp b/qt-ui/profile/diveprofileitem.cpp
index f00fff688..774938c95 100644
--- a/qt-ui/profile/diveprofileitem.cpp
+++ b/qt-ui/profile/diveprofileitem.cpp
@@ -107,6 +107,9 @@ void DiveProfileItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* o
void DiveProfileItem::modelDataChanged()
{
+ if (!hAxis || !vAxis || !dataModel || hDataColumn == -1 || vDataColumn == -1 || dataModel->rowCount() == 0)
+ return;
+
AbstractProfilePolygonItem::modelDataChanged();
if (polygon().isEmpty())
return;
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index 2f607590b..2f7505d22 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -155,6 +155,15 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) :
temperatureItem->setZValue(1);
scene()->addItem(temperatureItem);
+ diveProfileItem = new DiveProfileItem();
+ diveProfileItem->setHorizontalAxis(timeAxis);
+ diveProfileItem->setVerticalAxis(profileYAxis);
+ diveProfileItem->setModel(dataModel);
+ diveProfileItem->setVerticalDataColumn(DivePlotDataModel::DEPTH);
+ diveProfileItem->setHorizontalDataColumn(DivePlotDataModel::TIME);
+ diveProfileItem->setZValue(0);
+ scene()->addItem(diveProfileItem);
+
background->setFlag(QGraphicsItem::ItemIgnoresTransformations);
//enum State{ EMPTY, PROFILE, EDIT, ADD, PLAN, INVALID };
@@ -356,20 +365,6 @@ void ProfileWidget2::plotDives(QList<dive*> dives)
meanDepth->animateMoveTo(3, profileYAxis->posAtValue(pInfo.meandepth));
dataModel->setDive(current_dive, pInfo);
- if (diveProfileItem) {
- //diveProfileItem->animateDelete();
- scene()->removeItem(diveProfileItem);
- delete diveProfileItem;
- }
- diveProfileItem = new DiveProfileItem();
- diveProfileItem->setHorizontalAxis(timeAxis);
- diveProfileItem->setVerticalAxis(profileYAxis);
- diveProfileItem->setModel(dataModel);
- diveProfileItem->setVerticalDataColumn(DivePlotDataModel::DEPTH);
- diveProfileItem->setHorizontalDataColumn(DivePlotDataModel::TIME);
- diveProfileItem->setZValue(0);
- scene()->addItem(diveProfileItem);
-
qDeleteAll(eventItems);
eventItems.clear();