From e87ec145af6031d415fef7d9396f53bae3577a07 Mon Sep 17 00:00:00 2001
From: Benjamin Jakimow <benjamin.jakimow@geo.hu-berlin.de>
Date: Sun, 7 Jul 2019 23:42:52 +0200
Subject: [PATCH] backup mapping

Signed-off-by: Benjamin Jakimow <benjamin.jakimow@geo.hu-berlin.de>
---
 eotimeseriesviewer/mapcanvas.py        |  3 +-
 eotimeseriesviewer/mapvisualization.py | 65 +++++++++++++++++++++++---
 tests/test_mapvisualization.py         | 20 +++++---
 3 files changed, 72 insertions(+), 16 deletions(-)

diff --git a/eotimeseriesviewer/mapcanvas.py b/eotimeseriesviewer/mapcanvas.py
index 4ab83c1e..82486881 100644
--- a/eotimeseriesviewer/mapcanvas.py
+++ b/eotimeseriesviewer/mapcanvas.py
@@ -91,7 +91,7 @@ class MapLoadingInfoItem(QgsMapCanvasItem):
             :param QWidget_widget:
             :return:
             """
-            if self.mShowProgress:
+            if False and self.mShowProgress:
 
                 if True:
                     options = QStyleOptionProgressBar()
@@ -101,7 +101,6 @@ class MapLoadingInfoItem(QgsMapCanvasItem):
                     options.maximum = 0
                     options.minimum = 0
                     QApplication.style().drawControl(QStyle.CE_ProgressBar, options, painter)
-                else:
 
 class MapCanvasInfoItem(QgsMapCanvasItem):
 
diff --git a/eotimeseriesviewer/mapvisualization.py b/eotimeseriesviewer/mapvisualization.py
index 63a458ad..89f35c2a 100644
--- a/eotimeseriesviewer/mapvisualization.py
+++ b/eotimeseriesviewer/mapvisualization.py
@@ -1547,12 +1547,14 @@ class MapWidget(QWidget, loadUIFormClass(jp(DIR_UI, 'mapwidget.ui'))):
     def __init__(self, *args, **kwds):
         super(MapWidget, self).__init__(*args, **kwds)
         self.setupUi(self)
-
+        self.setLayout(QGridLayout())
         self.mGrid = self.layout()
         self.mViewMode = MapWidget.ViewMode.MapViewByRows
-        self.nMpMV = 3
-
+        self.nMpMV = 2
+        self.mMapViews = []
         self.mCanvases = dict()
+        self.mCurrentDate = None
+        self.mMapSize=  QSize(200, 200)
 
     def setMode(self, mode:ViewMode):
 
@@ -1561,19 +1563,68 @@ class MapWidget(QWidget, loadUIFormClass(jp(DIR_UI, 'mapwidget.ui'))):
     def setMapsPerMapView(self, n:int):
         assert n > 0
 
-        self.nMpMV = n
+        if n != self.nMpMV:
+            self.nMpMV = n
+            self.updateCanvasWidgets()
+
+    def setMapSize(self, size:QSize):
+
+        if size != self.mMapSize:
+            for canvas in self.mapCanvases():
+                canvas.setFixedSize(size)
+
+            self.mMapSize = size
+
+    def mapCanvases(self)->list:
+        return self.mGrid.findChildren(MapCanvas)
 
     def setCurrentDate(self, tsd:TimeSeriesDate):
-        pass
+        assert isinstance(tsd, TimeSeriesDate)
+        self.mCurrentDate = tsd
+
+    def currentDate(self)->TimeSeriesDate:
+        return self.mCurrentDate
+
 
     def addMapView(self, mapView:MapView):
-        pass
 
+        if mapView not in self.mMapViews:
+            self.mMapViews.append(mapView)
+            self.updateCanvasWidgets()
 
     def removeMapView(self, mapView:MapView):
-        pass
+        if mapView in self.mMapViews:
+            self.mMapViews.remove(mapView)
+            self.updateCanvasWidgets()
+
 
     def updateCanvasWidgets(self):
+
+        oldCanvases = self.mGrid.findChildren(MapCanvas)
+        for c in oldCanvases:
+            assert isinstance(c, MapCanvas)
+            c.setParent(None)
+            c.setLayers([])
+            c.setTSD(None)
+
+
+        if self.mViewMode == MapWidget.ViewMode.MapViewByRows:
+            for row, mv in enumerate(self.mMapViews):
+                assert isinstance(mv, MapView)
+                self.mCanvases[mv] = []
+                for col in range(self.nMpMV):
+                    c = MapCanvas()
+                    c.setFixedSize(self.mMapSize)
+                    self.mGrid.addWidget(c, row, col)
+                    self.mCanvases[mv].append(c)
+
+        else:
+            raise NotImplementedError()
+
+
+        self.updateCanvasDates()
+
+    def updateCanvasDates(self):
         pass
 
 
diff --git a/tests/test_mapvisualization.py b/tests/test_mapvisualization.py
index bfe22d11..53de3095 100644
--- a/tests/test_mapvisualization.py
+++ b/tests/test_mapvisualization.py
@@ -34,7 +34,7 @@ QGIS_APP = initQgisApplication(loadProcessingFramework=False)
 from eotimeseriesviewer import initResources
 initResources()
 
-SHOW_GUI = True and os.environ.get('CI') is None and not os.environ.get('CI')
+SHOW_GUI = True and os.environ.get('CI') is None
 
 
 def getChildElements(node):
@@ -80,14 +80,18 @@ def compareXML(element1, element2):
 class testclassMapVisualization(unittest.TestCase):
     """Test resources work."""
 
-    def setUp(self):
-        """Runs before each test."""
-        pass
 
-    def tearDown(self):
-        """Runs after each test."""
-        pass
+    def test_mapWidget(self):
 
+        w = MapWidget()
+        w.show()
+        mv = MapView()
+
+        w.addMapView(mv)
+
+
+        if SHOW_GUI:
+            QGIS_APP.exec_()
 
     def test_mapview(self):
 
@@ -366,5 +370,7 @@ if __name__ == "__main__":
     unittest.main()
     print('Done')
 
+TC = testclassMapVisualization()
+TC.test_mapWidget()
 QGIS_APP.quit()
 exit(0)
\ No newline at end of file
-- 
GitLab