diff --git a/pegelonline_dockwidget_base.ui b/pegelonline_dockwidget_base.ui
index 36dc7e0..1936b0b 100644
--- a/pegelonline_dockwidget_base.ui
+++ b/pegelonline_dockwidget_base.ui
@@ -7,7 +7,7 @@
0
0
290
- 532
+ 676
@@ -61,7 +61,7 @@
-
- Organisation
+ Betreiber
@@ -107,6 +107,29 @@
+ -
+
+
+ Basiskarte:
+
+
+
-
+
+
+ Flüsse
+
+
+
+ -
+
+
+ Flächen
+
+
+
+
+
+
-
@@ -145,7 +168,7 @@
-
- Organisation
+ Betreiber
@@ -175,25 +198,35 @@
- -
-
+
-
+
- Basiskarte:
+ Pegelverlauf:
-
+
-
-
-
- Flüsse
-
-
-
- -
-
-
- Flächen
-
-
+
+
-
+
+
+ Station:
+
+
+
+ -
+
+
+ -
+
+
+ Tage
+
+
+
+ -
+
+
+
diff --git a/po_runner.py b/po_runner.py
index e5192a4..e8be14d 100644
--- a/po_runner.py
+++ b/po_runner.py
@@ -73,6 +73,7 @@ class PoRunner(object):
if self.lines is not None:
self._layerSetVisible(self.lines, checked)
+ self._layerRefresh(self.lines)
def cbBasemapAreasToggled(self):
checked = self.ui.cbBasemapAreas.isChecked()
@@ -83,6 +84,7 @@ class PoRunner(object):
if self.areas is not None:
self._layerSetVisible(self.areas, checked)
+ self._layerRefresh(self.areas)
def disconnectBasemapLines(self):
print("disconnectBasemapLines")
@@ -96,16 +98,12 @@ class PoRunner(object):
# stations ----------------------------------------------------------------
- def loadStations(self):
- print("loadStations")
- reader = PoQgsStations()
- features = reader.getStationsFeatures()
- self.stations = self._layerFromReader(reader.fields, reader.crs, features, "Stationen")
- self._stationsUpdateLabeling()
- self._layerShow(self.stations, "styles/label_stations.qml", self.disconnectStations)
-
# noinspection DuplicatedCode
def _stationsUpdateLabeling(self):
+ print("_stationsUpdateLabeling")
+ if self.stations is None:
+ return
+
fields = []
if self.ui.cbStationsName.isChecked():
fields.append("shortname")
@@ -117,6 +115,7 @@ class PoRunner(object):
fields.append("km")
if self.ui.cbStationsWater.isChecked():
fields.append("water")
+
self._layerUpdateLabeling(self.stations, fields)
# stations signals --------------------------------------------------------
@@ -136,12 +135,14 @@ class PoRunner(object):
print("cbStationsVisibleToggled: %s" % (visible,))
if self.stations is None and visible:
- self.loadStations()
+ reader = PoQgsStations()
+ features = reader.getStationsFeatures()
+ self.stations = self._layerFromReader(reader.fields, reader.crs, features, "Stationen")
+ self._layerAdd(self.stations, "styles/label_stations.qml", self.disconnectStations)
if self.stations is not None:
- self.stations.setLabelsEnabled(visible)
self._layerSetVisible(self.stations, visible)
- self._layerRefresh(self.stations)
+ self._stationsUpdateLabeling()
def cbStationsNameToggled(self):
checked = self.ui.cbStationsName.isChecked()
@@ -170,16 +171,11 @@ class PoRunner(object):
# waterlevels -------------------------------------------------------------
- def loadWaterlevels(self):
- print("loadWaterlevels")
- reader = PoQgsCurrentW()
- features = reader.getCurrentWFeatures()
- self.waterlevels = self._layerFromReader(reader.fields, reader.crs, features, "Wasserstandinformationen")
- self._waterlevelsUpdateLabeling()
- self._layerShow(self.waterlevels, "styles/label_currentw.qml", self.disconnectWaterlevels)
-
# noinspection DuplicatedCode
def _waterlevelsUpdateLabeling(self):
+ if self.waterlevels is None:
+ return
+
fields = []
if self.ui.cbWaterlevelsName.isChecked():
fields.append("shortname")
@@ -199,12 +195,6 @@ class PoRunner(object):
# waterlevels signals -----------------------------------------------------
- def _layerSetVisible(self, basemap: QgsVectorLayer, visible):
- print("_layerSetVisible: %s => %s" % (basemap.name, visible))
- layer_tree = QgsProject.instance().layerTreeRoot().findLayer(basemap.id())
- layer_tree.setItemVisibilityChecked(visible)
- self._layerRefresh(basemap)
-
def connect_waterlevels_signals(self):
print("connect_waterlevels_signals")
# noinspection DuplicatedCode
@@ -221,13 +211,15 @@ class PoRunner(object):
visible = self.ui.cbWaterlevelsVisible.isChecked()
print("cbWaterlevelsVisibleToggled: %s" % (visible,))
- if self.waterlevels is None:
- self.loadWaterlevels()
+ if self.waterlevels is None and visible:
+ reader = PoQgsCurrentW()
+ features = reader.getCurrentWFeatures()
+ self.waterlevels = self._layerFromReader(reader.fields, reader.crs, features, "Wasserstandinformationen")
+ self._layerAdd(self.waterlevels, "styles/label_currentw.qml", self.disconnectWaterlevels)
if self.waterlevels is not None:
- self.waterlevels.setLabelsEnabled(visible)
self._layerSetVisible(self.waterlevels, visible)
- self._layerRefresh(self.waterlevels)
+ self._waterlevelsUpdateLabeling()
def cbWaterlevelsNameToggled(self):
checked = self.ui.cbWaterlevelsName.isChecked()
@@ -264,18 +256,6 @@ class PoRunner(object):
print("cbWaterlevelsAbsoluteToggled: %s" % (checked,))
self._waterlevelsUpdateLabeling()
- # def rbValueChanged(self, button):
- # print("rbValueChanged")
- # if self.layer_waterlevels is None:
- # self.loadWaterlevels()
- #
- # if button.objectName() == "rbShowTrend":
- # self.layer_waterlevels.loadNamedStyle(os.path.join(self.local_dir, "styles/label_currentw_trend.qml"))
- # elif button.objectName() == "rbShowAbsValues":
- # self.layer_waterlevels.loadNamedStyle(os.path.join(self.local_dir, "styles/label_currentw_absvalue.qml"))
- #
- # self.cbWaterlevelsVisibleToggled()
-
def disconnectWaterlevels(self):
print("disconnectWaterlevels")
self.waterlevels = None
@@ -283,6 +263,11 @@ class PoRunner(object):
# layers ------------------------------------------------------------------
+ def _layerSetVisible(self, basemap: QgsVectorLayer, visible):
+ print("_layerSetVisible: %s => %s" % (basemap.name, visible))
+ layer_tree = QgsProject.instance().layerTreeRoot().findLayer(basemap.id())
+ layer_tree.setItemVisibilityChecked(visible)
+
def _layerFromReader(self, fields, crs, features, title) -> None | QgsVectorLayer:
print("_layerFromReader")
if features is None:
@@ -298,6 +283,9 @@ class PoRunner(object):
layer.updateFields()
provider.addFeatures(features)
+ for error in provider.errors():
+ print("Fehler beim Hinzufügen von Features: " + error)
+
layer.updateExtents()
layer.commitChanges()
@@ -307,7 +295,7 @@ class PoRunner(object):
return None
- def _layerShow(self, layer: QgsVectorLayer, styles_path: str, disconnect: Callable[[], None]):
+ def _layerAdd(self, layer: QgsVectorLayer, styles_path: str, disconnect: Callable[[], None]):
print("_layerShow")
if layer is None:
print("_layerShow: Übergebener Layer ist None")
@@ -326,9 +314,6 @@ class PoRunner(object):
layer_tree = self.iface.layerTreeCanvasBridge().rootGroup()
layer_tree.insertChildNode(0, QgsLayerTreeLayer(layer))
- self._layerSetVisible(layer, True)
- self._layerRefresh(layer)
-
def _layerUpdateLabeling(self, layer, fields):
labeling = QgsVectorLayerSimpleLabeling(QgsPalLayerSettings())