개정판 ff77e799
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