Ejemplo n.º 1
0
class LocalsController(QObject):
    
    def __init__(self, distributed_objects):
        QObject.__init__(self)
        self.distributedObjects = distributed_objects
        
        self.vwFactory = LocalsVWFactory()
        
        self.localsModel = LocalsModel(self, self.distributedObjects)
        self.localsView = LocalsView()
        
        self.localsView.treeView.setModel(self.localsModel)
        self.localsVariableList = VariableList(self.vwFactory, self.distributedObjects)
        
        QObject.connect(self.distributedObjects.signal_proxy, SIGNAL('inferiorHasStopped(PyQt_PyObject)'), self.getLocals)
        QObject.connect(self.distributedObjects.signal_proxy, SIGNAL('insertDockWidgets()'), self.insertDockWidgets)
        QObject.connect(self.distributedObjects.signal_proxy, SIGNAL('cleanupModels()'), self.clearLocals)
        
    def insertDockWidgets(self):
        self.localsDock = QDockWidget("Locals")
        self.localsDock.setObjectName("LocalsView")
        self.localsDock.setWidget(self.localsView)
        self.distributedObjects.signal_proxy.addDockWidget(Qt.BottomDockWidgetArea, self.localsDock, True)
        
    def clearLocals(self):
        # clear lists
        del self.localsVariableList.list[:]
        self.localsModel.clear()

        
    def getLocals(self):
        self.clearLocals()
        self.localsVariableList.addLocals()
        
        for vw in self.localsVariableList.list:
            vw.setParent(self.localsModel.root)
            # add variable to root children
            self.localsModel.root.addChild(vw)
            self.localsModel.addVar(vw)