프로젝트

일반

사용자정보

개정판 4bf032f1

ID4bf032f124c91c39df4d64d04a568233ffbdf076
상위 95d603c1
하위 3d8ab673, 76986eb0

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

issue #641: improve open speed minor

Change-Id: If86706c7da8f93bcc3d7d821baacfe0f82647461

차이점 보기:

DTI_PID/DTI_PID/Commands/LoadCommand.py
100 100
            items = [item for item in scene.items() if hasattr(item, 'uid') and str(item.uid) == str(uid)]
101 101
            return items[0] if items else None
102 102

  
103
        def find_items(scene, uids):
104
            uids = [str(uid) for uid in uids]
105
            items = [(item, uids.index(str(item.uid))) for item in scene.items() if hasattr(item, 'uid') and str(item.uid) in uids]
106

  
107
            items = [item[0] for item in sorted(items, key= lambda param:param[1])]
108

  
109
            return items
110

  
103 111
        import concurrent.futures as futures
104 112
        from xml.etree.ElementTree import Element, SubElement, dump, ElementTree, parse
105 113
        from App import App
......
248 256

  
249 257
                        for run_node in runs_node:
250 258
                            line_run = QEngineeringRunItem()
259
                            uids = []
251 260
                            for child_node in run_node:
252 261
                                uidElement = child_node.find('UID')
253 262
                                if uidElement is not None:
254 263
                                    uid = uidElement.text
264
                                    uids.append(uid)
265
                                    '''
255 266
                                    run_item = find_item(scene, uid)
256 267
                                    if run_item is not None:
257 268
                                        run_item._owner = line_no
258 269
                                        line_run.items.append(run_item)
270
                                    '''
271
                            run_items = find_items(scene, uids)
272
                            for run_item in run_items:
273
                                run_item._owner = line_no
274
                                line_run.items.append(run_item)
275

  
259 276
                            line_run.owner = line_no
260 277
                            line_no.runs.append(line_run)
261 278

  
......
274 291

  
275 292
                        for run in runs_node:
276 293
                            line_run = QEngineeringRunItem()
294
                            uids = []
277 295
                            for child in run:
278 296
                                uidElement = child.find('UID')
279 297
                                if uidElement is not None:
280 298
                                    uid = uidElement.text
299
                                    uids.append(uid)
300
                                    '''
281 301
                                    run_item = find_item(scene, uid)
282 302
                                    if run_item is not None:
283 303
                                        run_item.owner = line_no
284 304
                                        line_run.items.append(run_item)
305
                                    '''
306
                            run_items = find_items(scene, uids)
307
                            for run_item in run_items:
308
                                run_item._owner = line_no
309
                                line_run.items.append(run_item)
310

  
285 311
                            line_run.owner = line_no
286 312
                            line_no.runs.append(line_run)
287 313

  
......
342 368
            items = [item for item in scene.items() if hasattr(item, 'uid') and str(item.uid) == str(uid)]
343 369
            return items[0] if items else None
344 370

  
371
        def find_items(scene, uids):
372
            uids = [str(uid) for uid in uids]
373
            items = [(item, uids.index(str(item.uid))) for item in scene.items() if hasattr(item, 'uid') and str(item.uid) in uids]
374

  
375
            items = [item[0] for item in sorted(items, key= lambda param:param[1])]
376

  
377
            return items
378

  
345 379
        value = 0
346 380
        app_doc_data = AppDocData.instance()
347 381
        try:
......
444 478
                            for run in runs:
445 479
                                line_run = QEngineeringRunItem()
446 480
                                run_items = app_doc_data.get_pipe_run_items(run['UID'])
481
                                uids = []
447 482
                                for record in run_items:
448 483
                                    uid = record['Components_UID']
484
                                    uids.append(uid)
485
                                    '''
449 486
                                    run_item = find_item(scene, uid)
450 487
                                    if run_item is not None:
451 488
                                        run_item._owner = line_no
452 489
                                        line_run.items.append(run_item)
490
                                    '''
491
                                run_items = find_items(scene, uids)
492
                                for run_item in run_items:
493
                                    run_item._owner = line_no
494
                                    line_run.items.append(run_item)
495

  
453 496
                                line_run.owner = line_no
454 497
                                line_no.runs.append(line_run)
455 498

  
......
470 513
                        for run in runs:
471 514
                            line_run = QEngineeringRunItem()
472 515
                            run_items = app_doc_data.get_pipe_run_items(run['UID'])
516
                            uids = []
473 517
                            for record in run_items:
474 518
                                uid = record['Components_UID']
519
                                uids.append(uid)
520
                                '''
475 521
                                run_item = find_item(scene, uid)
476 522
                                if run_item is not None:
477 523
                                    run_item.owner = line_no
478 524
                                    line_run.items.append(run_item)
525
                                '''
526
                            run_items = find_items(scene, uids)
527
                            for run_item in run_items:
528
                                run_item._owner = line_no
529
                                line_run.items.append(run_item)
530

  
479 531
                            line_run.owner = line_no
480 532
                            line_no.runs.append(line_run)
481 533

  

내보내기 Unified diff

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