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()