From a50e9866d5f42d76338a4cc9a51f54272dea65bc Mon Sep 17 00:00:00 2001
From: "Lubomir I. Ivanov" <neolit123@gmail.com>
Date: Mon, 17 Jul 2017 18:02:37 +0300
Subject: [PATCH] qmlmapwidgethelper: maintain an instance of MapLocationModel

The idea here is that the QML code should be able to fetch a model
from the MapWidgetHelper instance which is instantiated inside the
QML code; fetch it in the lines of "mapHelper.model".

This way, updates at the backend would be reflected on the Map QML widget.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
---
 mobile-widgets/qmlmapwidgethelper.cpp | 4 +++-
 mobile-widgets/qmlmapwidgethelper.h   | 6 ++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/mobile-widgets/qmlmapwidgethelper.cpp b/mobile-widgets/qmlmapwidgethelper.cpp
index e56d670d3..3a0e4aa71 100644
--- a/mobile-widgets/qmlmapwidgethelper.cpp
+++ b/mobile-widgets/qmlmapwidgethelper.cpp
@@ -1,12 +1,14 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <QDebug>
-#include "qmlmapwidgethelper.h"
 
+#include "qmlmapwidgethelper.h"
 #include "core/dive.h"
 #include "core/divesite.h"
+#include "qt-models/maplocationmodel.h"
 
 MapWidgetHelper::MapWidgetHelper(QObject *parent) : QObject(parent)
 {
+	m_mapLocationModel = new MapLocationModel(this);
 }
 
 void MapWidgetHelper::centerOnDiveSite(struct dive_site *ds)
diff --git a/mobile-widgets/qmlmapwidgethelper.h b/mobile-widgets/qmlmapwidgethelper.h
index 9fd427856..d0f450ed6 100644
--- a/mobile-widgets/qmlmapwidgethelper.h
+++ b/mobile-widgets/qmlmapwidgethelper.h
@@ -4,12 +4,14 @@
 
 #include <QObject>
 
+class MapLocationModel;
 struct dive_site;
 
 class MapWidgetHelper : public QObject {
 
 	Q_OBJECT
 	Q_PROPERTY(QObject *map MEMBER m_map)
+	Q_PROPERTY(MapLocationModel *model MEMBER m_mapLocationModel NOTIFY modelChanged)
 
 public:
 	explicit MapWidgetHelper(QObject *parent = NULL);
@@ -18,6 +20,10 @@ public:
 
 private:
 	QObject *m_map;
+	MapLocationModel *m_mapLocationModel;
+
+signals:
+	void modelChanged();
 };
 
 #endif