diff options
Diffstat (limited to 'qt-models/diveplotdatamodel.cpp')
-rw-r--r-- | qt-models/diveplotdatamodel.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/qt-models/diveplotdatamodel.cpp b/qt-models/diveplotdatamodel.cpp index f219947ac..10c5ce3ee 100644 --- a/qt-models/diveplotdatamodel.cpp +++ b/qt-models/diveplotdatamodel.cpp @@ -19,7 +19,7 @@ int DivePlotDataModel::columnCount(const QModelIndex &parent) const QVariant DivePlotDataModel::data(const QModelIndex &index, int role) const { - if ((!index.isValid()) || (index.row() >= pInfo.nr)) + if ((!index.isValid()) || (index.row() >= pInfo.nr) || pInfo.entry == 0) return QVariant(); plot_data item = pInfo.entry[index.row()]; @@ -167,6 +167,8 @@ void DivePlotDataModel::clear() if (rowCount() != 0) { beginRemoveRows(QModelIndex(), 0, rowCount() - 1); pInfo.nr = 0; + free(pInfo.entry); + pInfo.entry = 0; diveId = -1; dcNr = -1; endRemoveRows(); @@ -179,7 +181,10 @@ void DivePlotDataModel::setDive(dive *d, const plot_info &info) Q_ASSERT(d != NULL); diveId = d->id; dcNr = dc_number; + free(pInfo.entry); pInfo = info; + pInfo.entry = (struct plot_data *)malloc(sizeof(struct plot_data) * pInfo.nr); + memcpy(pInfo.entry, info.entry, sizeof(plot_data) * pInfo.nr); beginInsertRows(QModelIndex(), 0, pInfo.nr - 1); endInsertRows(); } |