프로젝트

일반

사용자정보

개정판 ff77e799

IDff77e7995d9dc964c4a5aa1b95a73e21664ee608
상위 45af4300
하위 5244d622, 4493ceff

백흠경이(가) 약 6년 전에 추가함

fixed issue #49: 예약어를 설정할 수 있다

Change-Id: I8c6041f84422a57e73a9df31b8264d9332e9bd71

차이점 보기:

DTI_PID/DTI_PID/MainWindow.py
1549 1549
        try:
1550 1550
            self.itemTreeWidget.itemRemoved(item)
1551 1551

  
1552
            '''
1553
            if type(item) is QEngineeringLineNoTextItem:
1554
                self.removedItems['LINE'].append(str(item.uid))
1555
            elif type(item) is QEngineeringInstrumentItem:
1556
                self.removedItems['INST'].append(str(item.uid))
1557
            elif type(item) is QEngineeringEquipmentItem:
1558
                self.removedItems['EQUIP'].append(str(item.uid))
1559
            elif type(item) is QEngineeringNoteItem:
1560
                self.removedItems['NOTE'].append(str(item.uid))
1561
            '''
1562

  
1563 1552
            matches = [_item for _item in self.graphicsView.scene.items() if hasattr(_item, 'connectors') and [connector for connector in _item.connectors if connector.connectedItem is item]]
1564 1553
            for match in matches:
1565 1554
                for connector in match.connectors:
......
1580 1569
                    if item in run.items:
1581 1570
                        index = run.items.index(item)
1582 1571
                        run.items.pop(index)
1583
            """
1584
            if hasattr(item, 'connectors'):
1585
                for sceneItem in self.graphicsView.scene.items():
1586
                    if hasattr(sceneItem, 'connectors'):
1587
                        for sceneConnector in sceneItem.connectors:
1588
                            if sceneConnector.connectedItem is not None and item.uid == sceneConnector.connectedItem.uid:
1589
                                sceneConnector.connectedItem = None
1590
            """
1591 1572

  
1592 1573
            if item.scene() is not None: item.scene().removeItem(item)
1593 1574
        except Exception as ex:
DTI_PID/DTI_PID/Shapes/EngineeringReservedWordTextItem.py
19 19
from EngineeringTextItem import QEngineeringTextItem
20 20

  
21 21
class QEngineeringReservedWordTextItem(QEngineeringTextItem):
22
    """ This is engineering reserved words text item class """
22 23

  
23 24
    def __init__(self, uid=None, parent=None):
24 25
        QEngineeringTextItem.__init__(self, uid, parent)
DTI_PID/DTI_PID/Shapes/EngineeringTextItem.py
33 33
        QEngineeringAbstractItem.__init__(self)
34 34

  
35 35
        self.uid = uuid.uuid4() if uid is None else uuid.UUID(uid, version=4)
36
        self.type = 'TEXT'
36 37
        self.loc = None
37 38
        self.size = None
38 39
        self.angle = 0  # angle in radian
......
450 451
            attributeValue = node.find('ATTRIBUTEVALUE')
451 452
            name = node.find('NAME').text
452 453
            textInfo = TextInfo(value, x, y, width, height, angle)
453
            if name == 'TEXT' or name == 'TAG NO':
454
                item = TextItemFactory.instance().createTextItem(textInfo)
455
                if item is not None:
456
                    item.loc = (x, y)
457
                    item.size = (width, height)
458
                    item.angle = angle
459
            elif name == 'NOTE':
454
            if name == 'NOTE':
460 455
                item = TextItemFactory.instance().createTextItem(textInfo)
461 456
                if item is not None:
462 457
                    item.loc = (x, y)
463 458
                    item.size = (width, height)
464 459
                    item.angle = angle
465 460
                    item.setPlainText(value)
466
                    item.setToolTip(value)
461
                    item.setToolTip('{} = {}'.format(item.type, value))
467 462
            elif name == 'SIZE':
468 463
                item = QEngineeringSizeTextItem()
469 464
                if item is not None:
......
471 466
                    item.size = (width, height)
472 467
                    item.angle = angle
473 468
                    item.setPlainText(value)
474
                    item.setToolTip('SIZE = {}'.format(value))
469
                    item.setToolTip('{} = {}'.format(item.type, value))
475 470
            elif name == 'VALVE OPER CODE':
476 471
                item = QEngineeringValveOperCodeTextItem()
477 472
                if item is not None:
......
479 474
                    item.size = (width, height)
480 475
                    item.angle = angle
481 476
                    item.setPlainText(value)
482
                    item.setToolTip('Valve Oper Code = {}'.format(value))
477
                    item.setToolTip('{} = {}'.format(item.type, value))
478
            else:
479
                item = TextItemFactory.instance().createTextItem(textInfo)
480
                if item is not None:
481
                    item.loc = (x, y)
482
                    item.size = (width, height)
483
                    item.angle = angle
483 484

  
484 485
            # set uid and owner of item
485 486
            if item is not None:
......
517 518
                    humkyung 2018.05.02 add name as parameter
518 519
                    Jeongwoo 2018.05.30 Change variable [owner] is nullable and Add/Modify attributes
519 520
    '''
520
    def toXml(self, owner = None, name='TEXT'):
521
    def toXml(self, owner = None):
521 522
        from xml.etree.ElementTree import Element, SubElement, dump, ElementTree
522 523
        from EngineeringLineItem import QEngineeringLineItem
523 524
        from SymbolSvgItem import SymbolSvgItem
......
533 534
            node.append(attributeValueNode)
534 535

  
535 536
            nameNode = Element('NAME')
536
            nameNode.text = name
537
            nameNode.text = self.type
537 538
            node.append(nameNode)
538 539
            
539 540
            locNode = Element('LOCATION')
DTI_PID/DTI_PID/TextItemFactory.py
327 327

  
328 328
        return True if found else False
329 329

  
330
    def is_reserved_word(sefl, text):
330
    def is_reserved_word(self, text):
331
        """ check if given text is reserved words """
331 332
        from CodeTables import CodeTable
332 333

  
333 334
        found = CodeTable.instance('ReservedWords').find_starts_with(text)
DTI_PID/DTI_PID/XmlGenerator.py
374 374
    from QEngineeringSizeTextItem import QEngineeringSizeTextItem
375 375
    from QEngineeringTagNoTextItem import QEngineeringTagNoTextItem
376 376
    from EngineeringValveOperCodeTextItem import QEngineeringValveOperCodeTextItem
377
    from EngineeringReservedWordTextItem import QEngineeringReservedWordTextItem
377 378
    from SymbolSvgItem import SymbolSvgItem
378 379
    from EngineeringVendorItem import QEngineeringVendorItem
379 380
    from EngineeringErrorItem import QEngineeringErrorItem
......
399 400
    node_dictionary = {SymbolSvgItem:symbolListNode, QEngineeringTextItem:textInfoListNode, QEngineeringNoteItem:noteTextInfoListNode, 
400 401
        QEngineeringLineItem:lineListNode, QEngineeringLineNoTextItem:lineNoListNode, QEngineeringUnknownItem:unknownListNode,
401 402
        QEngineeringSizeTextItem:textInfoListNode, QEngineeringValveOperCodeTextItem:textInfoListNode, QEngineeringTagNoTextItem:textInfoListNode,
402
        QEngineeringVendorItem:vendorListNode}
403
        QEngineeringReservedWordTextItem:textInfoListNode, QEngineeringVendorItem:vendorListNode}
403 404

  
404 405
    # trim line 추가
405 406
    trimLineNoListNode = Element(TRIM_LINE_NOS_NODE_NAME)
......
414 415

  
415 416
            node = None
416 417
            try:
417
                if type(item) is QEngineeringNoteItem:
418
                    node = item.toXml(name = 'NOTE')
419
                elif type(item) is QEngineeringSizeTextItem:
420
                    node = item.toXml(name='SIZE')
421
                elif type(item) is QEngineeringValveOperCodeTextItem:
422
                    node = item.toXml(name='VALVE OPER CODE')
423
                elif type(item) is QEngineeringTagNoTextItem:
424
                    node = item.toXml(name='TAG NO')
425
                elif issubclass(type(item), QEngineeringAbstractItem) and type(item) is not QGraphicsBoundingBoxItem and type(item) is not QEngineeringErrorItem:
418
                if issubclass(type(item), QEngineeringAbstractItem) and type(item) is not QGraphicsBoundingBoxItem and type(item) is not QEngineeringErrorItem:
426 419
                    node = item.toXml()
427 420
                else:
428 421
                    continue

내보내기 Unified diff

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