summaryrefslogtreecommitdiffstats
path: root/qt-models
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2017-07-17 22:59:14 +0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-07-28 07:31:11 -0700
commit6ed807f52d7837e1e8e87a182ca053ca17f45b5b (patch)
tree19f04e5ad9029b5a66a01e80cba03e54634ae736 /qt-models
parent8fe068f1915f91bb3d9463874515db7f83145d8a (diff)
downloadsubsurface-6ed807f52d7837e1e8e87a182ca053ca17f45b5b.tar.gz
maplocationmodel: add the addList() method
This method should be used if many markers are added at once. It's main purpose is to reduces the number of beingInsertRows() calls. Make MapWidgetHelper::reloadMapLocations() use it. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Diffstat (limited to 'qt-models')
-rw-r--r--qt-models/maplocationmodel.cpp9
-rw-r--r--qt-models/maplocationmodel.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/qt-models/maplocationmodel.cpp b/qt-models/maplocationmodel.cpp
index d08e7020c..ec554d004 100644
--- a/qt-models/maplocationmodel.cpp
+++ b/qt-models/maplocationmodel.cpp
@@ -68,6 +68,15 @@ void MapLocationModel::add(MapLocation *location)
endInsertRows();
}
+void MapLocationModel::addList(QList<MapLocation *> list)
+{
+ if (!list.size())
+ return;
+ beginInsertRows(QModelIndex(), m_mapLocations.size(), m_mapLocations.size() + list.size() - 1);
+ m_mapLocations.append(list);
+ endInsertRows();
+}
+
void MapLocationModel::clear()
{
if (!m_mapLocations.size())
diff --git a/qt-models/maplocationmodel.h b/qt-models/maplocationmodel.h
index 4aeee0364..c73fa246e 100644
--- a/qt-models/maplocationmodel.h
+++ b/qt-models/maplocationmodel.h
@@ -43,6 +43,7 @@ public:
int rowCount(const QModelIndex &parent) const override;
int count();
void add(MapLocation *);
+ void addList(QList<MapLocation *>);
void clear();
protected: