コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
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