river, network: Minor fix and change.

mesh
Pierre-Antoine Rouby 2023-04-05 15:25:10 +02:00
parent 150388af12
commit b6dbedf7fa
4 changed files with 49 additions and 13 deletions

View File

@ -15,7 +15,14 @@ class RiverNode(Node):
x, y x, y
) )
self.locker = None self._locker = None
def locker(self):
return self._locker
def locker(self, locker):
self._locker = locker
class RiverReach(Edge): class RiverReach(Edge):
def __init__(self, id:str, name:str, def __init__(self, id:str, name:str,
@ -26,7 +33,14 @@ class RiverReach(Edge):
node1, node2 node1, node2
) )
self.reach = None self._reach = None
def reach(self):
return self._reach
def reach(self, reach:Reach):
self._reach = reach
class River(Graph): class River(Graph):
def __init__(self): def __init__(self):
@ -38,9 +52,11 @@ class River(Graph):
self._current_reach = None self._current_reach = None
def has_current_reach(self):
return self._current_reach is not None
def current_reach(self): def current_reach(self):
return self._current_reach return self._current_reach
def current_reach(self, reach): def set_current_reach(self, reach):
self._current_reach = reach self._current_reach = reach

View File

@ -1,3 +1,5 @@
# -*- coding: utf-8 -*-
import os import os
import pathlib import pathlib
import sys import sys
@ -21,10 +23,13 @@ from View.ASubWindow import WindowToolKit
_translate = QCoreApplication.translate _translate = QCoreApplication.translate
class GeometryWindow(QMainWindow, WindowToolKit): class GeometryWindow(QMainWindow, WindowToolKit):
def __init__(self, parent=None): def __init__(self, model=None, parent=None):
self.parent = parent self.parent = parent
super(GeometryWindow, self).__init__(parent=parent) super(GeometryWindow, self).__init__(parent=parent)
self._model = model
self._reach = model.river.current_reach()
self.ui = Ui_MainWindow() self.ui = Ui_MainWindow()
self.ui.setupUi(self) self.ui.setupUi(self)
self.tableView = self.ui.tableView self.tableView = self.ui.tableView
@ -57,7 +62,7 @@ class GeometryWindow(QMainWindow, WindowToolKit):
def open_file_dialog(self): def open_file_dialog(self):
options = QFileDialog.Options() options = QFileDialog.Options()
DEFAULT_DIRECTORY = '/home/' DEFAULT_DIRECTORY = os.getenv("HOME")
settings = QSettings(QSettings.IniFormat, QSettings.UserScope, 'MyOrg', ) settings = QSettings(QSettings.IniFormat, QSettings.UserScope, 'MyOrg', )
current_dir = settings.value('current_directory', DEFAULT_DIRECTORY, type=str) current_dir = settings.value('current_directory', DEFAULT_DIRECTORY, type=str)
options |= QFileDialog.DontUseNativeDialog options |= QFileDialog.DontUseNativeDialog

View File

@ -13,6 +13,7 @@ from PyQt5.QtWidgets import (
) )
from PyQt5.uic import loadUi from PyQt5.uic import loadUi
from View.ASubWindow import WindowToolKit
from View.ListedSubWindow import ListedSubWindow from View.ListedSubWindow import ListedSubWindow
from View.DummyWindow import DummyWindow from View.DummyWindow import DummyWindow
@ -50,7 +51,7 @@ action = (
no_model_action + model_action + define_model_action no_model_action + model_action + define_model_action
) )
class ApplicationWindow(QMainWindow, ListedSubWindow): class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
def __init__(self, conf=None): def __init__(self, conf=None):
super(ApplicationWindow, self).__init__() super(ApplicationWindow, self).__init__()
@ -193,7 +194,9 @@ class ApplicationWindow(QMainWindow, ListedSubWindow):
if self.model.filename == "": if self.model.filename == "":
file_name, _ = QFileDialog.getSaveFileName( file_name, _ = QFileDialog.getSaveFileName(
self, "Save File", self, "Save File",
"", "Pamhyr(*.pkl)") "", "Pamhyr(*.pkl)"
)
if file_name[-4:] == ".pkl": if file_name[-4:] == ".pkl":
self.model.filename = file_name self.model.filename = file_name
else: else:
@ -212,7 +215,9 @@ class ApplicationWindow(QMainWindow, ListedSubWindow):
""" """
file_name, _ = QFileDialog.getSaveFileName( file_name, _ = QFileDialog.getSaveFileName(
self, "Save File", self, "Save File",
"", "Pamhyr(*.pkl)") "", "Pamhyr(*.pkl)"
)
if file_name[-4:] == ".pkl": if file_name[-4:] == ".pkl":
self.model.filename = file_name self.model.filename = file_name
else: else:
@ -301,9 +306,14 @@ class ApplicationWindow(QMainWindow, ListedSubWindow):
Returns: Returns:
Nothing Nothing
""" """
if not self.model is None: if (self.model is not None and
geometry = GeometryWindow(parent=self) self.model.river.has_current_reach()):
geometry = GeometryWindow(model=self.model, parent=self)
geometry.show() geometry.show()
else:
self.message_box("Please select a reach",
"Geometry edition need a reach selected "
"into river network window to work on it")
# TODO: Delete me ! # TODO: Delete me !
############### ###############

View File

@ -253,6 +253,8 @@ class GraphWidget(QGraphicsView):
self.parent = parent self.parent = parent
self._state = "move" self._state = "move"
self.graph = graph
self._selected_item = None self._selected_item = None
self._selected_new_edge_src_node = None self._selected_new_edge_src_node = None
self._current_edge = None self._current_edge = None
@ -276,8 +278,6 @@ class GraphWidget(QGraphicsView):
self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse) self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse)
self.setResizeAnchor(QGraphicsView.AnchorViewCenter) self.setResizeAnchor(QGraphicsView.AnchorViewCenter)
self.graph = graph
self.scale(1, 1) self.scale(1, 1)
self.previousScale = 1 self.previousScale = 1
self.setMinimumSize(400, 400) self.setMinimumSize(400, 400)
@ -301,6 +301,8 @@ class GraphWidget(QGraphicsView):
self.scene().addItem(inode) self.scene().addItem(inode)
self.node_items.append(inode) self.node_items.append(inode)
curr_edge = self.graph.current_reach()
for edge in self.graph.edges(): for edge in self.graph.edges():
n1 = list( n1 = list(
filter( filter(
@ -317,6 +319,9 @@ class GraphWidget(QGraphicsView):
) )
iedge = EdgeItem(n1[0], n2[0], edge, self) iedge = EdgeItem(n1[0], n2[0], edge, self)
if edge == curr_edge:
self._current_edge = iedge
self.scene().addItem(iedge) self.scene().addItem(iedge)
self.edge_items.append(iedge) self.edge_items.append(iedge)
@ -548,7 +553,7 @@ class GraphWidget(QGraphicsView):
""" """
previous_edge = self._current_edge previous_edge = self._current_edge
self._current_edge = edge self._current_edge = edge
self.graph.current_reach(edge.edge) self.graph.set_current_reach(edge.edge)
if previous_edge: if previous_edge:
previous_edge.update() previous_edge.update()