def updateModule(self, module): """ updateModule(module: Module) -> None Setup this tree widget to show functions of module """ self.clear() if module: try: descriptor = registry.get_descriptor_by_name(module.package, module.name, module.namespace) except registry.MissingModulePackage, e: # FIXME handle this the same way as # vistrail_controller:change_selected_version raise moduleHierarchy = registry.get_module_hierarchy(descriptor) for baseModule in moduleHierarchy: baseName = registry.get_descriptor(baseModule).name base_package = registry.get_descriptor(baseModule).identifier # Create the base widget item baseItem = QMethodTreeWidgetItem(None, None, None, self, (QtCore.QStringList() << baseName << '')) methods = registry.method_ports(baseModule) # Also check the local registry if module.registry and module.registry.has_module(base_package, baseName): methods += module.registry.method_ports(baseModule) for method in methods: sig = method.spec.create_sigstring(short=True) QMethodTreeWidgetItem(module, method, method.spec, baseItem, (QtCore.QStringList() << method.name << sig)) self.expandAll() self.resizeColumnToContents(0)
def initializePorts(self, ports): self.disconnect(self.model(), QtCore.SIGNAL('dataChanged(QModelIndex,QModelIndex)'), self.handleDataChanged) for p in ports: model = self.model() portType = registry.get_descriptor(p.spec.signature[0][0]).name model.setData(model.index(self.rowCount()-1, 1), QtCore.QVariant(portType), QtCore.Qt.DisplayRole) model.setData(model.index(self.rowCount()-1, 0), QtCore.QVariant(p.name), QtCore.Qt.DisplayRole) self.setRowCount(self.rowCount()+1) self.fixGeometry() self.connect(self.model(), QtCore.SIGNAL('dataChanged(QModelIndex,QModelIndex)'), self.handleDataChanged)
def specsFromPorts(self, portType, ports): return [(portType, p.name, '('+registry.get_descriptor(p.spec.signature[0][0]).name+')') for p in ports[0][1]]