summaryrefslogtreecommitdiffstats
path: root/qt-models/weightsysteminfomodel.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-04-27 16:53:13 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-04-29 13:06:39 -0700
commitcab0147093b829d971ca0a1ce92e9d881440311f (patch)
tree0157ddfb367fa6d8a29fdaf02f3c9a100d413a9a /qt-models/weightsysteminfomodel.cpp
parent36d8dcc3bf9b4d31d86d2b739196dd52ebf226f2 (diff)
downloadsubsurface-cab0147093b829d971ca0a1ce92e9d881440311f.tar.gz
Cleanup: implement proper Qt-model semantics in WeightInfoModel
- Use a beginResetModel()/endResetModel() pair instead of distinct addRows / removeRows pairs. - Reuse the update function in the constructor(). - Let "rows" be the number of rows, not the number of rows minus one. - Remove updateInfo() function as it does the same as update(). Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models/weightsysteminfomodel.cpp')
-rw-r--r--qt-models/weightsysteminfomodel.cpp44
1 files changed, 7 insertions, 37 deletions
diff --git a/qt-models/weightsysteminfomodel.cpp b/qt-models/weightsysteminfomodel.cpp
index 58cc0ba47..21d6f538f 100644
--- a/qt-models/weightsysteminfomodel.cpp
+++ b/qt-models/weightsysteminfomodel.cpp
@@ -68,50 +68,20 @@ QVariant WSInfoModel::data(const QModelIndex &index, int role) const
int WSInfoModel::rowCount(const QModelIndex&) const
{
- return rows + 1;
+ return rows;
}
-WSInfoModel::WSInfoModel() : rows(-1)
+WSInfoModel::WSInfoModel()
{
setHeaderDataStrings(QStringList() << tr("Description") << tr("kg"));
- struct ws_info_t *info;
- for (info = ws_info; info->name && info < ws_info + MAX_WS_INFO; info++, rows++)
- ;
-
- if (rows > -1) {
- beginInsertRows(QModelIndex(), 0, rows);
- endInsertRows();
- }
-}
-
-void WSInfoModel::updateInfo()
-{
- struct ws_info_t *info;
- beginRemoveRows(QModelIndex(), 0, this->rows);
- endRemoveRows();
- rows = -1;
- for (info = ws_info; info->name && info < ws_info + MAX_WS_INFO; info++, rows++)
- ;
-
- if (rows > -1) {
- beginInsertRows(QModelIndex(), 0, rows);
- endInsertRows();
- }
+ update();
}
void WSInfoModel::update()
{
- if (rows > -1) {
- beginRemoveRows(QModelIndex(), 0, rows);
- endRemoveRows();
- rows = -1;
- }
- struct ws_info_t *info;
- for (info = ws_info; info->name && info < ws_info + MAX_WS_INFO; info++, rows++)
+ beginResetModel();
+ rows = 0;
+ for (struct ws_info_t *info = ws_info; info->name && info < ws_info + MAX_WS_INFO; info++, rows++)
;
-
- if (rows > -1) {
- beginInsertRows(QModelIndex(), 0, rows);
- endInsertRows();
- }
+ endResetModel();
}