diff --git a/pegelonline_dockwidget_base.ui b/pegelonline_dockwidget_base.ui
index c77aefd..0874d79 100644
--- a/pegelonline_dockwidget_base.ui
+++ b/pegelonline_dockwidget_base.ui
@@ -6,8 +6,8 @@
0
0
- 395
- 365
+ 297
+ 556
@@ -21,87 +21,160 @@
- -
-
+
-
+
- Wasserstandinformationen anzeigen:
+ Pegelstände:
-
-
-
-
- Stationen anzeigen
-
-
-
-
- Wasserstände anzeigen
+ Anzeigen (Download von Pegelonline)
-
-
+
+
+ Optionen:
+
+
+
-
+
+
+ Name
+
+
+
+ -
+
+
+ Zeitstempel
+
+
+
+ -
+
+
+ Aktueller Wert
+
+
+
+ -
+
+
+ mittelere niedrigste, höchste Pegel
+
+
+
+ -
+
+
+ absolute niedrigste, höchste Pegel
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Stationen:
+
+
+
-
+
- Basiskarte Flüsse anzeigen
+ Anzeigen (Download von Pegelonline)
-
-
+
+
+ Optionen:
+
+
+
-
+
+
-
+
+
+ Name
+
+
+
+ -
+
+
+ Nummer
+
+
+
+ -
+
+
+ Unternehmen
+
+
+
+
+
+ -
+
+
-
+
+
+ km
+
+
+
+ -
+
+
+ Wasserstand
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Basiskarte:
+
+
+
-
+
- Basiskarte Flächen anzeigen
+ Flüsse
-
-
+
- Beschriftungen
+ Flächen
- -
-
-
- Trend
-
-
- rbValue
-
-
-
- -
-
-
- Absolutwerte (in cm)
-
-
- rbValue
-
-
-
- -
-
-
-
-
- PoGraphDisplay
- QWidget
-
- 1
-
-
-
-
-
diff --git a/po_runner.py b/po_runner.py
index 247cc81..c76f459 100644
--- a/po_runner.py
+++ b/po_runner.py
@@ -17,30 +17,28 @@ class PoRunner(object):
self.local_dir = os.path.dirname(os.path.realpath(__file__))
# Layer Variablen
- self.layer_stations = None
- self.layer_waterlevels = None
- self.basemap_lines = None
- self.basemap_areas = None
+ self.stations = None
+ self.waterlevels = None
+ self.lines = None
+ self.areas = None
- # connect ui signals
- self.ui.cbStationsVisible.toggled.connect(self.cbStationsVisibleToggled)
- self.ui.cbWaterlevelsVisible.toggled.connect(self.cbWaterlevelsVisibleToggled)
- self.ui.cbBasemapLinesVisible.toggled.connect(self.cbBasemapLinesVisibleToggled)
- self.ui.cbBasemapAreasVisible.toggled.connect(self.cbBasemapAreasVisibleToggled)
- self.ui.cbWaterlevelsLabelsVisible.toggled.connect(self.cbWaterlevelsLabelsVisibleToggled)
- self.ui.rbValue.buttonClicked.connect(self.rbValueChanged)
+ self.connect_basemap_signals()
+ self.connect_stations_signals()
+ self.connect_waterlevels_signals()
+
+ # stations ----------------------------------------------------------------
def loadStations(self):
print("loadStations")
reader = PoQgsStations()
- self.layer_stations = self._layerFromReader(reader.fields, reader.crs, reader.getStationsFeatures(), "Stationen")
- self._layerShow(self.layer_stations, "styles/label_stations.qml", self.disconnectStations)
+ self.stations = self._layerFromReader(reader.fields, reader.crs, reader.getStationsFeatures(), "Stationen")
+ self._layerShow(self.stations, "styles/label_stations.qml", self.disconnectStations)
def loadWaterlevels(self):
print("loadWaterlevels")
reader = PoQgsCurrentW()
- self.layer_waterlevels = self._layerFromReader(reader.fields, reader.crs, reader.getCurrentWFeatures(), "Wasserstandinformationen")
- self._layerShow(self.layer_waterlevels, "styles/label_currentw.qml", self.disconnectWaterlevels)
+ self.waterlevels = self._layerFromReader(reader.fields, reader.crs, reader.getCurrentWFeatures(), "Wasserstandinformationen")
+ self._layerShow(self.waterlevels, "styles/label_currentw.qml", self.disconnectWaterlevels)
def _layerFromReader(self, fields, crs, features, title) -> None | QgsVectorLayer:
print("_layerFromReader")
@@ -86,32 +84,60 @@ class PoRunner(object):
self._layerSetVisible(layer, True)
self._layerRefresh(layer)
- def _layerRefresh(self, layer):
- print("_layerRefresh")
- if self.iface.mapCanvas().isCachingEnabled():
- layer.triggerRepaint()
- else:
- self.iface.mapCanvas().refresh()
+ # stations signals --------------------------------------------------------
- def cbBasemapLinesVisibleToggled(self):
- checked = self.ui.cbBasemapLinesVisible.isChecked()
- print("cbBasemapLinesVisibleToggled: %s" % (checked,))
+ def connect_stations_signals(self):
+ print("connect_stations_signals")
+ self.ui.cbStationsVisible.toggled.connect(self.cbStationsVisibleToggled)
+ self.ui.cbStationsName.toggled.connect(self.cbStationsNameToggled)
+ self.ui.cbStationsNumber.toggled.connect(self.cbStationsNumberToggled)
+ self.ui.cbStationsAgency.toggled.connect(self.cbStationsAgencyToggled)
+ self.ui.cbStationsKm.toggled.connect(self.cbStationsKmToggled)
+ self.ui.cbStationsWater.toggled.connect(self.cbStationsWaterToggled)
- if self.basemap_lines is None and checked:
- self.basemap_lines = self._basemapCreate("waters.gpkg|layername=water_l", "Flüsse", self.disconnectBasemapLines)
+ def cbStationsVisibleToggled(self):
+ visible = self.ui.cbStationsVisible.isChecked()
+ print("cbStationsVisibleToggled: %s" % (visible,))
- if self.basemap_lines is not None:
- self._layerSetVisible(self.basemap_lines, checked)
+ if self.stations is None and visible:
+ self.loadStations()
- def cbBasemapAreasVisibleToggled(self):
- checked = self.ui.cbBasemapAreasVisible.isChecked()
- print("cbBasemapAreasVisibleToggled: %s" % (checked,))
+ if self.stations is not None:
+ self.stations.setLabelsEnabled(visible)
+ self._layerSetVisible(self.stations, visible)
+ self._layerRefresh(self.stations)
- if self.basemap_areas is None and checked:
- self.basemap_areas = self._basemapCreate("waters.gpkg|layername=water_f", "Flächen", self.disconnectBasemapAreas)
+ def cbStationsNameToggled(self):
+ checked = self.ui.cbStationsName.isChecked()
+ print("cbStationsNameToggled: %s" % (checked,))
+ # TODO
- if self.basemap_areas is not None:
- self._layerSetVisible(self.basemap_areas, checked)
+ def cbStationsNumberToggled(self):
+ checked = self.ui.cbStationsNumber.isChecked()
+ print("cbStationsNumberToggled: %s" % (checked,))
+ # TODO
+
+ def cbStationsAgencyToggled(self):
+ checked = self.ui.cbStationsAgency.isChecked()
+ print("cbStationsAgencyToggled: %s" % (checked,))
+ # TODO
+
+ def cbStationsKmToggled(self):
+ checked = self.ui.cbStationsKm.isChecked()
+ print("cbStationsKmToggled: %s" % (checked,))
+ # TODO
+
+ def cbStationsWaterToggled(self):
+ checked = self.ui.cbStationsWater.isChecked()
+ print("cbStationsWaterToggled: %s" % (checked,))
+ # TODO
+
+ def disconnectStations(self):
+ print("disconnectStations")
+ self.stations = None
+ self.ui.cbStationsVisible.setChecked(False)
+
+ # basemap -----------------------------------------------------------------
def _basemapCreate(self, path, name, disconnect: Callable[[], None]) -> None | QgsVectorLayer:
print("_basemapCreate: %s" % (name,))
@@ -134,68 +160,119 @@ class PoRunner(object):
return basemap
+ # basemap signals ---------------------------------------------------------
+
+ def connect_basemap_signals(self):
+ print("connect_basemap_signals")
+ self.ui.cbBasemapLines.toggled.connect(self.cbBasemapLinesToggled)
+ self.ui.cbBasemapAreas.toggled.connect(self.cbBasemapAreasToggled)
+
+ def cbBasemapLinesToggled(self):
+ checked = self.ui.cbBasemapLines.isChecked()
+ print("cbBasemapLinesToggled: %s" % (checked,))
+
+ if self.lines is None and checked:
+ self.lines = self._basemapCreate("waters.gpkg|layername=water_l", "Flüsse", self.disconnectBasemapLines)
+
+ if self.lines is not None:
+ self._layerSetVisible(self.lines, checked)
+
+ def cbBasemapAreasToggled(self):
+ checked = self.ui.cbBasemapAreas.isChecked()
+ print("cbBasemapAreasToggled: %s" % (checked,))
+
+ if self.areas is None and checked:
+ self.areas = self._basemapCreate("waters.gpkg|layername=water_f", "Flächen", self.disconnectBasemapAreas)
+
+ if self.areas is not None:
+ self._layerSetVisible(self.areas, checked)
+
+ def disconnectBasemapLines(self):
+ print("disconnectBasemapLines")
+ self.lines = None
+ self.ui.cbBasemapLines.setChecked(False)
+
+ def disconnectBasemapAreas(self):
+ print("disconnectBasemapAreas")
+ self.areas = None
+ self.ui.cbBasemapAreas.setChecked(False)
+
+ # layers ------------------------------------------------------------------
+
+ def _layerRefresh(self, layer):
+ print("_layerRefresh")
+ if self.iface.mapCanvas().isCachingEnabled():
+ layer.triggerRepaint()
+ else:
+ self.iface.mapCanvas().refresh()
+
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 cbStationsVisibleToggled(self):
- visible = self.ui.cbStationsVisible.isChecked()
- print("cbStationsVisibleToggled: %s" % (visible,))
+ # waterlevels signals -----------------------------------------------------
- if self.layer_stations is None and visible:
- self.loadStations()
-
- if self.layer_stations is not None:
- self.layer_stations.setLabelsEnabled(visible)
- self._layerSetVisible(self.layer_stations, visible)
- self._layerRefresh(self.layer_stations)
+ def connect_waterlevels_signals(self):
+ print("connect_waterlevels_signals")
+ self.ui.cbWaterlevelsVisible.toggled.connect(self.cbWaterlevelsVisibleToggled)
+ self.ui.cbWaterlevelsName.toggled.connect(self.cbWaterlevelsNameToggled)
+ self.ui.cbWaterlevelsTimestamp.toggled.connect(self.cbWaterlevelsTimestampToggled)
+ self.ui.cbWaterlevelsValue.toggled.connect(self.cbWaterlevelsValueToggled)
+ self.ui.cbWaterlevelsMean.toggled.connect(self.cbWaterlevelsMeanToggled)
+ self.ui.cbWaterlevelsAbsolute.toggled.connect(self.cbWaterlevelsAbsoluteToggled)
def cbWaterlevelsVisibleToggled(self):
visible = self.ui.cbWaterlevelsVisible.isChecked()
print("cbWaterlevelsVisibleToggled: %s" % (visible,))
- if self.layer_waterlevels is None:
+ if self.waterlevels is None:
self.loadWaterlevels()
- if self.layer_waterlevels is not None:
- self.layer_waterlevels.setLabelsEnabled(visible)
- self._layerSetVisible(self.layer_waterlevels, visible)
- self._layerRefresh(self.layer_waterlevels)
+ if self.waterlevels is not None:
+ self.waterlevels.setLabelsEnabled(visible)
+ self._layerSetVisible(self.waterlevels, visible)
+ self._layerRefresh(self.waterlevels)
- def cbWaterlevelsLabelsVisibleToggled(self):
- print("cbWaterlevelsLabelsVisibleToggled: %s" % (self.ui.cbWaterlevelsVisible.isChecked(),))
+ def cbWaterlevelsNameToggled(self):
+ checked = self.ui.cbWaterlevelsName.isChecked()
+ print("cbWaterlevelsNameToggled: %s" % (checked,))
# TODO
- def rbValueChanged(self, button):
- print("rbValueChanged")
- if self.layer_waterlevels is None:
- self.loadWaterlevels()
+ def cbWaterlevelsTimestampToggled(self):
+ checked = self.ui.cbWaterlevelsTimestamp.isChecked()
+ print("cbWaterlevelsTimestampToggled: %s" % (checked,))
+ # TODO
- 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"))
+ def cbWaterlevelsValueToggled(self):
+ checked = self.ui.cbWaterlevelsValue.isChecked()
+ print("cbWaterlevelsValueToggled: %s" % (checked,))
+ # TODO
- self.cbWaterlevelsVisibleToggled()
+ def cbWaterlevelsMeanToggled(self):
+ checked = self.ui.cbWaterlevelsMean.isChecked()
+ print("cbWaterlevelsMeanToggled: %s" % (checked,))
+ # TODO
- def disconnectStations(self):
- print("disconnectStations")
- self.layer_stations = None
- self.ui.cbStationsVisible.setChecked(False)
+ def cbWaterlevelsAbsoluteToggled(self):
+ checked = self.ui.cbWaterlevelsAbsolute.isChecked()
+ print("cbWaterlevelsAbsoluteToggled: %s" % (checked,))
+ # TODO
def disconnectWaterlevels(self):
print("disconnectWaterlevels")
- self.layer_waterlevels = None
+ self.waterlevels = None
self.ui.cbWaterlevelsVisible.setChecked(False)
- def disconnectBasemapLines(self):
- print("disconnectBasemapLines")
- self.basemap_lines = None
- self.ui.cbBasemapLinesVisible.setChecked(False)
-
- def disconnectBasemapAreas(self):
- print("disconnectBasemapAreas")
- self.basemap_areas = None
- self.ui.cbBasemapAreasVisible.setChecked(False)
+ # 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()