diff --git a/b_asic/_preferences.py b/b_asic/_preferences.py index f1e9e757769e89db0f55fcae03f74348531efb01..53857f98f27a4136d587daf85e96eba021b2728c 100644 --- a/b_asic/_preferences.py +++ b/b_asic/_preferences.py @@ -5,3 +5,7 @@ SIGNAL_COLOR = (0, 0, 0) SIGNAL_LINEWIDTH = 1.0 OPERATION_GAP = 0.5 + +SCHEDULE_OFFSET = 0.2 + +SPLINE_OFFSET = 0.2 diff --git a/b_asic/schedule.py b/b_asic/schedule.py index 0cfabd0c6a329605b3071aae795a0b36af694501..129ce92b3105218596f969d747e21ed3bfcb84fc 100644 --- a/b_asic/schedule.py +++ b/b_asic/schedule.py @@ -21,8 +21,10 @@ from b_asic._preferences import ( EXECUTION_TIME_COLOR, LATENCY_COLOR, OPERATION_GAP, + SCHEDULE_OFFSET, SIGNAL_COLOR, SIGNAL_LINEWIDTH, + SPLINE_OFFSET, ) from b_asic.graph_component import GraphID from b_asic.operation import Operation @@ -483,27 +485,27 @@ class Schedule: if end[0] < start[0] or laps > 0: # Wrap around if start not in line_cache: line = Line2D( - [start[0], self._schedule_time + 0.2], + [start[0], self._schedule_time + SCHEDULE_OFFSET], [start[1], start[1]], color=_SIGNAL_COLOR, lw=SIGNAL_LINEWIDTH, ) ax.add_line(line) ax.text( - self._schedule_time + 0.2, + self._schedule_time + SCHEDULE_OFFSET, start[1], name, verticalalignment="center", ) line = Line2D( - [-0.2, end[0]], + [-SCHEDULE_OFFSET, end[0]], [end[1], end[1]], color=_SIGNAL_COLOR, lw=SIGNAL_LINEWIDTH, ) ax.add_line(line) ax.text( - -0.2, + -SCHEDULE_OFFSET, end[1], f"{name}: {laps}", verticalalignment="center", @@ -515,11 +517,11 @@ class Schedule: p = Path( [ start, - [start[0] + 0.2, start[1]], - [start[0] + 0.2, (start[1] + end[1]) / 2], + [start[0] + SPLINE_OFFSET, start[1]], + [start[0] + SPLINE_OFFSET, (start[1] + end[1]) / 2], [start[0], (start[1] + end[1]) / 2], - [start[0] - 0.2, (start[1] + end[1]) / 2], - [start[0] - 0.2, end[1]], + [start[0] - SPLINE_OFFSET, (start[1] + end[1]) / 2], + [start[0] - SPLINE_OFFSET, end[1]], end, ], [ diff --git a/b_asic/scheduler_gui/_preferences.py b/b_asic/scheduler_gui/_preferences.py index f35837c3e1007287c4abbad26bfeda5d45e43228..72d117d193a1c9f50c20b7d3f84912b2de232cca 100644 --- a/b_asic/scheduler_gui/_preferences.py +++ b/b_asic/scheduler_gui/_preferences.py @@ -16,4 +16,8 @@ OPERATION_EXECUTION_TIME_INACTIVE = QColor(*EXECUTION_TIME_COLOR) OPERATION_EXECUTION_TIME_ACTIVE = QColor(*EXECUTION_TIME_COLOR) OPERATION_HEIGHT = 0.75 -OPERATION_GAP = 0.25 +OPERATION_GAP = ( + 1 - OPERATION_HEIGHT +) # TODO: For now, should really fix the bug + +SCHEDULE_INDENT = 0.2 diff --git a/b_asic/scheduler_gui/axes_item.py b/b_asic/scheduler_gui/axes_item.py index bd695698f02116497a2edb3228c9af2610ab9cf4..63b2ebd6cb8e23a2cf3e3e1ce95ecab85c015ccc 100644 --- a/b_asic/scheduler_gui/axes_item.py +++ b/b_asic/scheduler_gui/axes_item.py @@ -20,6 +20,7 @@ from qtpy.QtWidgets import ( ) # B-ASIC +from b_asic.scheduler_gui._preferences import SCHEDULE_INDENT from b_asic.scheduler_gui.timeline_item import TimelineItem @@ -51,8 +52,8 @@ class AxesItem(QGraphicsItemGroup): self, width: int, height: int, - width_indent: float = 0.2, - height_indent: float = 0.2, + width_indent: float = SCHEDULE_INDENT, + height_indent: float = SCHEDULE_INDENT, width_padding: float = 0.6, height_padding: float = 0.5, parent: Optional[QGraphicsItem] = None, diff --git a/b_asic/scheduler_gui/scheduler_item.py b/b_asic/scheduler_gui/scheduler_item.py index 6819c528137bc04e104c325c82395488a019e91e..bfa7c647c06f94adb63b5fd426b8cb9d91767d48 100644 --- a/b_asic/scheduler_gui/scheduler_item.py +++ b/b_asic/scheduler_gui/scheduler_item.py @@ -17,7 +17,11 @@ from qtpy.QtWidgets import QGraphicsItem, QGraphicsItemGroup from b_asic.operation import Operation from b_asic.port import InputPort from b_asic.schedule import Schedule -from b_asic.scheduler_gui._preferences import OPERATION_GAP, OPERATION_HEIGHT +from b_asic.scheduler_gui._preferences import ( + OPERATION_GAP, + OPERATION_HEIGHT, + SCHEDULE_INDENT, +) from b_asic.scheduler_gui.axes_item import AxesItem from b_asic.scheduler_gui.operation_item import OperationItem from b_asic.scheduler_gui.scheduler_event import SchedulerEvent @@ -63,7 +67,7 @@ class SchedulerItem(SchedulerEvent, QGraphicsItemGroup): # PySide2 / PyQt5 self._schedule = schedule self._axes = None self._operation_items = {} - self._x_axis_indent = 0.2 + self._x_axis_indent = SCHEDULE_INDENT self._event_items = [] self._signal_dict = defaultdict(set) self._make_graph() diff --git a/b_asic/scheduler_gui/signal_item.py b/b_asic/scheduler_gui/signal_item.py index cc269f3c5163a35e100c88bd6c4fee5f424213f9..b8ca7337adae75a640bbaf249d2e265048c1eec1 100644 --- a/b_asic/scheduler_gui/signal_item.py +++ b/b_asic/scheduler_gui/signal_item.py @@ -5,6 +5,7 @@ from qtpy.QtGui import QPainterPath, QPen from qtpy.QtWidgets import QGraphicsItem, QGraphicsPathItem from b_asic.scheduler_gui._preferences import ( + SCHEDULE_INDENT, SIGNAL_ACTIVE, SIGNAL_INACTIVE, SIGNAL_WIDTH, @@ -58,7 +59,7 @@ class SignalItem(QGraphicsPathItem): dest_x - source_x <= -0.1 or self.parentItem().schedule._laps[self._signal.graph_id] ): - offset = 0.2 # TODO: Get from parent/axes... + offset = SCHEDULE_INDENT # TODO: Get from parent/axes... laps = self.parentItem().schedule._laps[self._signal.graph_id] path.lineTo( self.parentItem().schedule.schedule_time + offset, source_y