39 |
39 |
@date 2018.04.27
|
40 |
40 |
@history 2018.05.10 Jeongwoo Add LINE_NO
|
41 |
41 |
'''
|
|
42 |
|
|
43 |
|
42 |
44 |
class ItemType(Enum):
|
43 |
45 |
SYMBOL = 1
|
44 |
46 |
NOTE = 2
|
45 |
47 |
LINE_NO = 3
|
46 |
48 |
|
|
49 |
|
47 |
50 |
class QCustomCheckBox(QCheckBox):
|
48 |
51 |
def __init__(self, table, row, col):
|
49 |
52 |
QCheckBox.__init__(self)
|
... | ... | |
78 |
81 |
|
79 |
82 |
item = self.table.item(self.row, 3)
|
80 |
83 |
if item:
|
81 |
|
item.setFlags(Qt.ItemIsEnabled) if state else item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsEditable|Qt.ItemIsSelectable)
|
82 |
|
#item.setBackground(Qt.lightGray) if state else item.setBackground(Qt.white)
|
|
84 |
item.setFlags(Qt.ItemIsEnabled) if state else item.setFlags(
|
|
85 |
Qt.ItemIsEnabled | Qt.ItemIsEditable | Qt.ItemIsSelectable)
|
|
86 |
# item.setBackground(Qt.lightGray) if state else item.setBackground(Qt.white)
|
83 |
87 |
elif self.col == 3:
|
84 |
88 |
cell = self.table.item(self.row, 1)
|
85 |
89 |
if cell:
|
... | ... | |
87 |
91 |
if data is not None:
|
88 |
92 |
if self.table._item: self.table._item.set_property(data.Attribute, self.isChecked())
|
89 |
93 |
|
|
94 |
|
90 |
95 |
class QItemPropertyTableWidget(QTableWidget):
|
91 |
96 |
def __init__(self, mainWindow):
|
92 |
97 |
QTableWidget.__init__(self)
|
... | ... | |
103 |
108 |
@date 2018.07.03
|
104 |
109 |
@history euisung 2019.01.15 add icon image to line item
|
105 |
110 |
'''
|
|
111 |
|
106 |
112 |
def show_item_property(self, item):
|
107 |
113 |
try:
|
108 |
114 |
from PyQt5 import QtGui
|
... | ... | |
132 |
138 |
except Exception as ex:
|
133 |
139 |
from App import App
|
134 |
140 |
|
135 |
|
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)
|
|
141 |
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename,
|
|
142 |
sys.exc_info()[-1].tb_lineno)
|
136 |
143 |
App.mainWnd().addMessage.emit(MessageType.Error, message)
|
137 |
144 |
finally:
|
138 |
145 |
self.blockSignals(False)
|
... | ... | |
143 |
150 |
@date 18.04.13
|
144 |
151 |
@history humkyung 2018.07.08 show column header
|
145 |
152 |
'''
|
|
153 |
|
146 |
154 |
def initResultPropertyTableWidget(self):
|
147 |
155 |
self.setColumnCount(4)
|
148 |
156 |
self.setHorizontalHeaderLabels(['', self.tr('Name'), '', self.tr('Value')])
|
... | ... | |
159 |
167 |
@date 18.04.13
|
160 |
168 |
@history humkyung 2018.04.17 check if given symbol type is SymbolSvgItem
|
161 |
169 |
'''
|
|
170 |
|
162 |
171 |
@pyqtSlot(SymbolSvgItem)
|
163 |
172 |
def onSymbolClicked(self, symbol):
|
164 |
173 |
try:
|
... | ... | |
176 |
185 |
@author humkyung
|
177 |
186 |
@date 2018.07.07
|
178 |
187 |
'''
|
|
188 |
|
179 |
189 |
@pyqtSlot(Drawing)
|
180 |
190 |
def onDrawingClicked(self, drawing):
|
181 |
191 |
try:
|
... | ... | |
187 |
197 |
name = attr[0]
|
188 |
198 |
item = QTableWidgetItem(name)
|
189 |
199 |
item.setFlags(Qt.ItemIsEnabled)
|
190 |
|
#item.setBackground(Qt.lightGray)
|
|
200 |
# item.setBackground(Qt.lightGray)
|
191 |
201 |
self.setItem(row, 0, item)
|
192 |
202 |
|
193 |
203 |
value = attr[1]
|
... | ... | |
223 |
233 |
self.setItem(0, 3, QTableWidgetItem(str(self._item.uid)))
|
224 |
234 |
|
225 |
235 |
owner_item = QTableWidgetItem('{}'.format('None' if self._item.owner is None else str(self._item.owner)))
|
226 |
|
owner_item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
|
|
236 |
owner_item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
|
227 |
237 |
self.setItem(1, 3, owner_item)
|
228 |
238 |
|
229 |
239 |
""" show icon item """
|
... | ... | |
244 |
254 |
@date 18.04.27
|
245 |
255 |
@history humkyung 2018.07.08 change method name to onNoteClicked
|
246 |
256 |
'''
|
|
257 |
|
247 |
258 |
@pyqtSlot(str, dict)
|
248 |
259 |
def onNoteClicked(self, noteNoStr, noteContentsList):
|
249 |
260 |
try:
|
... | ... | |
258 |
269 |
@date 18.05.10
|
259 |
270 |
@hisotry humkyung 2018.07.08 change method name to onLineNoClicked
|
260 |
271 |
'''
|
|
272 |
|
261 |
273 |
@pyqtSlot(QEngineeringAbstractItem)
|
262 |
274 |
def onLineNoClicked(self, item):
|
263 |
275 |
try:
|
... | ... | |
266 |
278 |
finally:
|
267 |
279 |
self.blockSignals(False)
|
268 |
280 |
|
269 |
|
'''
|
270 |
|
@brief Reset table with new SymbolSvgItem
|
271 |
|
@author Jeongwoo
|
272 |
|
@date 18.04.13
|
273 |
|
@history .
|
274 |
|
'''
|
275 |
281 |
def symbolChanged(self, item):
|
|
282 |
"""fill symbol properties"""
|
276 |
283 |
self.initTitleCell(item)
|
277 |
284 |
self.initContentsCell()
|
278 |
285 |
|
... | ... | |
281 |
288 |
@author Jeongwoo
|
282 |
289 |
@date 18.04.27
|
283 |
290 |
'''
|
|
291 |
|
284 |
292 |
def noteChanged(self, noteNoStr, noteContentsList):
|
285 |
293 |
self.initNoteCell(noteNoStr, noteContentsList)
|
286 |
294 |
|
... | ... | |
289 |
297 |
@author Jeongwoo
|
290 |
298 |
@date 18.05.10
|
291 |
299 |
'''
|
|
300 |
|
292 |
301 |
def lineNoChanged(self, item):
|
293 |
302 |
from EngineeringRunItem import QEngineeringRunItem
|
294 |
303 |
|
... | ... | |
312 |
321 |
Jeongwoo 2018.05.10 Add if-statement LINE_NO ItemType
|
313 |
322 |
humkyung 2018.08.15 add combobox for line type
|
314 |
323 |
'''
|
|
324 |
|
315 |
325 |
def initTitleCell(self, item):
|
316 |
326 |
from LineTypeConditions import LineTypeConditions
|
317 |
327 |
|
... | ... | |
403 |
413 |
item = self.item(index, 1)
|
404 |
414 |
if item is not None:
|
405 |
415 |
item.setFlags(Qt.ItemIsEnabled)
|
406 |
|
#item.setBackground(Qt.lightGray)
|
|
416 |
# item.setBackground(Qt.lightGray)
|
407 |
417 |
except Exception as ex:
|
408 |
418 |
from App import App
|
409 |
419 |
|
410 |
|
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)
|
|
420 |
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename,
|
|
421 |
sys.exc_info()[-1].tb_lineno)
|
411 |
422 |
App.mainWnd().addMessage.emit(MessageType.Error, message)
|
412 |
423 |
|
413 |
424 |
'''
|
... | ... | |
415 |
426 |
@author humkyung
|
416 |
427 |
@date 2018.08.15
|
417 |
428 |
'''
|
|
429 |
|
418 |
430 |
def onLineTypeChanged(self, param):
|
419 |
431 |
lineType = self._lineTypeComboBox.itemText(param)
|
420 |
432 |
data = self._lineTypeComboBox.tag.data(Qt.UserRole)
|
... | ... | |
440 |
452 |
def changeConnectedLineType(self, line, lineType):
|
441 |
453 |
line.lineType = lineType
|
442 |
454 |
if type(line.connectors[0].connectedItem) is QEngineeringLineItem and \
|
443 |
|
(line.connectors[0].connectedItem.connectors[0].connectedItem is line or line.connectors[0].connectedItem.connectors[1].connectedItem is line) and \
|
|
455 |
(line.connectors[0].connectedItem.connectors[0].connectedItem is line or
|
|
456 |
line.connectors[0].connectedItem.connectors[1].connectedItem is line) and \
|
444 |
457 |
line.connectors[0].connectedItem.lineType is not lineType:
|
445 |
458 |
self.changeConnectedLineType(line.connectors[0].connectedItem, lineType)
|
446 |
459 |
if type(line.connectors[1].connectedItem) is QEngineeringLineItem and \
|
447 |
|
(line.connectors[1].connectedItem.connectors[0].connectedItem is line or line.connectors[1].connectedItem.connectors[1].connectedItem is line) and \
|
|
460 |
(line.connectors[1].connectedItem.connectors[0].connectedItem is line or
|
|
461 |
line.connectors[1].connectedItem.connectors[1].connectedItem is line) and \
|
448 |
462 |
line.connectors[1].connectedItem.lineType is not lineType:
|
449 |
463 |
self.changeConnectedLineType(line.connectors[1].connectedItem, lineType)
|
450 |
464 |
|
... | ... | |
478 |
492 |
if hasattr(item, '_properties'):
|
479 |
493 |
self.setRowCount(row + len(item.properties))
|
480 |
494 |
|
481 |
|
for prop,value in item.properties.items():
|
|
495 |
for prop, value in item.properties.items():
|
482 |
496 |
try:
|
483 |
497 |
""" show freeze state """
|
484 |
498 |
checkbox = QCustomCheckBox(self, row, 0)
|
... | ... | |
489 |
503 |
""" show property name """
|
490 |
504 |
key_item = QTableWidgetItem(prop.DisplayAttribute if prop.DisplayAttribute else prop.Attribute)
|
491 |
505 |
key_item.setFlags(Qt.ItemIsEnabled)
|
492 |
|
#key_item.setBackground(Qt.lightGray)
|
|
506 |
# key_item.setBackground(Qt.lightGray)
|
493 |
507 |
key_item.setData(Qt.UserRole, prop)
|
494 |
508 |
self.setItem(row, 1, key_item)
|
495 |
509 |
|
... | ... | |
499 |
513 |
""" show property value """
|
500 |
514 |
if prop.is_selectable:
|
501 |
515 |
value_item = QTableWidgetItem(str(value.uid) if hasattr(value, 'uid') else value)
|
502 |
|
value_item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
|
|
516 |
value_item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
|
503 |
517 |
self.setItem(row, 3, value_item)
|
504 |
518 |
else:
|
505 |
519 |
if prop.AttributeType == 'Boolean':
|
506 |
520 |
self.checkbox_cell = QCustomCheckBox(self, row, 3)
|
507 |
521 |
self.checkbox_cell.setChecked(True if value and str(value) == 'True' else False)
|
508 |
522 |
self.checkbox_cell.stateChanged.connect(self.checkbox_cell.state_changed)
|
509 |
|
#if prop.Attribute == 'Freeze': self.checkbox_cell.stateChanged.connect(item.freeze_item.update_freeze)
|
|
523 |
# if prop.Attribute == 'Freeze': self.checkbox_cell.stateChanged.connect(item.freeze_item.update_freeze)
|
510 |
524 |
self.setCellWidget(row, 3, self.checkbox_cell)
|
511 |
525 |
else:
|
512 |
526 |
value_item = QTableWidgetItem(value if value else '')
|
513 |
|
value_item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable|Qt.ItemIsEditable)
|
|
527 |
value_item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsEditable)
|
514 |
528 |
self.setItem(row, 3, value_item)
|
515 |
529 |
|
516 |
530 |
checkbox.state_changed(checkbox.isChecked())
|
... | ... | |
519 |
533 |
except Exception as ex:
|
520 |
534 |
from App import App
|
521 |
535 |
|
522 |
|
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)
|
|
536 |
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename,
|
|
537 |
sys.exc_info()[-1].tb_lineno)
|
523 |
538 |
App.mainWnd().addMessage.emit(MessageType.Error, message)
|
524 |
539 |
|
525 |
540 |
def show_item_attributes(self, item):
|
... | ... | |
533 |
548 |
if attrs is not None:
|
534 |
549 |
self.setRowCount(row + len(attrs))
|
535 |
550 |
|
536 |
|
for key,value in attrs.items():
|
|
551 |
for key, value in attrs.items():
|
537 |
552 |
try:
|
538 |
553 |
""" show freeze state """
|
539 |
554 |
checkbox = QCustomCheckBox(self, row, 0)
|
... | ... | |
543 |
558 |
|
544 |
559 |
""" show property name """
|
545 |
560 |
key_item = QTableWidgetItem(key.DisplayAttribute if key.DisplayAttribute else key.Attribute)
|
546 |
|
#key_item.setBackground(Qt.lightGray)
|
|
561 |
# key_item.setBackground(Qt.lightGray)
|
547 |
562 |
key_item.setData(Qt.UserRole, key)
|
548 |
563 |
self.setItem(row, 1, key_item)
|
549 |
564 |
|
... | ... | |
551 |
566 |
self.show_icon_item(row, 2, key)
|
552 |
567 |
|
553 |
568 |
value_item = QTableWidgetItem(str(value))
|
554 |
|
value_item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable|Qt.ItemIsEditable)
|
|
569 |
value_item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsEditable)
|
555 |
570 |
|
556 |
571 |
if type(item) is QEngineeringSpecBreakItem:
|
557 |
572 |
if key.Attribute == 'UpStream' or key.Attribute == 'DownStream':
|
558 |
573 |
UpDownItem = QTableWidgetItem('{}'.format('None' if value is None else value))
|
559 |
574 |
self.setItem(row, 3, UpDownItem)
|
560 |
|
else: # elif key.AttributeType == 'Spec':
|
|
575 |
else: # elif key.AttributeType == 'Spec':
|
561 |
576 |
self.setItem(row, 3, QTableWidgetItem(str(value)[1:-1]))
|
562 |
577 |
else:
|
563 |
578 |
self.setItem(row, 3, value_item)
|
... | ... | |
566 |
581 |
|
567 |
582 |
row = row + 1
|
568 |
583 |
except Exception as ex:
|
569 |
|
from App import App
|
|
584 |
from App import App
|
570 |
585 |
|
571 |
|
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)
|
572 |
|
App.mainWnd().addMessage.emit(MessageType.Error, message)
|
|
586 |
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename,
|
|
587 |
sys.exc_info()[-1].tb_lineno)
|
|
588 |
App.mainWnd().addMessage.emit(MessageType.Error, message)
|
573 |
589 |
|
574 |
590 |
def show_item_connectors(self, item):
|
575 |
591 |
""" show items' connectors on grid """
|
... | ... | |
583 |
599 |
for connector in item.connectors:
|
584 |
600 |
connector_item = QTableWidgetItem('CONN{}'.format(count))
|
585 |
601 |
connector_item.setFlags(Qt.ItemIsEnabled)
|
586 |
|
#connector_item.setBackground(Qt.lightGray)
|
|
602 |
# connector_item.setBackground(Qt.lightGray)
|
587 |
603 |
self.setItem(row, 1, connector_item)
|
588 |
604 |
|
589 |
605 |
attr = SymbolAttr()
|
... | ... | |
594 |
610 |
""" show icon item """
|
595 |
611 |
self.show_icon_item(row, 2, attr)
|
596 |
612 |
|
597 |
|
connector_item = QTableWidgetItem('{}'.format('None' if connector.connectedItem is None else str(connector.connectedItem)))
|
598 |
|
connector_item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
|
|
613 |
connector_item = QTableWidgetItem(
|
|
614 |
'{}'.format('None' if connector.connectedItem is None else str(connector.connectedItem)))
|
|
615 |
connector_item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
|
599 |
616 |
self.setItem(row, 3, connector_item)
|
600 |
617 |
|
601 |
618 |
row = row + 1
|
... | ... | |
609 |
626 |
humkyung 2018.07.05 display connectivity
|
610 |
627 |
euisung 2019.01.15 edit specbreak
|
611 |
628 |
'''
|
|
629 |
|
612 |
630 |
def initContentsCell(self):
|
613 |
631 |
from PyQt5 import QtGui
|
614 |
632 |
from SymbolAttr import SymbolAttr
|
... | ... | |
620 |
638 |
self.setItem(0, 3, QTableWidgetItem(str(self._item.uid)))
|
621 |
639 |
self.setItem(1, 3, QTableWidgetItem(self._item.name))
|
622 |
640 |
self.setItem(2, 3, QTableWidgetItem(self._item.type))
|
623 |
|
self.setItem(3, 3, QTableWidgetItem(str(round(math.degrees(self._item.angle)))))
|
|
641 |
self.setItem(3, 3, QTableWidgetItem(str(round(self._item.rotation()))))
|
624 |
642 |
self.setItem(4, 3, QTableWidgetItem(str(self._item.origin)))
|
625 |
|
owner_item = QTableWidgetItem('{}'.format('None' if self._item.owner is None else str(self._item.owner)))
|
|
643 |
owner_item = QTableWidgetItem(
|
|
644 |
'{}'.format('None' if self._item.owner is None else str(self._item.owner)))
|
626 |
645 |
self.setItem(5, 3, owner_item)
|
627 |
646 |
|
628 |
647 |
for index in range(self.rowCount()):
|
629 |
648 |
item = self.item(index, 3)
|
630 |
649 |
if item is not None:
|
631 |
|
item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
|
|
650 |
item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
|
632 |
651 |
|
633 |
652 |
""" show icon item """
|
634 |
653 |
attr = SymbolAttr()
|
... | ... | |
676 |
695 |
self.show_icon_item(1, 2, attr)
|
677 |
696 |
self.item(1, 1).setData(Qt.UserRole, attr)
|
678 |
697 |
|
679 |
|
owner_item = QTableWidgetItem('{}'.format('None' if self._item.owner is None else str(self._item.owner)))
|
|
698 |
owner_item = QTableWidgetItem(
|
|
699 |
'{}'.format('None' if self._item.owner is None else str(self._item.owner)))
|
680 |
700 |
self.setItem(1, 3, owner_item)
|
681 |
701 |
|
682 |
702 |
self.show_item_properties(self._item)
|
... | ... | |
702 |
722 |
except Exception as ex:
|
703 |
723 |
from App import App
|
704 |
724 |
|
705 |
|
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)
|
|
725 |
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename,
|
|
726 |
sys.exc_info()[-1].tb_lineno)
|
706 |
727 |
App.mainWnd().addMessage.emit(MessageType.Error, message)
|
707 |
728 |
|
708 |
729 |
'''
|
... | ... | |
710 |
731 |
@author kyouho
|
711 |
732 |
@date 2018.08.28
|
712 |
733 |
'''
|
|
734 |
|
713 |
735 |
def upStreamChanged(self, text):
|
714 |
736 |
if self._item is not None:
|
715 |
737 |
find = False
|
... | ... | |
727 |
749 |
@author kyouho
|
728 |
750 |
@date 2018.08.28
|
729 |
751 |
'''
|
|
752 |
|
730 |
753 |
def downStreamChanged(self, text):
|
731 |
754 |
if self._item is not None:
|
732 |
755 |
find = False
|
... | ... | |
744 |
767 |
@author Jeongwoo
|
745 |
768 |
@date 18.04.27
|
746 |
769 |
'''
|
|
770 |
|
747 |
771 |
def initNoteCell(self, noteNoStr, noteContentsList):
|
748 |
772 |
self.setRowCount(0)
|
749 |
773 |
|
... | ... | |
761 |
785 |
item = self.item(index, 1)
|
762 |
786 |
if item is not None:
|
763 |
787 |
item.setFlags(Qt.ItemIsEnabled)
|
764 |
|
#item.setBackground(Qt.lightGray)
|
|
788 |
# item.setBackground(Qt.lightGray)
|
765 |
789 |
|
766 |
790 |
'''
|
767 |
791 |
@brief Initialize Line No Contents Cell
|
... | ... | |
769 |
793 |
@date 18.05.10
|
770 |
794 |
@history humkyung 2018.07.20 display combobox when key is 'Stream No'
|
771 |
795 |
'''
|
|
796 |
|
772 |
797 |
def initLineNoCell(self, lineNoItem):
|
773 |
798 |
appDocData = AppDocData.instance()
|
774 |
799 |
configs = appDocData.getConfigs('Line No', 'Configuration')
|
775 |
800 |
configs = configs[0].value.split('"-"')
|
776 |
801 |
|
777 |
802 |
item = QTableWidgetItem(str(lineNoItem.uid))
|
778 |
|
item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
|
|
803 |
item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
|
779 |
804 |
self.setItem(0, 3, item)
|
780 |
805 |
|
781 |
806 |
self.show_item_properties(lineNoItem)
|
... | ... | |
787 |
812 |
for key in attrs.keys():
|
788 |
813 |
item = QTableWidgetItem(key.DisplayAttribute if key.DisplayAttribute else key.Attribute)
|
789 |
814 |
item.setFlags(Qt.ItemIsEnabled)
|
790 |
|
#item.setBackground(Qt.lightGray)
|
|
815 |
# item.setBackground(Qt.lightGray)
|
791 |
816 |
item.setData(Qt.UserRole, key)
|
792 |
817 |
self.setItem(row, 1, item)
|
793 |
818 |
|
... | ... | |
811 |
836 |
# editable value cell
|
812 |
837 |
if keyStr[0].AttributeType == 'String':
|
813 |
838 |
pass
|
814 |
|
#self.attrValueList.append((valueCell, key.Attribute))
|
815 |
|
#self.stringCell.append(valueCell)
|
|
839 |
# self.attrValueList.append((valueCell, key.Attribute))
|
|
840 |
# self.stringCell.append(valueCell)
|
816 |
841 |
if keyStr[0].UID in configs: valueCell.setFlags(Qt.ItemIsEnabled)
|
817 |
842 |
else:
|
818 |
|
valueCell.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable)
|
|
843 |
valueCell.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
|
819 |
844 |
|
820 |
845 |
if key.Attribute.upper() == 'STREAM_NO':
|
821 |
846 |
self.streamNoComboBox = QComboBox()
|
... | ... | |
837 |
862 |
@author humkyung
|
838 |
863 |
@date 2018.07.20
|
839 |
864 |
'''
|
|
865 |
|
840 |
866 |
def onStreamNoChanged(self, param):
|
841 |
867 |
items = self.mainWindow.graphicsView.scene().selectedItems()
|
842 |
868 |
if items is not None and len(items) == 1:
|
... | ... | |
850 |
876 |
@author humkyung
|
851 |
877 |
@date 2018.05.27
|
852 |
878 |
'''
|
|
879 |
|
853 |
880 |
def initLineRunCell(self, item):
|
854 |
881 |
self.setRowCount(1)
|
855 |
882 |
|
856 |
883 |
lineTypeItem = QTableWidgetItem(self.tr("Line Type"))
|
857 |
|
#lineTypeItem.setBackground(Qt.lightGray)
|
|
884 |
# lineTypeItem.setBackground(Qt.lightGray)
|
858 |
885 |
lineTypeItem.setFlags(Qt.ItemIsEnabled)
|
859 |
886 |
self.setItem(0, 1, lineTypeItem)
|
860 |
887 |
|
... | ... | |
863 |
890 |
@author kyouho
|
864 |
891 |
@date 2018.07.19
|
865 |
892 |
'''
|
|
893 |
|
866 |
894 |
def keyPressEvent(self, event):
|
867 |
895 |
from SymbolAttr import SymbolAttr
|
868 |
896 |
|
869 |
897 |
if event.key() == Qt.Key_Delete:
|
870 |
898 |
items = self.mainWindow.graphicsView.scene().selectedItems()
|
871 |
899 |
selectedIndexes = self.selectedIndexes()
|
872 |
|
if selectedIndexes and selectedIndexes[0].column() == 3 and self.item(selectedIndexes[0].row(), 1).text() == 'OWNER':
|
|
900 |
if selectedIndexes and selectedIndexes[0].column() == 3 and self.item(selectedIndexes[0].row(),
|
|
901 |
1).text() == 'OWNER':
|
873 |
902 |
items[0].owner = None
|
874 |
903 |
self.show_item_property(items[0])
|
875 |
|
elif len(items) == 1 and len(selectedIndexes) == 1 and (type(items[0]) is QEngineeringLineItem or issubclass(type(items[0]), SymbolSvgItem) or \
|
876 |
|
type(items[0]) is QEngineeringLineNoTextItem or type(items[0]) is QEngineeringVendorItem):
|
|
904 |
elif len(items) == 1 and len(selectedIndexes) == 1 and (
|
|
905 |
type(items[0]) is QEngineeringLineItem or issubclass(type(items[0]), SymbolSvgItem) or \
|
|
906 |
type(items[0]) is QEngineeringLineNoTextItem or type(items[0]) is QEngineeringVendorItem):
|
877 |
907 |
key_cell = self.item(selectedIndexes[0].row(), 1)
|
878 |
908 |
data = key_cell.data(Qt.UserRole)
|
879 |
909 |
if selectedIndexes[0].column() == 3 and key_cell.text().find('CONN') is 0:
|
... | ... | |
883 |
913 |
self.show_item_property(items[0])
|
884 |
914 |
|
885 |
915 |
for sceneItem in self.mainWindow.graphicsView.scene().items():
|
886 |
|
if hasattr(sceneItem, 'uid') and str(sceneItem.uid) == selectedUID and hasattr(sceneItem, 'connectors'):
|
|
916 |
if hasattr(sceneItem, 'uid') and str(sceneItem.uid) == selectedUID and hasattr(sceneItem,
|
|
917 |
'connectors'):
|
887 |
918 |
for sceneConnector in sceneItem.connectors:
|
888 |
|
if sceneConnector.connectedItem is not None and items[0].uid == sceneConnector.connectedItem.uid:
|
|
919 |
if sceneConnector.connectedItem is not None and items[
|
|
920 |
0].uid == sceneConnector.connectedItem.uid:
|
889 |
921 |
sceneConnector.connectedItem = None
|
890 |
922 |
elif selectedIndexes[0].column() == 3 and data and type(data) is SymbolAttr:
|
891 |
923 |
assocItem = None
|
892 |
|
for _attr,_value in items[0].attrs.items():
|
|
924 |
for _attr, _value in items[0].attrs.items():
|
893 |
925 |
if str(_attr.UID) == str(data.UID):
|
894 |
926 |
assocItem = _attr.AssocItem
|
895 |
927 |
items[0].remove_assoc_item(_attr.AssocItem)
|
... | ... | |
898 |
930 |
_attr.AssocItem = None
|
899 |
931 |
items[0].attrs[_attr] = ''
|
900 |
932 |
break
|
901 |
|
for _attr,_value in items[0].attrs.items():
|
|
933 |
for _attr, _value in items[0].attrs.items():
|
902 |
934 |
if _attr.AssocItem is assocItem:
|
903 |
935 |
_attr.AssocItem = None
|
904 |
936 |
items[0].attrs[_attr] = ''
|
905 |
937 |
self.show_item_property(items[0])
|
906 |
938 |
elif len(items) == 1 and len(selectedIndexes) == 1 and type(items[0]) is QEngineeringSpecBreakItem:
|
907 |
939 |
keyCell = self.item(selectedIndexes[0].row(), 1)
|
908 |
|
if selectedIndexes[0].column() == 3 and (keyCell.text() == 'UpStream' or keyCell.text() == 'DownStream'):
|
|
940 |
if selectedIndexes[0].column() == 3 and (
|
|
941 |
keyCell.text() == 'UpStream' or keyCell.text() == 'DownStream'):
|
909 |
942 |
for attr in items[0].attrs.keys():
|
910 |
943 |
if attr.Attribute == keyCell.text():
|
911 |
944 |
items[0].attrs[attr] = None
|
... | ... | |
929 |
962 |
@author kyouho
|
930 |
963 |
@date 2018.08.20
|
931 |
964 |
'''
|
|
965 |
|
932 |
966 |
def cellChangedEvent(self, row, column):
|
933 |
967 |
from SymbolAttr import SymbolProp
|
934 |
968 |
from SymbolAttr import SymbolAttr
|
... | ... | |
953 |
987 |
from App import App
|
954 |
988 |
from AppDocData import MessageType
|
955 |
989 |
|
956 |
|
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)
|
|
990 |
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename,
|
|
991 |
sys.exc_info()[-1].tb_lineno)
|
957 |
992 |
App.mainWnd().addMessage.emit(MessageType.Error, message)
|
958 |
993 |
|
959 |
994 |
'''
|
... | ... | |
962 |
997 |
@date 2018.07.19
|
963 |
998 |
@history euisung 2019.01.15 edit specbreak
|
964 |
999 |
'''
|
|
1000 |
|
965 |
1001 |
def cellDoubleClickedEvent(self, row, column):
|
966 |
1002 |
from SymbolAttr import SymbolProp
|
967 |
1003 |
|
... | ... | |
985 |
1021 |
cmd = SelectAttributeCommand.SelectAttributeCommand(items[0], attr, self.mainWindow.graphicsView)
|
986 |
1022 |
cmd.onSuccess.connect(self.onSuccessSelectAttribute)
|
987 |
1023 |
self.mainWindow.graphicsView.command = cmd
|
988 |
|
elif keyCell.text() == 'OWNER' and ((type(items[0]) is QEngineeringLineItem) or (issubclass(type(items[0]), SymbolSvgItem)) or (issubclass(type(items[0]), QEngineeringTextItem))):
|
|
1024 |
elif keyCell.text() == 'OWNER' and (
|
|
1025 |
(type(items[0]) is QEngineeringLineItem) or (issubclass(type(items[0]), SymbolSvgItem)) or (
|
|
1026 |
issubclass(type(items[0]), QEngineeringTextItem))):
|
989 |
1027 |
attr = keyCell.data(Qt.UserRole)
|
990 |
1028 |
cmd = SelectAttributeCommand.SelectAttributeCommand(items[0], attr, self.mainWindow.graphicsView)
|
991 |
1029 |
cmd.onSuccess.connect(self.onSuccessSelectAttribute)
|
... | ... | |
1005 |
1043 |
dialog.exec_()
|
1006 |
1044 |
self.show_item_property(items[0])
|
1007 |
1045 |
except Exception as ex:
|
1008 |
|
print('error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno))
|
|
1046 |
print('error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename,
|
|
1047 |
sys.exc_info()[-1].tb_lineno))
|
1009 |
1048 |
elif issubclass(type(attr), SymbolProp):
|
1010 |
1049 |
attr = keyCell.data(Qt.UserRole)
|
1011 |
1050 |
cmd = SelectAttributeCommand.SelectAttributeCommand(items[0], attr, self.mainWindow.graphicsView)
|
... | ... | |
1017 |
1056 |
@author kyouho
|
1018 |
1057 |
@date 2018.10.23
|
1019 |
1058 |
'''
|
1020 |
|
def onSuccessSelectAttribute(self, connItem = None):
|
|
1059 |
|
|
1060 |
def onSuccessSelectAttribute(self, connItem=None):
|
1021 |
1061 |
""" update item's properties after selecting """
|
1022 |
|
self.show_item_property(self._item)
|
|
1062 |
self.show_item_property(self._item)
|