From 4b82234e9812d92b5a2f248b33b3a3c2ffa02ef4 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby Date: Mon, 11 Sep 2023 09:37:04 +0200 Subject: [PATCH] paper: Add patch for simhydro paper --- .../2023/simhydro/ajustement-for-paper.patch | 635 ++++++++++++++++++ 1 file changed, 635 insertions(+) create mode 100644 doc/paper/2023/simhydro/ajustement-for-paper.patch diff --git a/doc/paper/2023/simhydro/ajustement-for-paper.patch b/doc/paper/2023/simhydro/ajustement-for-paper.patch new file mode 100644 index 00000000..b4466e69 --- /dev/null +++ b/doc/paper/2023/simhydro/ajustement-for-paper.patch @@ -0,0 +1,635 @@ +diff --git a/packages/linux.sh b/packages/linux.sh +index 215047e..a19bfb6 100755 +--- a/packages/linux.sh ++++ b/packages/linux.sh +@@ -76,11 +76,11 @@ mv ../pamhyr-src.tar.gz ./ + + echo " *** MAKE BIN PACKAGE" + +-OLD_PWD=$PWD +-cd dist/ +-tar --xz -cf pamhyr-gnulinux-amd64.tar.xz pamhyr --checkpoint=.100 +-cd $OLD_PWD ++# OLD_PWD=$PWD ++# cd dist/ ++# tar --xz -cf pamhyr-gnulinux-amd64.tar.xz pamhyr --checkpoint=.100 ++# cd $OLD_PWD + +-mv dist/pamhyr-gnulinux-amd64.tar.xz ./ ++# mv dist/pamhyr-gnulinux-amd64.tar.xz ./ + + echo " *** DONE" +diff --git a/src/Model/Friction/Friction.py b/src/Model/Friction/Friction.py +index 18167a8..5bf2302 100644 +--- a/src/Model/Friction/Friction.py ++++ b/src/Model/Friction/Friction.py +@@ -170,6 +170,7 @@ class Friction(SQLSubModel): + @begin_strickler.setter + def begin_strickler(self, strickler): + self._begin_strickler = strickler ++ self._end_strickler = strickler # HACK: Only one Strickler + self._status.modified() + + @property +diff --git a/src/Model/Stricklers/Stricklers.py b/src/Model/Stricklers/Stricklers.py +index baa484f..a5670d2 100644 +--- a/src/Model/Stricklers/Stricklers.py ++++ b/src/Model/Stricklers/Stricklers.py +@@ -38,7 +38,7 @@ class Stricklers(SQLSubModel): + else: + self.id = id + +- Stricklers._id_cnt = max(Stricklers._id_cnt + 1, self.id) ++ Stricklers._id_cnt = max(Stricklers._id_cnt + 1, id + 1) + + self._name = name + self._comment = comment +diff --git a/src/View/BoundaryCondition/translate.py b/src/View/BoundaryCondition/translate.py +index c4ff8f8..172999a 100644 +--- a/src/View/BoundaryCondition/translate.py ++++ b/src/View/BoundaryCondition/translate.py +@@ -29,9 +29,9 @@ _translate = QCoreApplication.translate + long_types = { + "ND": _translate("BoundaryCondition", "Not defined"), + "PC": _translate("BoundaryCondition", "Ponctual contribution"), +- "TZ": _translate("BoundaryCondition", "Time over Z"), +- "TD": _translate("BoundaryCondition", "Time over Discharge"), +- "ZD": _translate("BoundaryCondition", "Z over Discharge"), ++ "TZ": _translate("BoundaryCondition", "TimeZ"), ++ "TD": _translate("BoundaryCondition", "TimeDischarge"), ++ "ZD": _translate("BoundaryCondition", "ZDischarge"), + "SL": _translate("BoundaryCondition", "Solid"), + } + +diff --git a/src/View/Frictions/PlotStricklers.py b/src/View/Frictions/PlotStricklers.py +index 71ff6e6..b9060bc 100644 +--- a/src/View/Frictions/PlotStricklers.py ++++ b/src/View/Frictions/PlotStricklers.py +@@ -106,6 +106,8 @@ class PlotStricklers(APlot): + ) + self.draw_frictions(lst, color="b") + ++ self.canvas.axes.invert_xaxis() ++ + self.canvas.figure.tight_layout() + self.canvas.figure.canvas.draw_idle() + if self.toolbar is not None: +diff --git a/src/View/Frictions/Window.py b/src/View/Frictions/Window.py +index 4af3b66..f46fae3 100644 +--- a/src/View/Frictions/Window.py ++++ b/src/View/Frictions/Window.py +@@ -112,10 +112,10 @@ class FrictionsWindow(ASubMainWindow, ListedSubWindow): + ) + + table.setItemDelegateForColumn( +- 3, self._delegate_stricklers ++ 2, self._delegate_stricklers + ) + table.setItemDelegateForColumn( +- 4, self._delegate_stricklers ++ 3, self._delegate_stricklers + ) + + table.setSelectionBehavior(QAbstractItemView.SelectRows) +diff --git a/src/View/Frictions/translate.py b/src/View/Frictions/translate.py +index 21981ab..82071e9 100644 +--- a/src/View/Frictions/translate.py ++++ b/src/View/Frictions/translate.py +@@ -21,10 +21,10 @@ from PyQt5.QtCore import QCoreApplication + _translate = QCoreApplication.translate + + table_headers = { +- "name": _translate("Frictions", "Name"), ++ # "name": _translate("Frictions", "Name"), + # "edge": _translate("Frictions", "Reach"), + "begin_kp": _translate("Frictions", "Begin kp (m)"), + "end_kp": _translate("Frictions", "End kp (m)"), +- "begin_strickler": _translate("Frictions", "Begin strickler"), +- "end_strickler": _translate("Frictions", "End strickler"), ++ "begin_strickler": _translate("Frictions", "Strickler"), ++ # "end_strickler": _translate("Frictions", "End strickler"), + } +diff --git a/src/View/Geometry/PlotKPZ.py b/src/View/Geometry/PlotKPZ.py +index eb7d5e2..64057aa 100644 +--- a/src/View/Geometry/PlotKPZ.py ++++ b/src/View/Geometry/PlotKPZ.py +@@ -158,6 +158,8 @@ class PlotKPZ(APlot): + color='lightgrey' + ) + ++ self.canvas.axes.invert_xaxis() ++ + self.canvas.figure.tight_layout() + self.canvas.figure.canvas.draw_idle() + if self.toolbar is not None: +diff --git a/src/View/Geometry/Window.py b/src/View/Geometry/Window.py +index 7776d73..1c8cb5d 100644 +--- a/src/View/Geometry/Window.py ++++ b/src/View/Geometry/Window.py +@@ -111,7 +111,7 @@ class GeometryWindow(ASubMainWindow, ListedSubWindow): + self.ui.btn_sort_desc.triggered.connect(self.sort_descending) + self.ui.btn_move_up.triggered.connect(self.move_row_up) + self.ui.btn_move_down.triggered.connect(self.move_row_down) +- self.ui.btn_end_editing.triggered.connect(self.handleSave) ++ # self.ui.btn_end_editing.triggered.connect(self.handleSave) + self.ui.btn_add.triggered.connect(self.insert_row) + self.ui.btn_delete.triggered.connect(self.delete_rows) + self.ui.btn_edit.triggered.connect(self.edit_profile) +diff --git a/src/View/Geometry/mainwindow_ui_reach.py b/src/View/Geometry/mainwindow_ui_reach.py +index 897b698..60bcfa6 100644 +--- a/src/View/Geometry/mainwindow_ui_reach.py ++++ b/src/View/Geometry/mainwindow_ui_reach.py +@@ -95,29 +95,29 @@ class Ui_MainWindow(object): + self.btn_edit.setIcon(icon_btn_edit) + self.toolBar.addAction(self.btn_edit) + +- self.btn_copy_selected_profile = QtWidgets.QAction(self.widget) +- self.btn_copy_selected_profile.setObjectName("btn_copy_selected_profile") +- icon_btn_copy_selected_profile = QtGui.QIcon() +- icon_btn_copy_selected_profile.addPixmap( +- QtGui.QPixmap(f"{icon_path}gtk-copy.png")) +- self.btn_copy_selected_profile.setIcon(icon_btn_copy_selected_profile) +- self.toolBar.addAction(self.btn_copy_selected_profile) +- +- self.btn_paste_selected_profile = QtWidgets.QAction(self.widget) +- self.btn_paste_selected_profile.setObjectName("btn_paste_selected_profile") +- icon_btn_paste_selected_profile = QtGui.QIcon() +- icon_btn_paste_selected_profile.addPixmap( +- QtGui.QPixmap(f"{icon_path}gtk-paste.png")) +- self.btn_paste_selected_profile.setIcon(icon_btn_paste_selected_profile) +- self.toolBar.addAction(self.btn_paste_selected_profile) +- +- self.btn_duplicate_selected_profile = QtWidgets.QAction(self.widget) +- self.btn_duplicate_selected_profile.setObjectName("btn_duplicate_selected_profile") +- icon_btn_duplicate_selected_profile = QtGui.QIcon() +- icon_btn_duplicate_selected_profile.addPixmap( +- QtGui.QPixmap(f"{icon_path}gtk-dnd-multiple.png")) +- self.btn_duplicate_selected_profile.setIcon(icon_btn_duplicate_selected_profile) +- self.toolBar.addAction(self.btn_duplicate_selected_profile) ++ # self.btn_copy_selected_profile = QtWidgets.QAction(self.widget) ++ # self.btn_copy_selected_profile.setObjectName("btn_copy_selected_profile") ++ # icon_btn_copy_selected_profile = QtGui.QIcon() ++ # icon_btn_copy_selected_profile.addPixmap( ++ # QtGui.QPixmap(f"{icon_path}gtk-copy.png")) ++ # self.btn_copy_selected_profile.setIcon(icon_btn_copy_selected_profile) ++ # self.toolBar.addAction(self.btn_copy_selected_profile) ++ ++ # self.btn_paste_selected_profile = QtWidgets.QAction(self.widget) ++ # self.btn_paste_selected_profile.setObjectName("btn_paste_selected_profile") ++ # icon_btn_paste_selected_profile = QtGui.QIcon() ++ # icon_btn_paste_selected_profile.addPixmap( ++ # QtGui.QPixmap(f"{icon_path}gtk-paste.png")) ++ # self.btn_paste_selected_profile.setIcon(icon_btn_paste_selected_profile) ++ # self.toolBar.addAction(self.btn_paste_selected_profile) ++ ++ # self.btn_duplicate_selected_profile = QtWidgets.QAction(self.widget) ++ # self.btn_duplicate_selected_profile.setObjectName("btn_duplicate_selected_profile") ++ # icon_btn_duplicate_selected_profile = QtGui.QIcon() ++ # icon_btn_duplicate_selected_profile.addPixmap( ++ # QtGui.QPixmap(f"{icon_path}gtk-dnd-multiple.png")) ++ # self.btn_duplicate_selected_profile.setIcon(icon_btn_duplicate_selected_profile) ++ # self.toolBar.addAction(self.btn_duplicate_selected_profile) + + self.btn_sort_asc = QtWidgets.QAction(self.widget) + self.btn_sort_asc.setObjectName("btn_sort_asc") +@@ -151,13 +151,13 @@ class Ui_MainWindow(object): + self.btn_move_down.setIcon(icon_btn_move_down) + self.toolBar.addAction(self.btn_move_down) + +- self.btn_end_editing = QtWidgets.QAction(self.widget) +- self.btn_end_editing.setObjectName("btn_end_editing") +- icon_btn_save = QtGui.QIcon() +- icon_btn_save.addPixmap( +- QtGui.QPixmap(f"{icon_path}gtk-apply.png")) +- self.btn_end_editing.setIcon(icon_btn_save) +- self.toolBar.addAction(self.btn_end_editing) ++ # self.btn_end_editing = QtWidgets.QAction(self.widget) ++ # self.btn_end_editing.setObjectName("btn_end_editing") ++ # icon_btn_save = QtGui.QIcon() ++ # icon_btn_save.addPixmap( ++ # QtGui.QPixmap(f"{icon_path}gtk-apply.png")) ++ # self.btn_end_editing.setIcon(icon_btn_save) ++ # self.toolBar.addAction(self.btn_end_editing) + + self.verticalLayout.addLayout(self.horizontalLayout) + self.tableView = QtWidgets.QTableView(self.widget) +@@ -314,30 +314,23 @@ class Ui_MainWindow(object): + def retranslateUi(self, MainWindow_reach): + _translate = QtCore.QCoreApplication.translate + self.name_reach = "" +- self.mainwindow_title = _translate("MainWindow_reach", "Jeu de sections du Bief") ++ self.mainwindow_title = _translate("MainWindow_reach", "Geometry reach edit") + MainWindow_reach.setWindowTitle(self.mainwindow_title + f"{self.name_reach}") +- self.text_section_order = _translate("MainWindow_reach", "\nOrdre des sections : " +- "Amont --> Aval") + # self.label_section_order.setText(f"{self.text_section_order}") + self.vertical_slider_value = "" +- self.vertical_slider_label.setText(_translate("MainWindow_reach", "Pk = ") + f"{self.vertical_slider_value}") +- self.btn_open.setToolTip(_translate("MainWindow_reach", " Importer une géométrie")) +- self.btn_add.setToolTip(_translate("MainWindow_reach", " Nouveau profil")) +- self.btn_delete.setToolTip(_translate("MainWindow_reach", " Supprimer le profil sélectionné")) +- self.btn_edit.setToolTip(_translate("MainWindow_reach", " Éditer le profil sélectionné")) +- self.btn_copy_selected_profile.setToolTip(_translate("MainWindow_reach", " Copier le profil sélectionné")) +- self.btn_paste_selected_profile.setToolTip(_translate("MainWindow_reach", "Coller le profil en fin de liste (" +- "penser à modifier le Pk avant de " +- "trier)")) +- self.btn_duplicate_selected_profile.setToolTip( +- _translate("MainWindow_reach", " Dupliquer la section sélectionnée")) ++ self.vertical_slider_label.setText(_translate("MainWindow_reach", "Kp = ") + f"{self.vertical_slider_value}") ++ self.btn_open.setToolTip(_translate("MainWindow_reach", " Import geometry")) ++ self.btn_add.setToolTip(_translate("MainWindow_reach", " New profile")) ++ self.btn_delete.setToolTip(_translate("MainWindow_reach", " Delete selected profile")) ++ self.btn_edit.setToolTip(_translate("MainWindow_reach", " Editer selected profile")) ++ + self.btn_sort_asc.setToolTip(_translate("MainWindow_reach", " Trier les profils par ordre croissant des Pk")) + self.btn_sort_desc.setToolTip(_translate("MainWindow_reach", " Trier les profils par ordre décroissant des Pk")) + self.btn_move_up.setToolTip(_translate("MainWindow_reach", " Changer l'ordre des profils (en décalant le " + "profil sélectionné vers le haut)")) + self.btn_move_down.setToolTip(_translate("MainWindow_reach", " Changer l'ordre des profils (en décalant le " + "profil sélectionné vers le bas)")) +- self.btn_end_editing.setToolTip(_translate("MainWindow_reach", " Terminer l'édition")) ++ # self.btn_end_editing.setToolTip(_translate("MainWindow_reach", " Terminer l'édition")) + self.tableView_header = [_translate("MainWindow_reach", "Name"), + _translate("MainWindow_reach", "Kp (m)"), + _translate("MainWindow_reach", "Type")] +diff --git a/src/View/InitialConditions/PlotDKP.py b/src/View/InitialConditions/PlotDKP.py +index 58a8321..445cc08 100644 +--- a/src/View/InitialConditions/PlotDKP.py ++++ b/src/View/InitialConditions/PlotDKP.py +@@ -71,6 +71,8 @@ class PlotDKP(APlot): + color='b', marker='+', lw=1. + ) + ++ self.canvas.axes.invert_xaxis() ++ + self.canvas.figure.tight_layout() + self.canvas.figure.canvas.draw_idle() + if self.toolbar is not None: +diff --git a/src/View/InitialConditions/PlotDischarge.py b/src/View/InitialConditions/PlotDischarge.py +index 1fe05de..0703c59 100644 +--- a/src/View/InitialConditions/PlotDischarge.py ++++ b/src/View/InitialConditions/PlotDischarge.py +@@ -65,6 +65,8 @@ class PlotDischarge(APlot): + color='r', lw=1. + ) + ++ self.canvas.axes.invert_xaxis() ++ + self.canvas.figure.tight_layout() + self.canvas.figure.canvas.draw_idle() + if self.toolbar is not None: +diff --git a/src/View/InitialConditions/translate.py b/src/View/InitialConditions/translate.py +index 370d4a2..3fe45f7 100644 +--- a/src/View/InitialConditions/translate.py ++++ b/src/View/InitialConditions/translate.py +@@ -21,11 +21,11 @@ from PyQt5.QtCore import QCoreApplication + _translate = QCoreApplication.translate + + table_headers = { +- "name": _translate("LateralContribution", "Name"), ++ # "name": _translate("LateralContribution", "Name"), + "kp": _translate("LateralContribution", "KP (m)"), + # "speed": _translate("LateralContribution", "Speed (m/s)"), + "discharge": _translate("LateralContribution", "Discharge (m³/s)"), + "elevation": _translate("LateralContribution", "Elevation (m)"), + "height": _translate("LateralContribution", "Height (m)"), +- "comment": _translate("LateralContribution", "Comment"), ++ # "comment": _translate("LateralContribution", "Comment"), + } +diff --git a/src/View/SedimentLayers/Edit/translate.py b/src/View/SedimentLayers/Edit/translate.py +index fe9e44a..f9f02cb 100644 +--- a/src/View/SedimentLayers/Edit/translate.py ++++ b/src/View/SedimentLayers/Edit/translate.py +@@ -6,7 +6,7 @@ _translate = QCoreApplication.translate + + table_headers = { + "name": _translate("SedimentLayers", "Name"), +- "type": _translate("SedimentLayers", "Type"), ++ # "type": _translate("SedimentLayers", "Type"), + "height": _translate("Sedimentlayers", "Height"), + "d50": _translate("Sedimentlayers", "D50"), + "sigma": _translate("Sedimentlayers", "Sigma"), +diff --git a/src/View/SedimentLayers/Reach/Plot.py b/src/View/SedimentLayers/Reach/Plot.py +index a312a8c..5764abf 100644 +--- a/src/View/SedimentLayers/Reach/Plot.py ++++ b/src/View/SedimentLayers/Reach/Plot.py +@@ -78,6 +78,8 @@ class Plot(APlot): + color='grey' if i == len(z_sl) - 1 else None + ) + ++ self.canvas.axes.invert_xaxis() ++ + self.canvas.figure.tight_layout() + self.canvas.figure.canvas.draw_idle() + if self.toolbar is not None: +diff --git a/src/lang/fr.ts b/src/lang/fr.ts +index 8034809..35d3439 100644 +--- a/src/lang/fr.ts ++++ b/src/lang/fr.ts +@@ -60,21 +60,6 @@ + Ponctual contribution + Contributions ponctuelles + +- +- +- Time over Z +- +- +- +- +- Time over Discharge +- +- +- +- +- Z over Discharge +- +- + + + Name +@@ -110,6 +95,21 @@ + Solid + Solide + ++ ++ ++ TimeZ ++ ++ ++ ++ ++ TimeDischarge ++ ++ ++ ++ ++ ZDischarge ++ ++ + + + Checker +@@ -533,7 +533,7 @@ + + + Name +- Nom ++ Nom + + + +@@ -548,12 +548,17 @@ + + + Begin strickler +- strickler de départ ++ strickler de départ + + + + End strickler +- Strickler de fin ++ Strickler de fin ++ ++ ++ ++ Strickler ++ + + + +@@ -587,7 +592,7 @@ + + LateralContribution + +- ++ + Name + Nom + +@@ -602,7 +607,7 @@ + Lit moyen + + +- ++ + Comment + Commentaire + +@@ -1715,7 +1720,7 @@ sur le plan défini par les deux points nommés extrêmes + + + +- ++ + MainWindow_reach + + +@@ -1723,7 +1728,7 @@ sur le plan défini par les deux points nommés extrêmes + + + +- ++ + Kp (m) + Pk (m) + +@@ -1778,68 +1783,47 @@ sur le plan défini par les deux points nommés extrêmes + + + +- +- Jeu de sections du Bief +- +- +- +- +- +-Ordre des sections : Amont --> Aval +- +- +- +- +- Pk = +- +- +- +- +- Nouveau profil +- +- +- +- ++ + Trier les profils par ordre croissant des Pk + + + +- ++ + Name + Nom + + +- ++ + Type + Type + + +- ++ + Alt+Z + + + +- ++ + Alt+E + + + +- ++ + Alt+R + + + +- ++ + Vue globale automatique (Alt+S) + + + +- ++ + Vue globale automatique (Alt+D) + + + +- ++ + Vue globale automatique (Alt+F) + + +@@ -1889,68 +1873,33 @@ Seuls les 5 premiers seront édités. + Profil sélectionné + + +- +- +- Importer une géométrie +- +- +- +- +- Supprimer le profil sélectionné +- +- +- +- +- Éditer le profil sélectionné +- +- + + +- Copier le profil sélectionné +- +- +- +- +- Coller le profil en fin de liste (penser à modifier le Pk avant de trier) +- +- +- +- +- Dupliquer la section sélectionnée +- +- +- +- + Trier les profils par ordre décroissant des Pk + + + +- ++ + Changer l'ordre des profils (en décalant le profil sélectionné vers le haut) + + + +- ++ + Changer l'ordre des profils (en décalant le profil sélectionné vers le bas) + + + +- +- Terminer l'édition +- +- +- +- ++ + Vue isométrique (Alt+Z) + + + +- ++ + Vue isométrique (Alt+E) + + + +- ++ + Vue isométrique (Alt+R) + + +@@ -1969,6 +1918,36 @@ Seuls les 5 premiers seront édités. + Select destination file + + ++ ++ ++ Geometry reach edit ++ ++ ++ ++ ++ Kp = ++ ++ ++ ++ ++ Import geometry ++ ++ ++ ++ ++ New profile ++ ++ ++ ++ ++ Delete selected profile ++ ++ ++ ++ ++ Editer selected profile ++ ++ + + + Network +@@ -2071,7 +2050,7 @@ Seuls les 5 premiers seront édités. + + + Type +- Type ++ Type + + +