renamed History -> Graph

This commit is contained in:
Patrick Haßel 2025-09-28 16:17:28 +02:00
parent b4e1b88521
commit c6eaf56cc5
3 changed files with 70 additions and 70 deletions

View File

@ -351,7 +351,7 @@
</widget> </widget>
</item> </item>
<item row="5" column="0"> <item row="5" column="0">
<widget class="QGroupBox" name="gbHistory"> <widget class="QGroupBox" name="gbGraph">
<property name="title"> <property name="title">
<string>Pegelverlauf:</string> <string>Pegelverlauf:</string>
</property> </property>
@ -393,7 +393,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="slHistoryStation"> <widget class="QComboBox" name="slGraphStation">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
</property> </property>
@ -406,7 +406,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="btnHistoryStationsRefresh"> <widget class="QPushButton" name="btnGraphStationsRefresh">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -448,7 +448,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QSpinBox" name="numHistoryDays"> <widget class="QSpinBox" name="numGraphDays">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -473,7 +473,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="btnHistoryGo"> <widget class="QPushButton" name="btnGraphLoad">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
</property> </property>

View File

@ -16,7 +16,7 @@
<widget class="QWidget" name="dockWidgetContents"> <widget class="QWidget" name="dockWidgetContents">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="QLabel" name="lbHistory"> <widget class="QLabel" name="lbGraph">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>

View File

@ -43,7 +43,7 @@ class PoRunner(object):
self.local_dir = os.path.dirname(os.path.realpath(__file__)) self.local_dir = os.path.dirname(os.path.realpath(__file__))
# während dem Aktualisieren der Stationsliste treten change-signale auf, die werden so abgefangen # während dem Aktualisieren der Stationsliste treten change-signale auf, die werden so abgefangen
self._history_stations_lock = True self._graph_stations_lock = True
# Layer # Layer
self.stations = None self.stations = None
@ -64,7 +64,7 @@ class PoRunner(object):
self._basemap_connect_signals() self._basemap_connect_signals()
self._stations_connect_signals() self._stations_connect_signals()
self._waterlevels_connect_signals() self._waterlevels_connect_signals()
self._history_connect_signals() self._graph_connect_signals()
# basemap ----------------------------------------------------------------- # basemap -----------------------------------------------------------------
@ -680,13 +680,13 @@ class PoRunner(object):
if len(selected) == 1: if len(selected) == 1:
# Juhu, nur ein Pegelstand ausgewählt → Graph laden # Juhu, nur ein Pegelstand ausgewählt → Graph laden
if self.ui.slHistoryStation.count() == 0: if self.ui.slGraphStation.count() == 0:
# Wir haben aber noch keine Stationen geladen → machen wir zuerst # Wir haben aber noch keine Stationen geladen → machen wir zuerst
self._history_load_stations() self._graph_load_stations()
selected_shortname = selected[0].attribute("shortname") selected_shortname = selected[0].attribute("shortname")
print("_layer_selection_changed: Lade Pegelstandsverlauf zur Auswahl: %s" % (selected_shortname,)) print("_layer_selection_changed: Lade Pegelstandsverlauf zur Auswahl: %s" % (selected_shortname,))
self._historyStation_set_by_shortname(selected_shortname) self._graphStation_set_by_shortname(selected_shortname)
else: else:
# Leider 0 oder mehrere Pegelstände ausgewählt → Abbruch # Leider 0 oder mehrere Pegelstände ausgewählt → Abbruch
print("_layer_selection_changed: Anzahl ausgewählter Elemente ist NICHT 1, lade Pegelstandsverlauf NICHT!") print("_layer_selection_changed: Anzahl ausgewählter Elemente ist NICHT 1, lade Pegelstandsverlauf NICHT!")
@ -753,91 +753,91 @@ class PoRunner(object):
self._layer_refresh(layer) self._layer_refresh(layer)
# history signals --------------------------------------------------------- # graph signals ---------------------------------------------------------
""" """
Verbindet alle GraphWidget-Signale mit der UI Verbindet alle GraphWidget-Signale mit der UI
""" """
def _history_connect_signals(self): def _graph_connect_signals(self):
print("_history_connect_signals") print("_graph_connect_signals")
self.ui.slHistoryStation.currentTextChanged.connect(self._slHistoryStation_changed) self.ui.slGraphStation.currentTextChanged.connect(self._slGraphStation_changed)
self.ui.btnHistoryStationsRefresh.clicked.connect(self._btnHistoryStationsRefresh_clicked) self.ui.btnGraphStationsRefresh.clicked.connect(self._btnGraphStationsRefresh_clicked)
self.ui.numHistoryDays.valueChanged.connect(self._numHistoryDays_changed) self.ui.numGraphDays.valueChanged.connect(self._numGraphDays_changed)
self.ui.btnHistoryGo.clicked.connect(self._history_load_graph) self.ui.btnGraphLoad.clicked.connect(self._graph_load_graph)
""" """
Behandelt die Stations-Änderung und Lädt den Pegelstandsverlauf-Graph neu Behandelt die Stations-Änderung und Lädt den Pegelstandsverlauf-Graph neu
""" """
def _slHistoryStation_changed(self): def _slGraphStation_changed(self):
print("_slHistoryStation_changed: %s" % (self.ui.slHistoryStation.currentText(),)) print("_slGraphStation_changed: %s" % (self.ui.slGraphStation.currentText(),))
self._history_load_graph() self._graph_load_graph()
""" """
Klick auf Graph-Stations-Liste-Refresh: Klick auf Graph-Stations-Liste-Refresh:
Lässt die Stations-Liste für den Graphen neu laden Lässt die Stations-Liste für den Graphen neu laden
""" """
def _btnHistoryStationsRefresh_clicked(self): def _btnGraphStationsRefresh_clicked(self):
print("_btnHistoryStationsRefresh_clicked") print("_btnGraphStationsRefresh_clicked")
self._history_load_stations() self._graph_load_stations()
""" """
Loggt lediglich die Graph-Tages-Änderung Loggt lediglich die Graph-Tages-Änderung
""" """
def _numHistoryDays_changed(self): def _numGraphDays_changed(self):
print("_numHistoryDays_changed: %s" % (self.ui.numHistoryDays.value(),)) print("_numGraphDays_changed: %s" % (self.ui.numGraphDays.value(),))
""" """
Versucht den aktuell gewünschten Pegelstandsverlauf herunterzuladen und im GraphWidget anzuzeigen. Versucht den aktuell gewünschten Pegelstandsverlauf herunterzuladen und im GraphWidget anzuzeigen.
""" """
def _history_load_graph(self): def _graph_load_graph(self):
print("_history_load_graph") print("_graph_load_graph")
if not self.ui.slHistoryStation.isEnabled(): if not self.ui.slGraphStation.isEnabled():
# während dem Aktualisieren der Stationsliste treten change-signale auf, die werden hier abgefangen # während dem Aktualisieren der Stationsliste treten change-signale auf, die werden hier abgefangen
print("_history_load_graph: Stationsliste ist aktuell gesperrt") print("_graph_load_graph: Stationsliste ist aktuell gesperrt")
return return
station = self.ui.slHistoryStation.currentText() station = self.ui.slGraphStation.currentText()
days = self.ui.numHistoryDays.value() days = self.ui.numGraphDays.value()
print("_history_load_graph: station=%s days=%s" % (station, days)) print("_graph_load_graph: station=%s days=%s" % (station, days))
self.graph.lbHistory.clear() self.graph.lbGraph.clear()
self.graph.setWindowTitle("%s / %d Tag(e)" % (station, days)) self.graph.setWindowTitle("%s / %d Tag(e)" % (station, days))
self.graph.show() self.graph.show()
if station == '' or station is None: if station == '' or station is None:
# Keine Station ausgewählt → Abbruch # Keine Station ausgewählt → Abbruch
print("_history_load_graph: Fehler: Ungültige Station: %s" % (station,)) print("_graph_load_graph: Fehler: Ungültige Station: %s" % (station,))
self.graph.lbHistory.setText("Bitte Station wählen...") self.graph.lbGraph.setText("Bitte Station wählen...")
return return
if days is None or days < 1 or days > 30: if days is None or days < 1 or days > 30:
# Ungültige Anzahl an Tagen ausgewählt → Abbruch # Ungültige Anzahl an Tagen ausgewählt → Abbruch
print("_history_load_graph: Fehler: Ungültige Anzahl von Tagen: %s" % (days,)) print("_graph_load_graph: Fehler: Ungültige Anzahl von Tagen: %s" % (days,))
self.graph.lbHistory.setText("Bitte Tage [1, 30] wählen...") self.graph.lbGraph.setText("Bitte Tage [1, 30] wählen...")
return return
history = PoGraphReader(station, days) graph = PoGraphReader(station, days)
image_data = history.download() image_data = graph.download()
if image_data is None or len(image_data) == 0: if image_data is None or len(image_data) == 0:
# Keine Bild-Daten beim Herunterladen erhalten → Abbruch # Keine Bild-Daten beim Herunterladen erhalten → Abbruch
print("_history_load_graph: Fehler: Keine Daten erhalten") print("_graph_load_graph: Fehler: Keine Daten erhalten")
self.graph.lbHistory.setText("Fehler beim Download!") self.graph.lbGraph.setText("Fehler beim Download!")
return return
pixmap = QtGui.QPixmap() pixmap = QtGui.QPixmap()
pixmap.loadFromData(image_data) pixmap.loadFromData(image_data)
self.graph.lbHistory.setPixmap(pixmap) self.graph.lbGraph.setPixmap(pixmap)
self.graph.lbHistory.resize(pixmap.width(), pixmap.height()) self.graph.lbGraph.resize(pixmap.width(), pixmap.height())
print("_history_load_graph: Bild erfolgreich geladen") print("_graph_load_graph: Bild erfolgreich geladen")
""" """
Lädt die Stations-Liste für den Graphen neu. Lädt die Stations-Liste für den Graphen neu.
@ -845,40 +845,40 @@ class PoRunner(object):
Versucht die bisher ausgewählten Station in der neuen Liste wiederzufinden. Versucht die bisher ausgewählten Station in der neuen Liste wiederzufinden.
""" """
def _history_load_stations(self): def _graph_load_stations(self):
print("_history_load_stations") print("_graph_load_stations")
self.ui.slHistoryStation.setEnabled(False) self.ui.slGraphStation.setEnabled(False)
self.ui.btnHistoryGo.setEnabled(False) self.ui.btnGraphLoad.setEnabled(False)
# behalte die aktuelle Station, um sie (mit eventuell neuem Index) wiederherzustellen # behalte die aktuelle Station, um sie (mit eventuell neuem Index) wiederherzustellen
current_station = self.ui.slHistoryStation.currentText() current_station = self.ui.slGraphStation.currentText()
print("_history_load_stations: bisherige_station=%s" % (current_station,)) print("_graph_load_stations: bisherige_station=%s" % (current_station,))
# leere die bisherige Auswahlliste # leere die bisherige Auswahlliste
self.ui.slHistoryStation.clear() self.ui.slGraphStation.clear()
# Lade aktuelle StationsListe herunter # Lade aktuelle StationsListe herunter
stations = PoStationReader().get_stations() stations = PoStationReader().get_stations()
if stations is None or len(stations) == 0: if stations is None or len(stations) == 0:
# Keine Stationen erhalte → Abbruch # Keine Stationen erhalte → Abbruch
print("_history_load_stations: Fehler: Keine Stationen erhalten") print("_graph_load_stations: Fehler: Keine Stationen erhalten")
return return
for station in stations: for station in stations:
# Füge ein Item je Station hinzu # Füge ein Item je Station hinzu
self.ui.slHistoryStation.addItem(station.shortname) self.ui.slGraphStation.addItem(station.shortname)
if self._historyStation_set_by_shortname(current_station): if self._graphStation_set_by_shortname(current_station):
# Bisherige Station wiedergefunden → Wieder ausgewählt # Bisherige Station wiedergefunden → Wieder ausgewählt
print("_history_load_stations: Bisherige Station \"%s\" wiederhergestellt" % (current_station,)) print("_graph_load_stations: Bisherige Station \"%s\" wiederhergestellt" % (current_station,))
else: else:
# Bisherige Station nicht wiedergefunden → Wähle die erste Station aus der Liste # Bisherige Station nicht wiedergefunden → Wähle die erste Station aus der Liste
self.ui.slHistoryStation.setCurrentIndex(0) self.ui.slGraphStation.setCurrentIndex(0)
station = self.ui.slHistoryStation.currentText() station = self.ui.slGraphStation.currentText()
print("_history_load_stations: Bisherige Station \"%s\" nicht wiedergefunden. Nehme erste Station: %s" % (current_station, station)) print("_graph_load_stations: Bisherige Station \"%s\" nicht wiedergefunden. Nehme erste Station: %s" % (current_station, station))
self.ui.slHistoryStation.setEnabled(True) self.ui.slGraphStation.setEnabled(True)
self.ui.btnHistoryGo.setEnabled(True) self.ui.btnGraphLoad.setEnabled(True)
""" """
Setzt eine Graph-Station anhand des gegebenen Kurznamens Setzt eine Graph-Station anhand des gegebenen Kurznamens
@ -886,11 +886,11 @@ class PoRunner(object):
:type shortname: str :type shortname: str
""" """
def _historyStation_set_by_shortname(self, shortname): def _graphStation_set_by_shortname(self, shortname):
index = self._historyStation_get_index_by_shortname(shortname) index = self._graphStation_get_index_by_shortname(shortname)
if index is None: if index is None:
return False return False
self.ui.slHistoryStation.setCurrentIndex(index) self.ui.slGraphStation.setCurrentIndex(index)
return True return True
""" """
@ -899,12 +899,12 @@ class PoRunner(object):
:type shortname: str :type shortname: str
""" """
def _historyStation_get_index_by_shortname(self, shortname): def _graphStation_get_index_by_shortname(self, shortname):
print("_historyStation_get_index_by_shortname: shortname=%s" % (shortname,)) print("_graphStation_get_index_by_shortname: shortname=%s" % (shortname,))
for index in range(self.ui.slHistoryStation.count()): for index in range(self.ui.slGraphStation.count()):
text = self.ui.slHistoryStation.itemText(index) text = self.ui.slGraphStation.itemText(index)
if shortname == text: if shortname == text:
print("_historyStation_get_index_by_shortname: index=%d" % (index,)) print("_graphStation_get_index_by_shortname: index=%d" % (index,))
return index return index
print("_historyStation_get_index_by_shortname: Nicht gefunden") print("_graphStation_get_index_by_shortname: Nicht gefunden")
return None return None