diff --git a/src/Model/WeatherParameters/WeatherParametersTypes.py b/src/Model/WeatherParameters/WeatherParametersTypes.py
index 8bd4f815..7425bdf0 100644
--- a/src/Model/WeatherParameters/WeatherParametersTypes.py
+++ b/src/Model/WeatherParameters/WeatherParametersTypes.py
@@ -76,7 +76,7 @@ class SpecificHumidity(WeatherParameters):
)
self._type = "SH"
- self._header = ["time", "humidity percentage"]
+ self._header = ["time", "humidity"]
self._types = [SpecificHumidity.time_convert, float]
diff --git a/src/View/BoundaryCondition/Edit/Plot.py b/src/View/BoundaryCondition/Edit/Plot.py
index 31b25f9b..ca0f753d 100644
--- a/src/View/BoundaryCondition/Edit/Plot.py
+++ b/src/View/BoundaryCondition/Edit/Plot.py
@@ -54,7 +54,7 @@ class Plot(PamhyrPlot):
self._isometric_axis = False
self._auto_relim_update = True
- self._autoscale_update = False
+ self._autoscale_update = True
def custom_ticks(self):
if self.data.header[0] != "time":
diff --git a/src/View/BoundaryConditionsTemperature/Table.py b/src/View/BoundaryConditionsTemperature/Table.py
index 76f95e83..748fbfd2 100644
--- a/src/View/BoundaryConditionsTemperature/Table.py
+++ b/src/View/BoundaryConditionsTemperature/Table.py
@@ -124,7 +124,7 @@ class TableModel(PamhyrTableModel):
if self._headers[column] == "name":
n = self._lst[row].name
if n is None or n == "":
- return self._trad["not_associated"]
+ return self._trad["default"]
return n
elif self._headers[column] == "node":
n = self._lst[row].node
@@ -172,7 +172,13 @@ class TableModel(PamhyrTableModel):
logger.info(e)
logger.debug(traceback.format_exc())
- self.dataChanged.emit(index, index)
+ if self._headers[column] == "node" and self.rowCount() > 0:
+ self.dataChanged.emit(
+ self.index(0, column),
+ self.index(self.rowCount() - 1, column)
+ )
+ else:
+ self.dataChanged.emit(index, index)
return True
def add(self, row, parent=QModelIndex()):
diff --git a/src/View/BoundaryConditionsTemperature/UndoCommand.py b/src/View/BoundaryConditionsTemperature/UndoCommand.py
index 6b65d7de..4aa4dd59 100644
--- a/src/View/BoundaryConditionsTemperature/UndoCommand.py
+++ b/src/View/BoundaryConditionsTemperature/UndoCommand.py
@@ -37,12 +37,23 @@ class SetNodeCommand(QUndoCommand):
self._index = index
self._old = self._bcs.get(self._index).node
self._new = node.id if node is not None else None
+ self._previous = next(
+ (
+ bc for i, bc in enumerate(self._bcs.lst)
+ if i != self._index and bc.node == self._new
+ ),
+ None
+ )
def undo(self):
self._bcs.get(self._index).node = self._old
+ if self._previous is not None:
+ self._previous.node = self._new
def redo(self):
self._bcs.get(self._index).node = self._new
+ if self._previous is not None:
+ self._previous.node = None
class SetNameCommand(QUndoCommand):
diff --git a/src/View/BoundaryConditionsTemperature/translate.py b/src/View/BoundaryConditionsTemperature/translate.py
index 8978a42e..bcd1021b 100644
--- a/src/View/BoundaryConditionsTemperature/translate.py
+++ b/src/View/BoundaryConditionsTemperature/translate.py
@@ -30,6 +30,9 @@ class BCTemperatureTranslate(MainTranslate):
self._dict["Boundary conditions temperature"] = _translate(
"BoundaryConditionsTemperature", "Boundary conditions temperature"
)
+ self._dict["default"] = _translate(
+ "BoundaryConditionsTemperature", "default"
+ )
self._sub_dict["table_headers"] = {
"name": self._dict["name"],
diff --git a/src/View/InitialConditionsAdisTS/Table.py b/src/View/InitialConditionsAdisTS/Table.py
index d6524528..5240ed5c 100644
--- a/src/View/InitialConditionsAdisTS/Table.py
+++ b/src/View/InitialConditionsAdisTS/Table.py
@@ -137,7 +137,7 @@ class InitialConditionTableModel(PamhyrTableModel):
if self._headers[column] == "name":
n = self._lst[row].name
if n is None or n == "":
- return self._trad['not_associated']
+ return self._trad['not_defined']
return n
elif self._headers[column] == "reach":
n = self._lst[row].reach
@@ -159,27 +159,27 @@ class InitialConditionTableModel(PamhyrTableModel):
elif self._headers[column] == "concentration":
n = self._lst[row].concentration
if n is None:
- return self._trad['not_associated']
+ return self._trad['not_defined']
return n
elif self._headers[column] == "eg":
n = self._lst[row].eg
if n is None:
- return self._trad['not_associated']
+ return self._trad['not_defined']
return n
elif self._headers[column] == "em":
n = self._lst[row].em
if n is None:
- return self._trad['not_associated']
+ return self._trad['not_defined']
return n
elif self._headers[column] == "ed":
n = self._lst[row].ed
if n is None:
- return self._trad['not_associated']
+ return self._trad['not_defined']
return n
elif self._headers[column] == "rate":
n = self._lst[row].rate
if n is None:
- return self._trad['not_associated']
+ return self._trad['not_defined']
return n
return QVariant()
diff --git a/src/View/InitialConditionsTemperature/Table.py b/src/View/InitialConditionsTemperature/Table.py
index 97bfaa2f..60b7adb6 100644
--- a/src/View/InitialConditionsTemperature/Table.py
+++ b/src/View/InitialConditionsTemperature/Table.py
@@ -65,10 +65,11 @@ class ComboBoxDelegate(QItemDelegate):
reach = next(filter(lambda edge: edge.id == reach_id,
self._data.edges()), None)
- if reach_id is not None:
+ if reach is not None:
val = list(
map(
- lambda rk: str(rk), reach.reach.get_rk()
+ lambda profile: profile.display_name(),
+ reach.reach.profiles
)
)
else:
@@ -92,7 +93,29 @@ class ComboBoxDelegate(QItemDelegate):
def setModelData(self, editor, model, index):
text = str(editor.currentText())
- model.setData(index, text)
+ value = text
+
+ if self._mode == "rk":
+ reach_id = self._ic_spec_lst[index.row()].reach
+ reach = next(
+ (
+ edge for edge in self._data.edges()
+ if edge.id == reach_id
+ ),
+ None
+ )
+ if reach is not None:
+ profile = next(
+ (
+ profile for profile in reach.reach.profiles
+ if profile.display_name() == text
+ ),
+ None
+ )
+ if profile is not None:
+ value = profile.rk
+
+ model.setData(index, value)
editor.close()
editor.deleteLater()
@@ -137,7 +160,7 @@ class InitialConditionTableModel(PamhyrTableModel):
if self._headers[column] == "name":
n = self._lst[row].name
if n is None or n == "":
- return self._trad['not_associated']
+ return self._trad['not_defined']
return n
elif self._headers[column] == "reach":
n = self._lst[row].reach
@@ -150,20 +173,41 @@ class InitialConditionTableModel(PamhyrTableModel):
n = self._lst[row].start_rk
if n is None:
return self._trad['not_associated']
- return n
+ return self._rk_display_name(row, n)
elif self._headers[column] == "end_rk":
n = self._lst[row].end_rk
if n is None:
return self._trad['not_associated']
- return n
+ return self._rk_display_name(row, n)
elif self._headers[column] == "temperature":
n = self._lst[row].temperature
if n is None:
- return self._trad['not_associated']
+ return self._trad['not_defined']
return n
return QVariant()
+ def _rk_display_name(self, row, rk):
+ reach_id = self._lst[row].reach
+ reach = next(
+ (
+ edge for edge in self._river.edges()
+ if edge.id == reach_id
+ ),
+ None
+ )
+ if reach is None:
+ return str(rk)
+
+ profile = next(
+ (
+ profile for profile in reach.reach.profiles
+ if profile.rk == rk
+ ),
+ None
+ )
+ return profile.display_name() if profile is not None else str(rk)
+
def setData(self, index, value, role=Qt.EditRole):
if not index.isValid() or role != Qt.EditRole:
return False
diff --git a/src/View/Tools/PamhyrPlot.py b/src/View/Tools/PamhyrPlot.py
index 78edc38d..c4662a29 100644
--- a/src/View/Tools/PamhyrPlot.py
+++ b/src/View/Tools/PamhyrPlot.py
@@ -97,8 +97,8 @@ class PamhyrPlot(APlot):
self._auto_relim = True #: Auto relim axes at plot creation
self._autoscale = True #: Auto scale at plot creation
- self._auto_relim_update = False #: Auto relim axes at plot update
- self._autoscale_update = False #: Auto scale at plot creation
+ self._auto_relim_update = True #: Auto relim axes at plot update
+ self._autoscale_update = True #: Auto scale at plot creation
self._highlight_data = None #: Data identifier to highlight
self._highlight_data_update = False
diff --git a/src/View/Tools/Plot/PamhyrToolbar.py b/src/View/Tools/Plot/PamhyrToolbar.py
index 593049a0..e70c6fd8 100644
--- a/src/View/Tools/Plot/PamhyrToolbar.py
+++ b/src/View/Tools/Plot/PamhyrToolbar.py
@@ -40,13 +40,16 @@ class PamhyrPlotToolbar(NavigationToolbar2QT):
isometric_signal = pyqtSignal(str)
def __init__(self, canvas, parent,
- items=["home", "move", "zoom", "save"]):
+ items=[
+ "home", "back/forward", "move",
+ "zoom", "iso", "save"
+ ]):
"""PamhyrPlotToolbar
Args:
canvas: MatPlotLib canvas
parent: parent Qt object
- items: Enables items (default: "home", "move", "zoom", "save")
+ items: Enables toolbar items
"""
self._canvas = canvas
self._items = items
diff --git a/src/View/WeatherParameters/Edit/translate.py b/src/View/WeatherParameters/Edit/translate.py
index 6428c76b..4328f55d 100644
--- a/src/View/WeatherParameters/Edit/translate.py
+++ b/src/View/WeatherParameters/Edit/translate.py
@@ -36,8 +36,8 @@ class WPETranslate(WeatherParametersTranslate):
"date": self._dict["date"],
"discharge": self._dict["unit_discharge"],
"temperature": _translate("WeatherParameters", "Temperature (°C)"),
- "humidity percentage": _translate("WeatherParameters",
- "Humidity Percentage"),
+ "humidity": _translate("WeatherParameters",
+ "Humidity"),
"radiation": _translate("WeatherParameters", "Radiation (W/m²)"),
"wind speed": _translate("WeatherParameters", "Wind Speed (m/s)"),
"albedo": _translate("WeatherParameters", "Albedo"),
diff --git a/src/View/WeatherParameters/translate.py b/src/View/WeatherParameters/translate.py
index ca72e52d..06093fc7 100644
--- a/src/View/WeatherParameters/translate.py
+++ b/src/View/WeatherParameters/translate.py
@@ -47,7 +47,7 @@ class WeatherParametersTranslate(MainTranslate):
"air_temperature": _translate("WeatherParameters",
"Air Temperature (°C)"),
"specific_humidity": _translate("WeatherParameters",
- "Specific Humidity (%)"),
+ "Specific Humidity"),
"global_radiation": _translate("WeatherParameters",
"Global Radiation (W/m²)"),
"reference_wind_speed": _translate("WeatherParameters",
diff --git a/src/View/ui/InitialConditionsTemperature.ui b/src/View/ui/InitialConditionsTemperature.ui
index 97321f4e..2a1c0c45 100644
--- a/src/View/ui/InitialConditionsTemperature.ui
+++ b/src/View/ui/InitialConditionsTemperature.ui
@@ -50,20 +50,6 @@
-
-
- toolBar
-
-
- TopToolBarArea
-
-
- false
-
-
-
-
-