From 5fa90f273d3133e31702e7dc39037045409e63fe Mon Sep 17 00:00:00 2001 From: Benjamin Jakimow <benjamin.jakimow@geo.hu-berlin.de> Date: Mon, 10 Jul 2017 14:58:19 +0200 Subject: [PATCH] backup --- timeseriesviewer/main.py | 22 ++---------- timeseriesviewer/mapvisualization.py | 12 ++++--- timeseriesviewer/sandbox.py | 1 + timeseriesviewer/ui/docks.py | 54 ++++++++-------------------- timeseriesviewer/ui/renderingdock.ui | 36 ++++++++++++++----- 5 files changed, 54 insertions(+), 71 deletions(-) diff --git a/timeseriesviewer/main.py b/timeseriesviewer/main.py index 3b280c2f..9ac1bac1 100644 --- a/timeseriesviewer/main.py +++ b/timeseriesviewer/main.py @@ -139,25 +139,6 @@ class QgisTsvBridge(QObject): qgis.utils.iface.addVectorLayer(src, os.path.basename(src), ml.providerType()) - class SyncState(object): - def __init__(self): - self.center = False - self.extent = False - self.crs = False - - def __eq__(self, other): - if not isinstance(other, QgisTsvBridge.SyncState): - return False - else: - return \ - self.center == other.center \ - and self.extent == other.extent \ - and self.crs == other.crs - def any(self): - return any([self.center, self.extent, self.crs]) - - - def __init__(self): assert QgisTsvBridge._instance is None, 'Can not instantiate QgsTsvBridge twice' self.TSV = None @@ -435,6 +416,9 @@ class TimeSeriesViewer: self.spatialTemporalVis.sigCRSChanged.connect(D.dockRendering.setCrs) D.dockRendering.sigSpatialExtentChanged.connect(self.spatialTemporalVis.setSpatialExtent) D.dockRendering.sigMapCanvasColorChanged.connect(self.spatialTemporalVis.setBackgroundColor) + D.dockRendering.sigShowVectorLayer.connect(self.spatialTemporalVis.setVectorLayer) + D.dockRendering.sigRemoveVectorLayer.connect(lambda : self.spatialTemporalVis.setVectorLayer(None)) + self.spatialTemporalVis.setMapSize(D.dockRendering.mapSize()) diff --git a/timeseriesviewer/mapvisualization.py b/timeseriesviewer/mapvisualization.py index 106f000c..ae95fade 100644 --- a/timeseriesviewer/mapvisualization.py +++ b/timeseriesviewer/mapvisualization.py @@ -57,15 +57,19 @@ class MapView(QObject): def setVectorLayer(self, lyr): if isinstance(lyr, QgsVectorLayer): self.vectorLayer = lyr - self.vectorLayer.rendererChanged.connect(self.sigVectorLayerChanged) + self.vectorLayer.rendererChanged.connect(self.onVectorLayerChanges) self.ui.btnVectorOverlayVisibility.setEnabled(True) - - else: self.vectorLayer = None self.ui.btnVectorOverlayVisibility.setEnabled(False) - self.sigVectorLayerChanged.emit() + self.onVectorLayerChanges() + + def onVectorLayerChanges(self): + + s = "" + for mapCanvas in self.mMapCanvases: + s = "" def applyStyles(self): for sensorView in self.sensorViews.values(): diff --git a/timeseriesviewer/sandbox.py b/timeseriesviewer/sandbox.py index d31f59de..d8b56453 100644 --- a/timeseriesviewer/sandbox.py +++ b/timeseriesviewer/sandbox.py @@ -149,6 +149,7 @@ def sandboxQgisBridge(): fakeQGIS.ui.show() import example.Images fakeQGIS.addVectorLayer(example.exampleEvents) + fakeQGIS.addVectorLayer(example.exampleEvents) fakeQGIS.addRasterLayer(example.Images.Img_2014_08_03_LE72270652014215CUB00_BOA) S.loadImageFiles([example.Images.Img_2014_01_15_LC82270652014015LGN00_BOA]) diff --git a/timeseriesviewer/ui/docks.py b/timeseriesviewer/ui/docks.py index 5103b4a3..73aa3e36 100644 --- a/timeseriesviewer/ui/docks.py +++ b/timeseriesviewer/ui/docks.py @@ -36,8 +36,9 @@ class RenderingDockUI(TsvDockWidgetBase, load('renderingdock.ui')): sigSpatialExtentChanged = pyqtSignal(SpatialExtent) sigCrsChanged = pyqtSignal(QgsCoordinateReferenceSystem) sigMapSizeChanged = pyqtSignal(QSize) - sigQgisSyncStateChanged = pyqtSignal(QgisTsvBridge.SyncState) sigQgisInteractionRequest = pyqtSignal(str) + sigShowVectorLayer = pyqtSignal(QgsVectorLayer) + sigRemoveVectorLayer = pyqtSignal() def __init__(self, parent=None): super(RenderingDockUI, self).__init__(parent) @@ -53,24 +54,29 @@ class RenderingDockUI(TsvDockWidgetBase, load('renderingdock.ui')): self.btnMapCanvasColor.colorChanged.connect(self.sigMapCanvasColorChanged) self.btnCrs.crsChanged.connect(self.sigCrsChanged) - #default: disable QgsSync box + self.gbQgsVectorLayer.clicked.connect(self.onLayerChanged) + self.cbQgsVectorLayer.layerChanged.connect(self.onLayerChanged) - #todo: realt-time syncing? self.frameRTSync.setVisible(False) self.progressBar.setVisible(False) self.enableQgisSyncronization(False) - self.mLastSyncState = self.qgsSyncState() - self.cbSyncQgsMapExtent.stateChanged.connect(self.onSyncStateChanged) - self.cbSyncQgsMapCenter.stateChanged.connect(self.onSyncStateChanged) - self.cbSyncQgsCRS.stateChanged.connect(self.onSyncStateChanged) - self.btnSetQGISCenter.clicked.connect(lambda : self.sigQgisInteractionRequest.emit('tsvCenter2qgsCenter')) self.btnSetQGISExtent.clicked.connect(lambda: self.sigQgisInteractionRequest.emit('tsvExtent2qgsExtent')) self.btnGetQGISCenter.clicked.connect(lambda: self.sigQgisInteractionRequest.emit('qgisCenter2tsvCenter')) self.btnGetQGISExtent.clicked.connect(lambda: self.sigQgisInteractionRequest.emit('qgisExtent2tsvExtent')) + def onLayerChanged(self, *args): + lyr = self.cbQgsVectorLayer.currentLayer() + b = self.gbQgsVectorLayer.isChecked() + + if b and isinstance(lyr, QgsVectorLayer): + self.sigShowVectorLayer.emit(lyr) + else: + self.sigRemoveVectorLayer.emit() + + def enableQgisSyncronization(self, b): self.gbSyncQgs.setEnabled(b) @@ -78,38 +84,8 @@ class RenderingDockUI(TsvDockWidgetBase, load('renderingdock.ui')): self.gbSyncQgs.setTitle('QGIS') else: self.gbSyncQgs.setTitle('QGIS (not available)') - #self.gbQgsVectorLayer.setEnabled(b) - - def onSyncStateChanged(self, *args): - - w = [self.cbSyncQgsMapCenter, self.cbSyncQgsMapExtent] - self._blockSignals(w, True) - if self.cbSyncQgsMapExtent.isChecked(): - self.cbSyncQgsMapCenter.setEnabled(False) - self.cbSyncQgsMapCenter.setChecked(True) - else: - self.cbSyncQgsMapCenter.setEnabled(True) - state = self.qgsSyncState() - self._blockSignals(w, False) - - if self.mLastSyncState != state: - self.mLastSyncState = state - self.sigQgisSyncStateChanged.emit(state) - - - def setQgisSyncState(self, syncState): - assert isinstance(syncState, QgisTsvBridge.SyncState) - - self.cbSyncQgsCRS.setChecked(syncState.crs) - self.cbSyncQgsMapExtent.setChecked(syncState.extent) - self.cbSyncQgsMapCenter.setChecked(syncState.center) + self.gbQgsVectorLayer.setEnabled(b) - def qgsSyncState(self): - s = QgisTsvBridge.SyncState() - s.crs = self.cbSyncQgsCRS.isChecked() - s.extent = self.cbSyncQgsMapExtent.isChecked() - s.center = self.cbSyncQgsMapCenter.isChecked() - return s def setCrs(self, crs): diff --git a/timeseriesviewer/ui/renderingdock.ui b/timeseriesviewer/ui/renderingdock.ui index 299b27c5..236b721c 100644 --- a/timeseriesviewer/ui/renderingdock.ui +++ b/timeseriesviewer/ui/renderingdock.ui @@ -6,7 +6,7 @@ <rect> <x>0</x> <y>0</y> - <width>220</width> + <width>245</width> <height>359</height> </rect> </property> @@ -48,7 +48,16 @@ <bool>false</bool> </property> <layout class="QGridLayout" name="gridLayout" columnstretch="0,2,0,2"> - <property name="margin"> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="topMargin"> + <number>6</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> <number>6</number> </property> <property name="spacing"> @@ -56,10 +65,10 @@ </property> <item row="2" column="1"> <widget class="QgsColorButton" name="btnMapCanvasColor"> - <property name="colorDialogTitle"> + <property name="colorDialogTitle" stdset="0"> <string>Select Map Canvas Background Color</string> </property> - <property name="color"> + <property name="color" stdset="0"> <color> <red>0</red> <green>0</green> @@ -221,7 +230,7 @@ </widget> </item> <item row="3" column="1" colspan="3"> - <widget class="QgsProjectionSelectionWidget" name="btnCrs"> + <widget class="QgsProjectionSelectionWidget" name="btnCrs" native="true"> <property name="minimumSize"> <size> <width>15</width> @@ -263,7 +272,16 @@ <property name="sizeConstraint"> <enum>QLayout::SetMinimumSize</enum> </property> - <property name="margin"> + <property name="leftMargin"> + <number>6</number> + </property> + <property name="topMargin"> + <number>6</number> + </property> + <property name="rightMargin"> + <number>6</number> + </property> + <property name="bottomMargin"> <number>6</number> </property> <property name="spacing"> @@ -398,10 +416,10 @@ <property name="checked"> <bool>false</bool> </property> - <property name="collapsed"> + <property name="collapsed" stdset="0"> <bool>true</bool> </property> - <property name="saveCheckedState"> + <property name="saveCheckedState" stdset="0"> <bool>true</bool> </property> <layout class="QFormLayout" name="formLayout_5"> @@ -411,7 +429,7 @@ <item row="0" column="1"> <widget class="QgsMapLayerComboBox" name="cbQgsVectorLayer"> <property name="enabled"> - <bool>false</bool> + <bool>true</bool> </property> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> -- GitLab