Skip to content
Snippets Groups Projects
Commit d3e9250e authored by Oscar Gustafsson's avatar Oscar Gustafsson :bicyclist:
Browse files

Fix reverse wrapping

parent f1d41cb0
No related branches found
No related tags found
No related merge requests found
Pipeline #88025 passed
......@@ -229,8 +229,14 @@ class GraphicsGraphEvent: # PyQt5
self.set_item_inactive(item)
self.set_new_starttime(item)
pos = item.x()
redraw = False
if pos < 0:
pos += self.schedule.schedule_time
redraw = True
if pos > self.schedule.schedule_time:
pos = pos % self.schedule.schedule_time
redraw = True
if redraw:
item.setX(pos)
self._redraw_lines(item)
......
......@@ -79,19 +79,20 @@ class GraphicsGraphItem(
slacks = self.schedule.slacks(item.op_id)
op_start_time = self.schedule.start_time_of_operation(item.op_id)
if not -slacks[0] <= new_start_time - op_start_time <= slacks[1]:
# Cannot move due to dependencies
return False
if pos < 0:
return False
if (
self.schedule.cyclic
and new_start_time > self.schedule.schedule_time + 1
):
return False
if (
not self.schedule.cyclic
and new_start_time + end_time > self.schedule.schedule_time + 1
):
return False
if self.schedule.cyclic:
if new_start_time < -1:
# Moving one position before left edge => wrap
return False
if new_start_time > self.schedule.schedule_time + 1:
# Moving one position after schedule_time => wrap
return False
else:
if pos < 0:
return False
if new_start_time + end_time > self.schedule.schedule_time:
return False
return True
......@@ -137,6 +138,10 @@ class GraphicsGraphItem(
self.schedule.schedule_time + delta_time
)
self._axes.set_width(self._axes.width + delta_time)
# Redraw all lines
for signals in self._signal_dict.values():
for signal in signals:
signal.update_path()
@property
def schedule(self) -> Schedule:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment