프로젝트

일반

사용자정보

개정판 3521c798

ID3521c7988cfc409b61e5b415c4c7ca11fc667b41
상위 33763b26
하위 dc9e6b67, 8c322959

함의성이(가) 약 3년 전에 추가함

load test

Change-Id: Ie055ff8a910cb34ae0baba1327ca0d471b0ac455

차이점 보기:

DTI_PID/DTI_PID/Commands/LoadCommand.py
98 98
            app_doc_data.clearTempDBData()
99 99

  
100 100
    def load_data_from_xml(self, drawing, scene, symbol, text, line, unknown, package) -> int:
101
        item_dic = {}
102

  
101 103
        def find_item(scene, uid):
102 104
            items = [item for item in scene.items() if hasattr(item, 'uid') and str(item.uid) == str(uid)]
103 105
            return items[0] if items else None
104 106

  
105
        def find_items(scene, uids):
107
        def find_items(scene, uids, lineNo=None):
108
            nonlocal item_dic
109

  
106 110
            uids = [str(uid) for uid in uids]
107
            items = [(item, uids.index(str(item.uid))) for item in scene.items() if hasattr(item, 'uid') and str(item.uid) in uids]
111

  
112
            if lineNo and str(lineNo.uid) in item_dic:
113
                items = [(item, uids.index(str(item.uid))) for item in [_item for _item in item_dic[str(lineNo.uid)] if str(item.uid) in uids]]
114
            else:
115
                items = [(item, uids.index(str(item.uid))) for item in scene.items() if hasattr(item, 'uid') and str(item.uid) in uids]
108 116

  
109 117
            items = [item[0] for item in sorted(items, key= lambda param:param[1])]
110 118

  
111 119
            return items
112 120

  
121
        def add_item_dict(item):
122
            nonlocal item_dic
123

  
124
            if item._owner and str(item._owner) in item_dic:
125
                item_dic[str(item._owner)].append(item)
126
            elif item._owner:
127
                item_dic[str(item._owner)] = [item]
128

  
113 129
        import concurrent.futures as futures
114 130
        from xml.etree.ElementTree import Element, SubElement, dump, ElementTree, parse
115 131
        from App import App
......
157 173
                        symbols.append(item)
158 174
                        #app_doc_data.symbols.append(item)
159 175
                        item.addSvgItemToScene(scene)
176

  
177
                        add_item_dict(item)
160 178
                    else:
161 179
                        pt = [float(x) for x in symbol.find('LOCATION').text.split(',')]
162 180
                        size = [float(x) for x in symbol.find('SIZE').text.split(',')]
......
181 199
                        attributeValue = text.find('ATTRIBUTEVALUE')
182 200
                        name = text.find('NAME').text
183 201
                        item.addTextItemToScene(scene)
184
                        # docData.texts.append(item)
185 202

  
186 203
                        if name == 'TEXT':
187 204
                            if uid is not None and attributeValue is not None:
......
218 235
                        scene.addItem(item)
219 236
                        lines.append(item)
220 237

  
238
                        add_item_dict(item)
239

  
221 240
                    value = value + 1
222 241
                    self.show_progress.emit(value)
223 242

  
......
268 287
                            #            run_item._owner = line_no
269 288
                            #            line_run.items.append(run_item)
270 289
                            #        '''
271
                            run_items = find_items(scene, uids)
290
                            #run_items = find_items(scene, uids)
291
                            run_items = find_items(scene, uids, line_no)
272 292
                            for run_item in run_items:
273 293
                                run_item._owner = line_no
274 294
                                line_run.items.append(run_item)
DTI_PID/DTI_PID/Shapes/EngineeringLineItem.py
1585 1585
            endPoint = [float(x) for x in node.find('ENDPOINT').text.split(',')]
1586 1586

  
1587 1587
            item = QEngineeringLineItem(vertices=[startPoint, endPoint], uid=uid)
1588
            if owner:
1589
                item._owner = owner
1588 1590
            item.setVisible(False)
1589 1591
            item.lineType = node.find('TYPE').text if node.find('TYPE') is not None else 'Secondary'
1590 1592
            # assign area

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)