개정판 79d085a3
issue #000: fixed loading run from xml file
Change-Id: Ic24ebf37992c69fe137cb8a87795e472577fdb7d
DTI_PID/DTI_PID/ItemTreeWidget.py | ||
---|---|---|
1 | 1 |
# coding: utf-8 |
2 |
""" This is item tree widget module """ |
|
2 | 3 |
|
3 | 4 |
import os |
4 | 5 |
import re |
... | ... | |
43 | 44 |
super(CustomTreeWidgetItem, self).setData(column, role, value) |
44 | 45 |
|
45 | 46 |
class QItemTreeWidget(QTreeWidget): |
47 |
""" This is item tree widget """ |
|
46 | 48 |
TREE_DATA_ROLE = Qt.UserRole |
47 | 49 |
|
48 | 50 |
#Add Signal |
... | ... | |
71 | 73 |
@brief delete selected symbol |
72 | 74 |
@author humkyung |
73 | 75 |
@date 2018.07.20 |
74 |
|
|
75 | 76 |
''' |
76 | 77 |
def keyPressEvent(self, event): |
77 | 78 |
try: |
... | ... | |
137 | 138 |
pickColorAction = QAction(self.tr("Select Line Color")) |
138 | 139 |
pickColorAction.triggered.connect(lambda : self.pickColorClickEvent(item)) |
139 | 140 |
menu.addAction(pickColorAction) |
141 |
explode_action = QAction(self.tr("Explode")) |
|
142 |
explode_action.triggered.connect(lambda : self.explode_line_no(item)) |
|
143 |
menu.addAction(explode_action) |
|
140 | 144 |
menu.exec_(self.viewport().mapToGlobal(position)) |
141 | 145 |
elif len(indexes) > 0 and data is not None and issubclass(type(data), QEngineeringRunItem): |
142 | 146 |
index = indexes[0] |
... | ... | |
168 | 172 |
connectedItem.setColor(color.name()) |
169 | 173 |
self.changeTreeWidgetItemColorRecursively(lineNoTreeWidgetItem, color) |
170 | 174 |
|
175 |
def explode_line_no(self, lineNoTreeWidgetItem): |
|
176 |
""" explode line no """ |
|
177 |
pass |
|
178 |
|
|
171 | 179 |
''' |
172 | 180 |
@brief pick line type |
173 | 181 |
@author humkyung |
... | ... | |
204 | 212 |
self.root.setIcon(0, QIcon(':newPrefix/objects.png')) |
205 | 213 |
self.root.setData(0, self.TREE_DATA_ROLE, appDocData.activeDrawing) |
206 | 214 |
child = self.root.addChild(QTreeWidgetItem(['LINE NO'])) |
215 |
self.root.child(self.root.childCount() - 1).setFlags(self.root.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) |
|
216 |
self.root.child(self.root.childCount() - 1).setCheckState(0, Qt.Checked) |
|
207 | 217 |
self.LineNoTreeItem = self.root.child(self.root.childCount() - 1) |
208 | 218 |
self.root.addChild(QTreeWidgetItem(['EQUIPMENTS'])) |
209 | 219 |
self.EqpTreeItem = self.root.child(self.root.childCount() - 1) |
DTI_PID/DTI_PID/LineNoTracer.py | ||
---|---|---|
274 | 274 |
updateProgress.emit(maxValue) |
275 | 275 |
|
276 | 276 |
### make trim lines |
277 |
""" |
|
277 | 278 |
updateProgress.emit(-1) # reset progressbar |
278 | 279 |
displayMessage.emit('Unknown line Topology Construction') |
279 | 280 |
orphanLines = [line for line in self._lines if line.owner is None] |
... | ... | |
299 | 300 |
updateProgress.emit(maxValue) |
300 | 301 |
|
301 | 302 |
docData.tracerLineNos.append(trimLineNo) |
303 |
""" |
|
302 | 304 |
|
303 | 305 |
updateProgress.emit(maxValue) |
304 | 306 |
except Exception as ex: |
DTI_PID/DTI_PID/MainWindow.py | ||
---|---|---|
2412 | 2412 |
if item is not None: |
2413 | 2413 |
item.transfer.onRemoved.connect(self.itemRemoved) |
2414 | 2414 |
self.addTextItemToScene(item) |
2415 |
treeItem = self.itemTreeWidget.addTreeItem(self.itemTreeWidget.root, item) |
|
2415 | 2416 |
|
2416 | 2417 |
connLine = line_no.find('CONNLINE') |
2417 | 2418 |
if connLine is not None: |
... | ... | |
2420 | 2421 |
if connLine is not None: |
2421 | 2422 |
item.conns.append(connLine) |
2422 | 2423 |
|
2423 |
run = line_no.find('RUN') |
|
2424 |
if run is not None: |
|
2425 |
lineRunItem = QEngineeringRunItem() |
|
2426 |
for child in run: |
|
2427 |
uidElement = child.find('UID') |
|
2428 |
if uidElement is not None: |
|
2429 |
uid = uidElement.text |
|
2430 |
runItem = self.graphicsView.findItemByUid(uid) |
|
2431 |
if runItem is not None: |
|
2432 |
runItem._owner = item |
|
2433 |
lineRunItem.items.append(runItem) |
|
2424 |
runs = line_no.findall('RUN') |
|
2425 |
if runs is not None: |
|
2426 |
for run in runs: |
|
2427 |
line_run = QEngineeringRunItem() |
|
2428 |
for child in run: |
|
2429 |
uidElement = child.find('UID') |
|
2430 |
if uidElement is not None: |
|
2431 |
uid = uidElement.text |
|
2432 |
run_item = self.graphicsView.findItemByUid(uid) |
|
2433 |
if run_item is not None: |
|
2434 |
run_item._owner = item |
|
2435 |
line_run.items.append(run_item) |
|
2436 |
item.runs.append(line_run) |
|
2437 |
|
|
2438 |
for connectedItem in line_run.items: |
|
2439 |
if issubclass(type(connectedItem), SymbolSvgItem): self.itemTreeWidget.addTreeItem(treeItem, connectedItem) |
|
2434 | 2440 |
|
2435 |
item.runs.append(lineRunItem) |
|
2436 |
treeItem = self.itemTreeWidget.addTreeItem(self.itemTreeWidget.root, item) |
|
2437 |
for connectedItem in lineRunItem.items: |
|
2438 |
if issubclass(type(connectedItem), SymbolSvgItem): self.itemTreeWidget.addTreeItem(treeItem, connectedItem) |
|
2439 | 2441 |
docData.tracerLineNos.append(item) |
2440 | 2442 |
|
2441 | 2443 |
self.progress.setValue(self.progress.value() + 1) |
... | ... | |
2691 | 2693 |
except Exception as ex: |
2692 | 2694 |
print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)) |
2693 | 2695 |
finally: |
2694 |
pass |
|
2695 |
|
|
2696 |
pass |
내보내기 Unified diff