コード例 #1
0
	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)
コード例 #2
0
ファイル: freecad_bolts.py プロジェクト: rrozestw/BOLTSFC
    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)