From 08bf44bfb9c6c04afae1cb26ae87fee03d627512 Mon Sep 17 00:00:00 2001 From: "benjamin.jakimow@geo.hu-berlin.de" <q8DTkxUg-BB> Date: Mon, 20 Feb 2017 19:05:45 +0100 Subject: [PATCH] None --- timeseriesviewer/ui/widgets.py | 55 +++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/timeseriesviewer/ui/widgets.py b/timeseriesviewer/ui/widgets.py index 2381f276..7b7b23bb 100644 --- a/timeseriesviewer/ui/widgets.py +++ b/timeseriesviewer/ui/widgets.py @@ -45,7 +45,6 @@ class TsvScrollArea(QScrollArea): class TsvMapCanvas(QgsMapCanvas): from timeseriesviewer.main import SpatialExtent saveFileDirectories = dict() - #sigRendererChanged = pyqtSignal(QgsRasterRenderer) sigShowProfiles = pyqtSignal(QgsPoint, QgsCoordinateReferenceSystem) sigSpatialExtentChanged = pyqtSignal(SpatialExtent) @@ -55,8 +54,6 @@ class TsvMapCanvas(QgsMapCanvas): assert isinstance(tsdView, TimeSeriesDatumView) assert isinstance(mapView, MapView) - - #the canvas self.setCrsTransformEnabled(True) self.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) @@ -65,9 +62,6 @@ class TsvMapCanvas(QgsMapCanvas): self.extentsChanged.connect(lambda : self.sigSpatialExtentChanged.emit(self.spatialExtent())) - - #self.scrollAreaContent = tsdView.TSDVC.STViz.targetLayout.parentWidget() - #self.viewport = tsdView.TSDVC.STViz.targetLayout.parentWidget().parentWidget() self.scrollArea = tsdView.scrollArea assert isinstance(self.scrollArea, TsvScrollArea) self.scrollArea.sigResized.connect(self.setRenderMe) @@ -75,21 +69,20 @@ class TsvMapCanvas(QgsMapCanvas): self.tsdView = tsdView self.mapView = mapView - + self.vectorLayer = None + self.mapView.sigVectorLayerChanged.connect(self.onVectorLayerChanged) + self.mapView.sigVectorVisibility.connect(self.refresh) self.renderMe = False self.setRenderMe() self.sensorView = self.mapView.sensorViews[self.tsdView.Sensor] - self.mapView.sigMapViewVisibility.connect(self.setVisible) + self.mapView.sigMapViewVisibility.connect(self.setMapLayers) self.mapView.sigSpatialExtentChanged.connect(self.setSpatialExtent) self.referenceLayer = QgsRasterLayer(self.tsdView.TSD.pathImg) QgsMapLayerRegistry.instance().addMapLayer(self.referenceLayer, False) - self.MapCanvasLayers = [QgsMapCanvasLayer(self.referenceLayer)] - self.setLayerSet(self.MapCanvasLayers) - #todo: handle QGIS interaction - - #set raster layer style + self.MapCanvasLayers = [] + self.setMapLayers() self.sensorView.sigSensorRendererChanged.connect(self.setRenderer) self.setRenderer(self.sensorView.layerRenderer()) @@ -105,9 +98,34 @@ class TsvMapCanvas(QgsMapCanvas): self.MAPTOOLS['identifyProfile'] = mt #todo: self.MAPTOOLS['identifyMapLayers'] = + def setMapLayers(self, *args): + del self.MapCanvasLayers[:] + + if self.vectorLayer: + self.MapCanvasLayers.append(QgsMapCanvasLayer(self.vectorLayer)) + if self.referenceLayer: + self.MapCanvasLayers.append(QgsMapCanvasLayer(self.referenceLayer)) + + self.setLayerSet(self.MapCanvasLayers) + self.refresh() + + def onVectorLayerChanged(self, lyr=None): + if isinstance(lyr, QgsRasterLayer): + + self.vectorLayer = QgsVectorLayer() + QgsMapLayerRegistry.instance().addMapLayer(self.vectorLayer, False) + else: + + self.vectorLayer = False + + self.setMapLayers() + self.refresh() + + def refresh(self): + self.setRenderMe() super(TsvMapCanvas, self).refresh() @@ -153,11 +171,11 @@ class TsvMapCanvas(QgsMapCanvas): action = m.addAction('JPEG') action.triggered.connect(lambda: self.saveMapImageDialog('JPG')) - - if self.qgsInteraction: - assert isinstance(self.qgsInteraction, QgisTsvBridge) + from timeseriesviewer.main import QgisTsvBridge + bridge = QgisTsvBridge.instance() + if bridge: + assert isinstance(bridge, QgisTsvBridge) action = m.addAction('Add layer to QGIS') - action = m.addAction('Import extent from QGIS') action = m.addAction('Export extent to QGIS') s = "" @@ -598,6 +616,7 @@ class MapViewDefinitionUI(QGroupBox, loadUIFormClass(PATH_MAPVIEWDEFINITION_UI)) sigHideMapView = pyqtSignal() sigShowMapView = pyqtSignal() + sigVectorVisibility = pyqtSignal(bool) def __init__(self, mapViewDefinition,parent=None): super(MapViewDefinitionUI, self).__init__(parent) @@ -607,7 +626,9 @@ class MapViewDefinitionUI(QGroupBox, loadUIFormClass(PATH_MAPVIEWDEFINITION_UI)) self.btnRemoveMapView.setDefaultAction(self.actionRemoveMapView) self.btnMapViewVisibility.setDefaultAction(self.actionToggleVisibility) self.btnApplyStyles.setDefaultAction(self.actionApplyStyles) + self.btnVectorOverlayVisibility.setDefaultAction(self.actionToggleVectorVisibility) self.actionToggleVisibility.toggled.connect(lambda: self.setVisibility(not self.actionToggleVisibility.isChecked())) + self.actionToggleVectorVisibility.toggled.connect(lambda : self.sigVectorVisibility.emit(self.actionToggleVectorVisibility.isChecked())) def _sizeHint(self): -- GitLab