def __init__(self,repo,freecad): QBoltsWidget.__init__(self) self.ui = Ui_BoltsWidget() self.ui.setupUi(self) self.repo = repo self.freecad = freecad self.param_widgets = {} self.props_widgets = {} self.coll_root = QtGui.QTreeWidgetItem(self.ui.partsTree,['Collections','Ordered by collections']) self.coll_root.setData(0,32,None) self.std_root = QtGui.QTreeWidgetItem(self.ui.partsTree,['Standard','Ordered by issueing body']) self.std_root.setData(0,32,None) #set up collections for coll in self.repo.collections: coll_item = QtGui.QTreeWidgetItem(self.coll_root,[coll.name, coll.description]) coll_item.setData(0,32,coll) for cl in coll.classes: if not cl.id in self.freecad.getbase: continue cl_item = QtGui.QTreeWidgetItem(coll_item,[cl.name, cl.description]) cl_item.setData(0,32,cl) #set up standards for body in repo.standard_bodies: std_item = QtGui.QTreeWidgetItem(self.std_root,[body, "Standards issued by %s" % body]) std_item.setData(0,32,None) for cl in repo.standardized[body]: if not cl.id in self.freecad.getbase: continue cl_item = QtGui.QTreeWidgetItem(std_item,[cl.name, cl.description]) cl_item.setData(0,32,cl) self.remove_empty_items(self.coll_root)
def __init__(self, repo, freecad): QBoltsWidget.__init__(self) self.ui = Ui_BoltsWidget() self.ui.setupUi(self) self.repo = repo self.dbs = {} self.dbs["freecad"] = freecad self.param_widgets = {} self.props_widgets = {} self.coll_root = QtGui.QTreeWidgetItem( self.ui.partsTree, ['Collections', 'Ordered by collections']) self.coll_root.setData(0, 32, None) self.std_root = QtGui.QTreeWidgetItem( self.ui.partsTree, ['Standard', 'Ordered by issuing body']) self.std_root.setData(0, 32, None) # set up collections for coll, in self.repo.itercollections(): coll_item = QtGui.QTreeWidgetItem(self.coll_root, [coll.name, coll.description]) coll_item.setData(0, 32, coll) multinames = {} multistds = {} clasids = [] # names for name, multiname in self.dbs["freecad"].iternames( ['name', 'multiname'], filter_collection=coll): # append classid clasids.append(self.repo.class_names.get_src(name).id) item = None if multiname is None: item = QtGui.QTreeWidgetItem( coll_item, [name.name.get_nice(), name.description]) else: if multiname not in multinames: multinames[multiname] = QtGui.QTreeWidgetItem( coll_item, [multiname.group.get_nice(), ""]) item = QtGui.QTreeWidgetItem( multinames[multiname], [name.name.get_nice(), name.description]) item.setData(0, 32, name) # single names for std, multistd in self.dbs["freecad"].iterstandards( ['standard', 'multistandard'], filter_collection=coll): item = None # only add item if it is not in classids if self.repo.class_standards.get_src(std).id not in clasids: if multistd is None: item = QtGui.QTreeWidgetItem( coll_item, [std.standard.get_nice(), std.description]) else: if multistd not in multistds: multistds[multistd] = QtGui.QTreeWidgetItem( coll_item, [multistd.standard.get_nice(), ""]) item = QtGui.QTreeWidgetItem( multistds[multistd], [std.standard.get_nice(), std.description]) item.setData(0, 32, std) multistds = {} # set up standards for body, in repo.iterbodies(): std_item = QtGui.QTreeWidgetItem( self.std_root, [body.body, "Standards issued by %s" % body.body]) std_item.setData(0, 32, None) # single standards for std, multistd in self.dbs["freecad"].iterstandards( ['standard', 'multistandard'], filter_body=body): if multistd is None: item = QtGui.QTreeWidgetItem( std_item, [std.standard.get_nice(), std.description]) else: if multistd not in multistds: multistds[multistd] = QtGui.QTreeWidgetItem( std_item, [multistd.standard.get_nice(), ""]) item = QtGui.QTreeWidgetItem( multistds[multistd], [std.standard.get_nice(), std.description]) item.setData(0, 32, std) self.remove_empty_items(self.coll_root)