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