summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-ui/models.cpp39
-rw-r--r--qt-ui/models.h7
2 files changed, 23 insertions, 23 deletions
diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp
index 23eea3e48..d26b52ec9 100644
--- a/qt-ui/models.cpp
+++ b/qt-ui/models.cpp
@@ -59,9 +59,7 @@ QVariant CylindersModel::data(const QModelIndex& index, int role) const
if (!index.isValid() || index.row() >= MAX_CYLINDERS) {
return ret;
}
-
- struct dive *d = get_dive(selected_dive);
- cylinder_t& cyl = d->cylinder[index.row()];
+ cylinder_t& cyl = current_dive->cylinder[index.row()];
if (role == Qt::DisplayRole) {
switch(index.column()) {
@@ -93,57 +91,60 @@ QVariant CylindersModel::data(const QModelIndex& index, int role) const
int CylindersModel::rowCount(const QModelIndex& parent) const
{
- return usedRows[currentDive];
+ return usedRows[current_dive];
}
void CylindersModel::add(cylinder_t* cyl)
{
- if (usedRows[currentDive] >= MAX_CYLINDERS) {
+ if (usedRows[current_dive] >= MAX_CYLINDERS) {
free(cyl);
}
- int row = usedRows[currentDive];
+ int row = usedRows[current_dive];
- cylinder_t& cylinder = currentDive->cylinder[row];
+ cylinder_t& cylinder = current_dive->cylinder[row];
cylinder.end.mbar = cyl->end.mbar;
cylinder.start.mbar = cyl->start.mbar;
beginInsertRows(QModelIndex(), row, row);
- usedRows[currentDive]++;
+ usedRows[current_dive]++;
endInsertRows();
}
void CylindersModel::update()
{
- if (usedRows[currentDive] > 0) {
- beginRemoveRows(QModelIndex(), 0, usedRows[currentDive]-1);
+ if (usedRows[current_dive] > 0) {
+ beginRemoveRows(QModelIndex(), 0, usedRows[current_dive]-1);
endRemoveRows();
}
-
- currentDive = get_dive(selected_dive);
- if (usedRows[currentDive] > 0) {
- beginInsertRows(QModelIndex(), 0, usedRows[currentDive]-1);
+ if (usedRows[current_dive] > 0) {
+ beginInsertRows(QModelIndex(), 0, usedRows[current_dive]-1);
endInsertRows();
}
}
void CylindersModel::clear()
{
- if (usedRows[currentDive] > 0) {
- beginRemoveRows(QModelIndex(), 0, usedRows[currentDive]-1);
- usedRows[currentDive] = 0;
+ if (usedRows[current_dive] > 0) {
+ beginRemoveRows(QModelIndex(), 0, usedRows[current_dive]-1);
+ usedRows[current_dive] = 0;
endRemoveRows();
}
}
void WeightModel::clear()
{
+ if (usedRows[current_dive] > 0) {
+ beginRemoveRows(QModelIndex(), 0, usedRows[current_dive]-1);
+ usedRows[current_dive] = 0;
+ endRemoveRows();
+ }
}
int WeightModel::columnCount(const QModelIndex& parent) const
{
- return 0;
+ return 2;
}
QVariant WeightModel::data(const QModelIndex& index, int role) const
@@ -153,7 +154,7 @@ QVariant WeightModel::data(const QModelIndex& index, int role) const
int WeightModel::rowCount(const QModelIndex& parent) const
{
- return rows;
+ return usedRows[current_dive];
}
QVariant WeightModel::headerData(int section, Qt::Orientation orientation, int role) const
diff --git a/qt-ui/models.h b/qt-ui/models.h
index 9e4666dc7..b6bcdec78 100644
--- a/qt-ui/models.h
+++ b/qt-ui/models.h
@@ -47,12 +47,10 @@ public:
void clear();
void update();
private:
- dive *currentDive;
-
/* Since the dive doesn`t stores the number of cylinders that
* it has ( max 8 ) and since I don`t want to make a
* model-for-each-dive, let`s hack this here instead. */
- QMap<dive*, int> usedRows;
+ QMap<struct dive *, int> usedRows;
};
/* Encapsulation of the Weight Model, that represents
@@ -68,7 +66,8 @@ class WeightModel : public QAbstractTableModel {
void clear();
void update();
private:
- int rows;
+ /* Remember the number of rows in a dive */
+ QMap<struct dive *, int> usedRows;
};
/*! An AbstractItemModel for recording dive trip information such as a list of dives.