diff --git a/src/Model/Scenario.py b/src/Model/Scenario.py index 594bd3d7..fa679de8 100644 --- a/src/Model/Scenario.py +++ b/src/Model/Scenario.py @@ -52,18 +52,6 @@ class Scenario(SQLSubModel): self._id + 1, Scenario._id_cnt + 1 ) - @property - def id(self): - return self._id - - @property - def x(self): - return self._x - - @property - def y(self): - return self._y - @classmethod def _db_create(cls, execute): execute(""" @@ -116,7 +104,7 @@ class Scenario(SQLSubModel): ) execute( f"ALTER TABLE scenario " + - "ADD COLUMN x REAL NOT NULL DEFAULT 1000" + "ADD COLUMN y REAL NOT NULL DEFAULT 1000" ) return True @@ -186,6 +174,18 @@ class Scenario(SQLSubModel): return True + @property + def id(self): + return self._id + + @property + def x(self): + return self._x + + @property + def y(self): + return self._y + @property def name(self): if self._name == "": @@ -193,6 +193,11 @@ class Scenario(SQLSubModel): return self._name + @name.setter + def name(self, name): + self._name = name + # self.modified() + @property def description(self): if self._description == "": @@ -200,6 +205,11 @@ class Scenario(SQLSubModel): return self._description + @description.setter + def description(self, description): + self._description = description + # self.modified() + @property def revision(self): return self._revision @@ -207,16 +217,24 @@ class Scenario(SQLSubModel): @revision.setter def revision(self, revision): self._revision = revision + # self.modified() @property def parent(self): return self._parent + def set_pos(self, x, y): + self._x = x + self._y = y + # self.modified() + def __setitem__(self, key, value): if key == "name": self.name = value - if key == "description": - self.description = description + elif key == "description": + self.description = value + + # self.modified() def __getitem__(self, key): if key == "name": diff --git a/src/View/Scenarios/GraphWidget.py b/src/View/Scenarios/GraphWidget.py index b61a654e..c5ac6374 100644 --- a/src/View/Scenarios/GraphWidget.py +++ b/src/View/Scenarios/GraphWidget.py @@ -66,12 +66,6 @@ class ScenarioItem(QGraphicsTextItem): def type(self): return ScenarioItem.Type - def set_custom_pos(self, pos): - x = pos.x() - y = pos.y() - - self.setPos(QPointF(x, y)) - @timer def paint(self, painter, option, widget): color = QColor(Qt.white) @@ -83,6 +77,9 @@ class ScenarioItem(QGraphicsTextItem): super(ScenarioItem, self).paint(painter, option, widget) def itemChange(self, change, value): + if change == QGraphicsItem.ItemPositionHasChanged: + self.scenario.set_pos(value.x(), value.y()) + self.graph.edges_display_update() return super(ScenarioItem, self).itemChange(change, value) @@ -188,8 +185,7 @@ class GraphWidget(QGraphicsView): def __init__(self, graph, parent=None, min_size=(400, 400), max_size=None, - size=None, only_display=False, undo=None, - trad=None): + size=None, undo=None, trad=None): super(GraphWidget, self).__init__(parent=parent) self.parent = parent @@ -296,11 +292,8 @@ class GraphWidget(QGraphicsView): # Contextual menu def contextMenuEvent(self, event): - if self._only_display: - return - - # pos = self.mapToScene(event.pos()) - # items = self.items(event.pos()) + pos = self.mapToScene(event.pos()) + items = self.items(event.pos()) # # Select current menu # while len(items) > 0: