프로젝트

일반

사용자정보

개정판 0819fd28

ID0819fd283d9bceb9416012fb0398abd509c7f8b1
상위 63a0a093
하위 5d174dde, 0ff65ee0

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

issue #000: fixing initializtion for line tracer

Change-Id: I53d652bbc3b265cc18819444b95da76aa6003430

차이점 보기:

DTI_PID/DTI_PID/ItemTreeWidget.py
221 221
        for i in reversed(range(self.LineNoTreeItem.childCount())):
222 222
                if not self.LineNoTreeItem.child(i).data(0, self.TREE_DATA_ROLE).prop('Freeze'):
223 223
                    self.explode_line_no(self.LineNoTreeItem.child(i), remainFromTo)
224

  
225
        #for item in [item for item in self.scene.items() if hasattr(item, 'owner')
224 226
       
225 227
    def reverse_line_flow(self, lineNoTreeWidgetItem):
226 228
        """ reverse line flow """
DTI_PID/DTI_PID/LineNoTracer.py
148 148
        from EngineeringLineItem import QEngineeringLineItem
149 149
        from SymbolSvgItem import SymbolSvgItem
150 150
        from EngineeringRunItem import QEngineeringRunItem
151
        from QEngineeringTrimLineNoTextItem import QEngineeringTrimLineNoTextItem
152
        from App import App
153 151

  
154 152
        try:
155 153
            docData = AppDocData.instance()
......
295 293
                if updateProgress: updateProgress.emit(maxValue)
296 294

  
297 295
            ### make trim lines
298
            pastTrim = docData.tracerLineNos
299
            treeWidget = App.mainWnd().itemTreeWidget
300
            for pastTrimIndex in reversed(range(len(pastTrim))):
301
                if type(pastTrim[pastTrimIndex]) is QEngineeringTrimLineNoTextItem:
302
                    try:
303
                        connected_items = pastTrim[pastTrimIndex].getConnectedItems()
304
                        for item in connected_items:
305
                            treeWidget.addTreeItem(treeWidget.SymbolsTreeItem, item)
306

  
307
                        pastTrim[pastTrimIndex].explode()
308
                    finally:
309
                        pass
310

  
311 296
            updateProgress.emit(-1) # reset progressbar
312 297
            displayMessage.emit('Unknown line Topology Construction')
313 298
            orphanLines = [line for line in self._lines if line.owner is None] 
......
457 442
    from EngineeringVendorItem import QEngineeringVendorItem
458 443
    from EngineeringEndBreakItem import QEngineeringEndBreakItem
459 444
    from EngineeringReservedWordTextItem import QEngineeringReservedWordTextItem
445
    from QEngineeringTrimLineNoTextItem import QEngineeringTrimLineNoTextItem
460 446

  
461 447
    try:
448
        docdata = AppDocData.instance()
462 449
        symbols = []
463 450
        lines = []
464 451
        lineNos = []
......
469 456
        for end_break in end_breaks:
470 457
            worker.graphicsView.scene.removeItem(end_break)
471 458

  
472
        configs = AppDocData.instance().getConfigs('Supplied by Tag Rule', 'by Vendor')
459
        configs = docdata.getConfigs('Supplied by Tag Rule', 'by Vendor')
473 460
        vendorTag = configs[0].value if configs else 'By Vendor'
474 461
        for item in worker.graphicsView.scene.items():
475 462
            if type(item) is QEngineeringSpecBreakItem:
......
492 479
            elif issubclass(type(item), QEngineeringTextItem):
493 480
                item.owner = None
494 481

  
482
        # remove unknown line's
483
        pastTrim = docdata.tracerLineNos
484
        treeWidget = App.mainWnd().itemTreeWidget
485
        for pastTrimIndex in reversed(range(len(pastTrim))):
486
            if type(pastTrim[pastTrimIndex]) is QEngineeringTrimLineNoTextItem:
487
                try:
488
                    connected_items = pastTrim[pastTrimIndex].getConnectedItems()
489
                    for item in connected_items:
490
                        treeWidget.addTreeItem(treeWidget.SymbolsTreeItem, item)
491
                    pastTrim[pastTrimIndex].explode()
492
                finally:
493
                    pass
494

  
495 495
        # trace line no
496 496
        tracer = LineNoTracer(symbols, lines, lineNos, specBreak, lineIndicator, vendor_packages)
497 497
        tracer.execute(worker.displayMessage, worker.updateProgress)
......
499 499

  
500 500
        # connect attribute
501 501
        texts = [item for item in worker.graphicsView.scene.items() if issubclass(type(item), QEngineeringTextItem)]
502
        for text in texts:
503
            text.onwer = None
502 504
        for symbol in symbols:
503 505
            try:
504 506
                symbol.connectAttribute(texts)
......
526 528
            for line in lines: line.update_line_type()
527 529

  
528 530
        """make end break"""
529
        docdata = AppDocData.instance()
530

  
531 531
        end_break_names = docdata.getSymbolListByType('type', 'End Break')
532 532
        if len(end_break_names) is not 0:
533 533
                
534 534
            svgFileName = end_break_names[0].sName
535
            symbol = AppDocData.instance().getSymbolByQuery('name', svgFileName)
536
            svgFilePath = os.path.join(AppDocData.instance().getCurrentProject().getSvgFilePath(), symbol.getType(), svgFileName+'.svg')
535
            symbol = docdata.getSymbolByQuery('name', svgFileName)
536
            svgFilePath = os.path.join(docdata.getCurrentProject().getSvgFilePath(), symbol.getType(), svgFileName+'.svg')
537 537

  
538 538
            end_breaks = []
539 539
            lineNo_froms = []
DTI_PID/DTI_PID/Shapes/EngineeringEquipmentItem.py
89 89
            for attr in attrs:
90 90
                if rect.contains(attr.center()):
91 91
                    self.add_assoc_item(attr)
92
                    attr.onwer = self
92 93

  
93 94
            # not have equipment name which is located inside equipment
94 95
            if not 'Tag No' in self._associations or not self._associations['Tag No']:
......
103 104
                        minDist = dist
104 105
                        selected = attr
105 106
            
106
                if selected is not None: self.add_assoc_item(selected)
107
                if selected is not None:
108
                    self.add_assoc_item(selected)
109
                    selected.onwer = self
107 110
        except Exception as ex:
108 111
            from App import App 
109 112
            from AppDocData import MessageType
DTI_PID/DTI_PID/Shapes/EngineeringInstrumentItem.py
175 175
                        attr.owner = self  # set owner of text
176 176
                        self.add_assoc_item(attr)
177 177
                    elif issubclass(type(attr), SymbolSvgItem):
178
                        attr._owner = self.uid  # set owner of symbol
178
                        attr.owner = self  # set owner of symbol
179 179
                        self.add_assoc_item(attr)
180 180
        except Exception as ex:
181 181
            from App import App 
DTI_PID/DTI_PID/Shapes/EngineeringLineItem.py
181 181
        if self._owner and type(self._owner) is uuid.UUID:
182 182
            matches = [x for x in self.scene().items() if hasattr(x, 'uid') and str(x.uid) == str(self._owner)]
183 183
            if matches: self._owner = matches[0]
184

  
185
        return self._owner
184
        
185
        if type(self._owner) is not uuid.UUID and type(self._owner) is not str:
186
            return self._owner
187
        else:
188
            self._owner = None
189
            return None
186 190

  
187 191
    '''
188 192
        @brief  setter owner
DTI_PID/DTI_PID/Shapes/EngineeringNozzleItem.py
63 63
                    minDist = dist
64 64
                    selected = attr
65 65
            
66
            if selected is not None: self.attrs.append(selected)
66
            if selected is not None:
67
                self.attrs.append(selected)
68
                selected.onwer = self
DTI_PID/DTI_PID/Shapes/EngineeringReducerItem.py
101 101
                        dy = attr.center().y() - center.y()
102 102
                        if math.sqrt(dx*dx + dy*dy) < dist*2:
103 103
                            self.add_assoc_item(attr)
104
                            attr.owner = self
104 105

  
105 106
            if selected is not None:
106 107
                self.add_assoc_item(selected)
DTI_PID/DTI_PID/Shapes/EngineeringTextItem.py
74 74
            return matches[0] if matches else None
75 75
        # up to here
76 76

  
77
        return self._owner
77
        if type(self._owner) is not uuid.UUID and type(self._owner) is not str:
78
            return self._owner
79
        else:
80
            self._owner = None
81
            return None
78 82

  
79 83
    '''
80 84
        @brief      Set owner
DTI_PID/DTI_PID/Shapes/QEngineeringOPCItem.py
86 86
            for attr in attributes:
87 87
                if rect.contains(attr.center()):
88 88
                    self.add_assoc_item(attr)
89
                    attr.owner = self
89 90

  
90 91
            if 'Text Item' in self._associations and self._associations['Text Item']:
91 92
                if 0 == self.angle:
DTI_PID/DTI_PID/Shapes/SymbolSvgItem.py
102 102
            matches = [x for x in self.scene().items() if hasattr(x, 'uid') and str(x.uid) == str(self._owner)]
103 103
            if matches: self._owner = matches[0]
104 104

  
105
        return self._owner
105
        if type(self._owner) is not uuid.UUID and type(self._owner) is not str:
106
            return self._owner
107
        else:
108
            self._owner = None
109
            return None
106 110

  
107 111
    '''
108 112
        @brief  setter owner
......
728 732
                        dy = attr.center().y() - center.y()
729 733
                        if math.sqrt(dx*dx + dy*dy) < dist*2:
730 734
                            self.add_assoc_item(attr)
735
                            attr.owner = self
731 736

  
732 737
            if selected is not None:
733 738
                self.add_assoc_item(selected)

내보내기 Unified diff

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