prevent scenario window to open if study is not saved

scenarios
Theophile Terraz 2025-11-28 16:08:54 +01:00
parent 81c6d39c1a
commit f7e563e71a
3 changed files with 36 additions and 1 deletions

View File

@ -31,7 +31,7 @@ class Scenario(SQLSubModel):
id: int = -1,
name: str = "",
description: str = "",
x: int = 0.0, y: int = 0.0,
x: int = 1000.0, y: int = 1000.0,
revision: int = 0,
parent=None):
super(Scenario, self).__init__()

View File

@ -1206,6 +1206,31 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
Returns:
Nothing
"""
if self._study is None:
return
if self._study.filename is None or self._study.filename == "":
self.message_box(
window_title=self._trad["Warning"],
text=self._trad["mb_unsaved_study_title"],
informative_text=self._trad["mb_unsaved_studyh_msg"]
)
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
file_name, _ = QFileDialog.getSaveFileName(
self, "Save File",
"", "Pamhyr(*.pamhyr)",
options=options,
)
if file_name is None or file_name == "":
return
if file_name.rsplit(".", 1)[-1] == "pamhyr":
self._study.filename = file_name
else:
self._study.filename = file_name + ".pamhyr"
if self._study is not None:
if self.sub_window_exists(
ScenariosWindow,

View File

@ -266,6 +266,16 @@ class MainTranslate(UnitTranslate):
"incompatible study version"
)
self._dict["mb_unsaved_study_title"] = _translate(
"MainWindow", "Open scenarios window"
)
self._dict["mb_unsaved_studyh_msg"] = _translate(
"MainWindow",
"You must save your study to open "
"the scenario windows"
)
self._dict["x"] = _translate("MainWindow", "X (m)")
self._dict["y"] = _translate("MainWindow", "Y (m)")
self._dict["Yes"] = _translate("MainWindow", "Yes")