Ejemplo n.º 1
0
    def __init__(self, model, controller):
        QWidget.__init__(self)

        self.controller = controller
        self.model = model

        # load QtDesigner UI
        self.ui = Ui_mainWindow()
        self.ui.setupUi(self)

        #### SETUP CircuitDiagramView and controller
        self.ui.circuitDiagram.model = self.model
        self.ui.circuitDiagram.controller = self.controller

        # connect to CircuitDiagramView mouse triggers
        self.ui.circuitDiagram.mousePress.connect(
            self.controller.circuitDiagramMousePress)
        self.ui.circuitDiagram.mouseMove.connect(
            self.controller.circuitDiagramMouseMove)
        self.ui.circuitDiagram.mouseRelease.connect(
            self.controller.circuitDiagramMouseRelease)

        #### SETUP TOOLBAR
        self.ui.wireMode.clicked.connect(self.setWireMode)
        self.ui.deleteMode.clicked.connect(self.setDeleteMode)
        self.ui.selectMode.clicked.connect(self.setSelectMode)

        self.ui.runMode.clicked.connect(self.setRunMode)
        self.ui.buildMode.clicked.connect(self.setBuildMode)

        self.toolbarComponents = []
        self.ui.newBattery.componentType = ComponentType.Battery
        self.toolbarComponents.append(self.ui.newBattery)

        self.ui.newBulb.componentType = ComponentType.Bulb
        self.toolbarComponents.append(self.ui.newBulb)

        self.ui.newResistor.componentType = ComponentType.Resistor
        self.toolbarComponents.append(self.ui.newResistor)

        self.ui.newSwitch.componentType = ComponentType.Switch
        self.toolbarComponents.append(self.ui.newSwitch)

        self.ui.newButton.componentType = ComponentType.Button
        self.toolbarComponents.append(self.ui.newButton)

        self.ui.newAmmeter.componentType = ComponentType.Ammeter
        self.toolbarComponents.append(self.ui.newAmmeter)

        self.ui.newVoltmeter.componentType = ComponentType.Voltmeter
        self.toolbarComponents.append(self.ui.newVoltmeter)

        for toolbarButton in self.toolbarComponents:
            toolbarButton.setIcon(
                QIcon(
                    QPixmap(
                        self.ui.circuitDiagram.componentTypeToImageName(
                            toolbarButton.componentType))))
            toolbarButton.setIconSize(QSize(50, 50))
            toolbarButton.mousePress.connect(
                self.controller.newComponentButtonMousePress)

        self.statusBar().showMessage('Ready')

        self.ui.actionNew.setShortcut('Ctrl+N')
        self.ui.actionNew.setStatusTip('New document')

        self.ui.actionOpen.triggered.connect(self.showFileDialog)
        self.ui.actionSave.triggered.connect(self.showSaveDialog)
        self.ui.actionSaveAs.triggered.connect(self.saveAs)
        self.ui.actionNew.triggered.connect(self.newFile)
        self.ui.actionSave.setShortcut('Ctrl+S')
        self.ui.actionSaveAs.setShortcut('Ctrl+Shift+S')
        self.ui.actionOpen.setShortcut('Ctrl+O')
        self.ui.actionNew.setShortcut('Ctrl+N')

        self.savePath = None