Example #1
0
    def __init__(self, mainWindow, debugMode=False):
        QtCore.QObject.__init__(self)

        # Prints angry debug messages, if activated
        self.debugMode = debugMode

        # Register mainWindow object
        self.mainWindow = mainWindow

        # Create/initialize other objects
        self.fileManager = FileManager()
        self.executionManager = ExecutionManager(self)
        self.buildManager = BuildManager(self)
        self.dialogManager = DialogManager(self.mainWindow)

        # Connect signals from newFileDialog and saveAsDialog to controller methods
        self.dialogManager.newFileDialog.accepted.connect(
            self.on_new_file_accepted)
        self.dialogManager.saveAsDialog.accepted.connect(
            self.on_save_As_file_accepted)

        # Connect find replace dialog button(s) to there handler method(s)
        self.dialogManager.findReplaceDialog.close_button.clicked.connect(
            self.dialogManager.findReplaceDialog.hide)
        self.dialogManager.findReplaceDialog.replace_all_button.clicked.connect(
            self.on_replace_all_button)
        self.dialogManager.findReplaceDialog.replace_button.clicked.connect(
            self.on_replace_button)
        self.dialogManager.findReplaceDialog.find_button.clicked.connect(
            self.on_find_button)

        # Connect goto line dialog buttons(s) to appropriate handler method(s)
        self.dialogManager.gotoLineDialog.accepted.connect(
            self.on_actionGoto_line_accepted)

        # Overriding standard exit behavior hideous hack?
        self.mainWindow.closeEvent = self.on_exit

        # Link UI elements to functions
        for item in self.mainWindow.findChildren(
                QtGui.QAction):  # Menubar action elements
            try:
                itemName = str(item.objectName())
                if itemName != "":
                    function = self.__getattribute__("on_" + itemName)
                    item.triggered.connect(function)
            except AttributeError:
                if (debugMode):
                    print "Controller should have a member function called '%s', but doesn't!" % (
                        "on_" + itemName)

        for item in self.mainWindow.findChildren(
                QtGui.QPushButton):  # Buttons elements
            try:
                itemName = str(item.objectName())
                if itemName != "":
                    function = self.__getattribute__("on_" + itemName)
                    item.clicked.connect(function)
            except AttributeError:
                if (debugMode):
                    print "Controller should have a member function called '%s', but doesn't!" % (
                        "on_" + itemName)

        inputTextBox = self.mainWindow.findChild(QtGui.QLineEdit,
                                                 'stdinTextBox')
        inputTextBox.returnPressed.connect(self.enter)
        self.disableProjectControls()