def __init__(self, parent: QWidget, resource_database: ResourceDatabase, requirement_set: Optional[RequirementSet]): super().__init__(parent) self.setupUi(self) set_default_window_icon(self) self._connections_visualizer = ConnectionsVisualizer( self.visualizer_contents, self.gridLayout, resource_database, requirement_set, True, num_columns_for_alternatives=1 ) self.new_alternative_button.clicked.connect(self._connections_visualizer.new_alternative)
def update_connections(self): current_node = self.current_node current_connection_node = self.current_connection_node assert current_node is not None assert current_node != current_connection_node if self._connections_visualizer is not None: self._connections_visualizer.deleteLater() self._connections_visualizer = None if current_connection_node is None: assert len(self.current_area.nodes) == 1 return requirement_set = self.current_area.connections[self.current_node].get( self.current_connection_node) self._connections_visualizer = ConnectionsVisualizer( self.other_node_alternatives_contents, self.alternatives_grid_layout, self.resource_database, requirement_set, False)
class ConnectionsEditor(QDialog, Ui_ConnectionEditor): def __init__(self, parent: QWidget, resource_database: ResourceDatabase, requirement_set: Optional[RequirementSet]): super().__init__(parent) self.setupUi(self) set_default_window_icon(self) self._connections_visualizer = ConnectionsVisualizer( self.visualizer_contents, self.gridLayout, resource_database, requirement_set, True, num_columns_for_alternatives=1 ) self.new_alternative_button.clicked.connect(self._connections_visualizer.new_alternative) @property def final_requirement_set(self) -> Optional[RequirementSet]: result = self._connections_visualizer.build_requirement_set() if result == RequirementSet.impossible(): return None return result