개정판 afd3a6da
issue #567: fixed a problem to get color of missing object
Change-Id: I9364e744bf1fb9038900ef7dd34e5c7332551958
DTI_PID/DTI_PID/ItemPropertyTableWidget.py | ||
---|---|---|
331 | 331 |
value_item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable) |
332 | 332 |
self.setItem(row, 1, value_item) |
333 | 333 |
else: |
334 |
value_item = QTableWidgetItem(value if value else '') |
|
335 |
if prop.AttributeType == "String": |
|
336 |
icon = QtGui.QIcon() |
|
337 |
icon.addPixmap(QtGui.QPixmap(":/newPrefix/type.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
|
338 |
value_item.setIcon(icon) |
|
339 |
value_item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable|Qt.ItemIsEditable) |
|
340 |
self.setItem(row, 1, value_item) |
|
334 |
if prop.AttributeType == 'Boolean': |
|
335 |
self.freeze_state_cell = QCheckBox() |
|
336 |
self.freeze_state_cell.setChecked(True if value and value == True else False) |
|
337 |
self.freeze_state_cell.stateChanged.connect(self.freeze_state_changed) |
|
338 |
self.setCellWidget(row, 1, self.freeze_state_cell) |
|
339 |
else: |
|
340 |
value_item = QTableWidgetItem(value if value else '') |
|
341 |
if prop.AttributeType == "String": |
|
342 |
icon = QtGui.QIcon() |
|
343 |
icon.addPixmap(QtGui.QPixmap(":/newPrefix/type.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
|
344 |
value_item.setIcon(icon) |
|
345 |
|
|
346 |
value_item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable|Qt.ItemIsEditable) |
|
347 |
self.setItem(row, 1, value_item) |
|
341 | 348 |
row = row + 1 |
342 | 349 |
|
343 | 350 |
def show_item_attributes(self, item): |
... | ... | |
528 | 535 |
self._item.attrs.append(('Down Stream', text)) |
529 | 536 |
|
530 | 537 |
''' |
531 |
@brief find text item using uid |
|
532 |
@author kyouho |
|
533 |
@date ? |
|
534 |
''' |
|
535 |
def findTextItemFromUID(self, uid): |
|
536 |
items = [item for item in self.mainWindow.graphicsView.scene.items() if issubclass(type(item), QEngineeringTextItem)] |
|
537 |
for item in items: |
|
538 |
if item.uid == uid: |
|
539 |
return item |
|
540 |
return None |
|
541 |
|
|
542 |
''' |
|
543 | 538 |
@brief Initialize Note Contents Cell |
544 | 539 |
@author Jeongwoo |
545 | 540 |
@date 18.04.27 |
... | ... | |
705 | 700 |
text = self.item(rows[-1], columns[-1]).text() |
706 | 701 |
QApplication.clipboard().setText(text) |
707 | 702 |
|
703 |
def freeze_state_changed(self, state): |
|
704 |
""" update freeze value of line """ |
|
705 |
for row in range(self.rowCount()): |
|
706 |
widget = self.cellWidget(row, 1) |
|
707 |
if widget is None and widget != self.freeze_state_cell: continue |
|
708 |
cell = self.item(row, 0) |
|
709 |
if cell: |
|
710 |
data = cell.data(Qt.UserRole) |
|
711 |
if data is not None: |
|
712 |
if self._item: self._item.properties[data] = self.freeze_state_cell.isChecked() |
|
713 |
|
|
708 | 714 |
''' |
709 | 715 |
@brief int cell check |
710 | 716 |
@author kyouho |
DTI_PID/DTI_PID/Shapes/EngineeringAbstractItem.py | ||
---|---|---|
175 | 175 |
if at is None: |
176 | 176 |
self._associations[_type].append(item) |
177 | 177 |
else: |
178 |
self._associations[_type][at] = item |
|
179 |
#item.owner = self |
|
178 |
self._associations[_type][at] = item |
DTI_PID/DTI_PID/Shapes/EngineeringLineNoTextItem.py | ||
---|---|---|
34 | 34 |
|
35 | 35 |
QEngineeringTextItem.__init__(self, uid, parent) |
36 | 36 |
|
37 |
self._properties = {SymbolProp(None, 'From', 'Comp Item'):None, SymbolProp(None, 'To', 'Comp Item'):None} |
|
37 |
self._properties = {SymbolProp(None, 'From', 'Comp Item'):None, SymbolProp(None, 'To', 'Comp Item'):None, SymbolProp(None, 'Freeze', 'Boolean'):None}
|
|
38 | 38 |
self._runs = [] |
39 | 39 |
|
40 | 40 |
@property |
... | ... | |
240 | 240 |
matches = [prop for prop in item._properties.keys() if prop.Attribute == prop_node.attrib['Attribute']] |
241 | 241 |
if matches: |
242 | 242 |
matches[0].parse_xml(prop_node) |
243 |
item._properties[matches[0]] = uuid.UUID(prop_node.text, version=4) if prop_node.text and matches[0].is_selectable else prop_node.text if prop_node.text else ''
|
|
243 |
item._properties[matches[0]] = matches[0].parse_value(prop_node.text)
|
|
244 | 244 |
|
245 | 245 |
for attr_node in node.iter('ATTRIBUTE'): |
246 | 246 |
attr = SymbolAttr.fromXml(attr_node) |
DTI_PID/DTI_PID/Shapes/SymbolSvgItem.py | ||
---|---|---|
1046 | 1046 |
""" |
1047 | 1047 |
return hover color if mouse is over otherwise reutrn owner's color if owner exist else this color |
1048 | 1048 |
""" |
1049 |
return SymbolSvgItem.HOVER_COLOR if self.hover else (self.owner._color if self._owner else self._color) |
|
1049 |
return SymbolSvgItem.HOVER_COLOR if self.hover else (self.owner._color if self._owner and hasattr(self._owner, '_color') else self._color)
|
|
1050 | 1050 |
|
1051 | 1051 |
''' |
1052 | 1052 |
@brief get attributes from svg file |
DTI_PID/DTI_PID/SymbolAttr.py | ||
---|---|---|
48 | 48 |
self.Expression = node.attrib['Expression'] |
49 | 49 |
self.Length = node.attrib['Length'] |
50 | 50 |
|
51 |
def parse_value(self, text): |
|
52 |
""" parse value of property """ |
|
53 |
import uuid |
|
54 |
|
|
55 |
if self.AttributeType == 'Boolean': |
|
56 |
return True if text and text == 'True' else False |
|
57 |
else: |
|
58 |
return uuid.UUID(text, version=4) if text and self.is_selectable else text if text else '' |
|
59 |
|
|
51 | 60 |
def toXml(self): |
52 | 61 |
""" generate xml code for symbol property """ |
53 | 62 |
from xml.etree.ElementTree import Element, SubElement, dump, ElementTree |
내보내기 Unified diff