개정판 835465ff
issue #000: display line color
Change-Id: I3900d870752bdb5a5f6d1ff72814453caefe9591
DTI_PID/DTI_PID/Commands/SelectAttributeCommand.py | ||
---|---|---|
46 | 46 |
from EngineeringAbstractItem import QEngineeringAbstractItem |
47 | 47 |
from SymbolSvgItem import SymbolSvgItem |
48 | 48 |
from EngineeringTextItem import QEngineeringTextItem |
49 |
from EngineeringLineNoTextItem import QEngineeringLineNoTextItem |
|
50 |
from EngineeringRunItem import QEngineeringRunItem |
|
49 | 51 |
from QEngineeringTagNoTextItem import QEngineeringTagNoTextItem |
50 | 52 |
from EngineeringLineItem import QEngineeringLineItem |
51 | 53 |
from EngineeringSpecBreakItem import QEngineeringSpecBreakItem |
... | ... | |
66 | 68 |
self._item.attrs[self._attr] = str(item.uid) |
67 | 69 | |
68 | 70 |
self.onSuccess.emit() |
71 |
elif item is not None and (type(item) is QEngineeringLineNoTextItem) and self._attr.AttributeType == 'OWNER': |
|
72 |
if not item.runs: |
|
73 |
item.runs.append(QEngineeringRunItem()) |
|
74 | ||
75 |
if 1 == len(item.runs): item.runs[0].items.append(self._item) |
|
76 | ||
77 |
self._item.owner = item |
|
78 |
self.onSuccess.emit() |
|
69 | 79 |
elif item is not None and self._attr.AttributeType == QEngineeringAbstractItem.assoc_type(item): |
70 | 80 |
""" |
71 | 81 |
self._item.removeSelfAttr(self._attr.UID) |
DTI_PID/DTI_PID/ItemPropertyTableWidget.py | ||
---|---|---|
65 | 65 |
if type(item) is QEngineeringLineItem: |
66 | 66 |
self.initTitleCell(item) |
67 | 67 |
self.setItem(0, 1, QTableWidgetItem(str(item.uid))) |
68 | ||
69 |
owner_item = QTableWidgetItem('{}'.format('None' if item.owner is None else item.owner.uid)) |
|
70 |
icon = QtGui.QIcon() |
|
71 |
icon.addPixmap(QtGui.QPixmap(":/newPrefix/doubleclick.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
|
72 |
owner_item.setIcon(icon) |
|
73 |
self.setItem(1, 1, owner_item) |
|
74 | ||
68 | 75 |
pt = item.startPoint() |
69 |
self.setItem(2, 1, QTableWidgetItem('({},{})'.format(pt[0], pt[1]))) |
|
70 |
pt = item.endPoint() |
|
71 | 76 |
self.setItem(3, 1, QTableWidgetItem('({},{})'.format(pt[0], pt[1]))) |
77 |
pt = item.endPoint() |
|
78 |
self.setItem(4, 1, QTableWidgetItem('({},{})'.format(pt[0], pt[1]))) |
|
72 | 79 |
connItem = QTableWidgetItem('{}'.format('None' if item.connectors[0].connectedItem is None else item.connectors[0].connectedItem.uid)) |
73 | 80 |
icon = QtGui.QIcon() |
74 | 81 |
icon.addPixmap(QtGui.QPixmap(":/newPrefix/doubleclick.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
75 | 82 |
connItem.setIcon(icon) |
76 |
self.setItem(4, 1, connItem)
|
|
83 |
self.setItem(5, 1, connItem)
|
|
77 | 84 |
connItem = QTableWidgetItem('{}'.format('None' if item.connectors[1].connectedItem is None else item.connectors[1].connectedItem.uid)) |
78 | 85 |
icon = QtGui.QIcon() |
79 | 86 |
icon.addPixmap(QtGui.QPixmap(":/newPrefix/doubleclick.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
80 | 87 |
connItem.setIcon(icon) |
81 |
self.setItem(5, 1, connItem)
|
|
88 |
self.setItem(6, 1, connItem)
|
|
82 | 89 |
elif issubclass(type(item), SymbolSvgItem): |
83 | 90 |
self.onSymbolClicked(item) |
84 | 91 |
elif type(item) is QEngineeringLineNoTextItem: |
... | ... | |
232 | 239 |
self.setRowCount(1) |
233 | 240 |
self.setItem(0, 0, QTableWidgetItem("UID")) |
234 | 241 |
elif type(item) is QEngineeringLineItem: |
235 |
self.setRowCount(6)
|
|
242 |
self.setRowCount(7)
|
|
236 | 243 | |
237 | 244 |
self.setItem(0, 0, QTableWidgetItem('UID')) |
245 |
self.setItem(1, 0, QTableWidgetItem('OWNER')) |
|
238 | 246 |
widgetItem = QTableWidgetItem("타입") |
239 | 247 |
widgetItem.setData(Qt.UserRole, item) |
240 |
self.setItem(1, 0, widgetItem)
|
|
248 |
self.setItem(2, 0, widgetItem)
|
|
241 | 249 |
self._lineTypeComboBox = QComboBox(self) |
242 | 250 |
self._lineTypeComboBox.tag = widgetItem |
243 | 251 |
appDocData = AppDocData.instance() |
244 | 252 |
lineTypes = appDocData.getLineTypes() |
245 | 253 |
for lineType in lineTypes: |
246 | 254 |
self._lineTypeComboBox.addItem(lineType) |
247 |
self.setCellWidget(1, 1, self._lineTypeComboBox)
|
|
255 |
self.setCellWidget(2, 1, self._lineTypeComboBox)
|
|
248 | 256 |
self._lineTypeComboBox.setCurrentText(item.lineType) |
249 | 257 |
self._lineTypeComboBox.currentIndexChanged.connect(self.onLineTypeChanged) |
250 | 258 | |
251 |
self.setItem(2, 0, QTableWidgetItem("시작점"))
|
|
252 |
self.setItem(3, 0, QTableWidgetItem("끝점"))
|
|
253 |
self.setItem(4, 0, QTableWidgetItem("CONN1"))
|
|
254 |
self.setItem(5, 0, QTableWidgetItem("CONN2"))
|
|
259 |
self.setItem(3, 0, QTableWidgetItem("시작점"))
|
|
260 |
self.setItem(4, 0, QTableWidgetItem("끝점"))
|
|
261 |
self.setItem(5, 0, QTableWidgetItem("CONN1"))
|
|
262 |
self.setItem(6, 0, QTableWidgetItem("CONN2"))
|
|
255 | 263 | |
256 | 264 |
for index in range(self.rowCount()): |
257 | 265 |
item = self.item(index, 0) |
... | ... | |
259 | 267 |
item.setFlags(Qt.ItemIsEnabled) |
260 | 268 |
item.setBackground(QColor(220, 220, 220)) |
261 | 269 |
except Exception as ex: |
262 |
print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)) |
|
270 |
from App import App |
|
271 | ||
272 |
message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno) |
|
273 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
|
274 | ||
263 | 275 |
''' |
264 | 276 |
@brief change selected lines' type by selected line type |
265 | 277 |
@author humkyung |
... | ... | |
294 | 306 |
self.setItem(2, 1, QTableWidgetItem(self.symData.type)) |
295 | 307 |
self.setItem(3, 1, QTableWidgetItem(str(round(math.degrees(self.symData.angle))))) |
296 | 308 |
self.setItem(4, 1, QTableWidgetItem(str(self.symData.origin))) |
297 |
self.setItem(5, 1, QTableWidgetItem('{}'.format(self.symData.owner))) |
|
309 |
owner_item = QTableWidgetItem('{}'.format(self.symData.owner)) |
|
310 |
icon = QtGui.QIcon() |
|
311 |
icon.addPixmap(QtGui.QPixmap(":/newPrefix/doubleclick.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) |
|
312 |
owner_item.setIcon(icon) |
|
313 |
self.setItem(5, 1, owner_item) |
|
314 | ||
298 | 315 |
if type(self.symData) is QEngineeringSpecBreakItem: |
299 | 316 |
setSpecsItem = QTableWidgetItem('Open') |
300 | 317 |
icon = QtGui.QIcon() |
... | ... | |
661 | 678 |
cmd = SelectAttributeCommand.SelectAttributeCommand(items[0], attr, self.mainWindow.graphicsView) |
662 | 679 |
cmd.onSuccess.connect(self.onSuccessSelectAttribute) |
663 | 680 |
self.mainWindow.graphicsView.command = cmd |
681 |
elif keyCell.text() == 'OWNER' and (type(items[0]) is QEngineeringLineItem) or (issubclass(type(items[0]), SymbolSvgItem)): |
|
682 |
from SymbolAttr import SymbolAttr |
|
683 |
attr = SymbolAttr() |
|
684 |
attr.AttributeType = "OWNER" |
|
685 |
cmd = SelectAttributeCommand.SelectAttributeCommand(items[0], attr, self.mainWindow.graphicsView) |
|
686 |
cmd.onSuccess.connect(self.onSuccessSelectAttribute) |
|
687 |
self.mainWindow.graphicsView.command = cmd |
|
664 | 688 |
elif type(items[0]) is QEngineeringSpecBreakItem: |
665 | 689 |
if keyCell.text() == 'UpStream' or keyCell.text() == 'DownStream': |
666 | 690 |
attr = keyCell.tag |
DTI_PID/DTI_PID/MainWindow.py | ||
---|---|---|
106 | 106 | |
107 | 107 |
self.toolBar.insertWidget(self.actionOCR, self.lineComboBox) |
108 | 108 |
self.toolBar.insertSeparator(self.actionOCR) |
109 |
self._display_widget = QWidget() |
|
110 |
layout = QVBoxLayout() |
|
111 |
self._by_line_no = QRadioButton() |
|
112 |
self._by_line_no.setChecked(True) |
|
113 |
self._by_line_no.setText('By Line No') |
|
114 |
layout.addWidget(self._by_line_no) |
|
115 |
self._by_line_type = QRadioButton() |
|
116 |
self._by_line_type.setText('By Line Type') |
|
117 |
layout.addWidget(self._by_line_type) |
|
118 |
self._display_widget.setLayout(layout) |
|
119 |
self.EditToolbar.insertWidget(self.actionOCR, self._display_widget) |
|
120 | ||
109 | 121 |
self.graphicsView = QtImageViewer.QtImageViewer(self) |
110 | 122 |
self.graphicsView.setParent(self.centralwidget) |
111 | 123 |
self.graphicsView.useDefaultCommand() ##### USE DEFAULT COMMAND |
... | ... | |
2256 | 2268 |
item.transfer.onRemoved.connect(self.itemRemoved) |
2257 | 2269 |
if item: self.addLineItemToScene(item) |
2258 | 2270 | |
2259 |
#errors = item.validate() |
|
2260 |
#for error in errors: self.graphicsView.scene.addItem(error) |
|
2261 | ||
2262 | 2271 |
self.progress.setValue(self.progress.value() + 1) |
2263 | 2272 |
|
2264 | 2273 |
QApplication.processEvents() |
... | ... | |
2296 | 2305 |
uid = uidElement.text |
2297 | 2306 |
runItem = self.graphicsView.findItemByUid(uid) |
2298 | 2307 |
if runItem is not None: |
2308 |
runItem._owner = item |
|
2299 | 2309 |
lineRunItem.items.append(runItem) |
2300 | 2310 | |
2301 | 2311 |
item.runs.append(lineRunItem) |
... | ... | |
2320 | 2330 |
uid = uidElement.text |
2321 | 2331 |
runItem = self.graphicsView.findItemByUid(uid) |
2322 | 2332 |
if runItem is not None: |
2333 |
runItem.owner = item |
|
2323 | 2334 |
lineRunItem.items.append(runItem) |
2324 | 2335 | |
2325 | 2336 |
item.runs.append(lineRunItem) |
... | ... | |
2557 | 2568 |
print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)) |
2558 | 2569 |
finally: |
2559 | 2570 |
pass |
2560 |
|
|
2571 |
|
DTI_PID/DTI_PID/QtImageViewer.py | ||
---|---|---|
292 | 292 |
self.command.execute(['mouseMoveEvent', event, scenePos]) |
293 | 293 |
if self.command.name == "SelectAttribute": |
294 | 294 |
QGraphicsView.mouseMoveEvent(self, event) |
295 |
#attrType = self.command._type |
|
296 |
#item = self.scene.itemAt(scenePos, QTransform()) |
|
297 |
#if item is not None and attrType == 'Text Item' and type(item) is QEngineeringTextItem: |
|
298 |
# QGraphicsView.mouseMoveEvent(self, event) |
|
299 |
#elif item is not None and attrType == 'Symbol Item' and issubclass(type(item), SymbolSvgItem): |
|
300 |
# QGraphicsView.mouseMoveEvent(self, event) |
|
301 |
#elif item is not None and attrType == 'Line Item' and type(item) is QEngineeringLineItem: |
|
302 |
# QGraphicsView.mouseMoveEvent(self, event) |
|
303 | ||
304 | 295 |
if self.command.isTreated == True: return |
305 | 296 |
except Exception as ex: |
306 | 297 |
print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)) |
DTI_PID/DTI_PID/Shapes/EngineeringLineNoTextItem.py | ||
---|---|---|
276 | 276 |
for connector in it.connectors: |
277 | 277 |
if (connector.connectedItem is not None) and (connector.connectedItem not in visited): pool.append(connector.connectedItem) |
278 | 278 |
except Exception as ex: |
279 |
print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)) |
|
279 |
from App import App |
|
280 |
from AppDocData import MessageType |
|
281 | ||
282 |
message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno) |
|
283 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
|
280 | 284 | |
281 | 285 |
return visited |
282 | 286 |
DTI_PID/DTI_PID/TextItemFactory.py | ||
---|---|---|
103 | 103 |
if configs: |
104 | 104 |
data = configs[0].value |
105 | 105 |
rgb = data.split(',') |
106 |
item.setColor(QColor(int(rgb[0]), int(rgb[1]), int(rgb[2])).name())
|
|
106 |
item.change_color(QColor(int(rgb[0]), int(rgb[1]), int(rgb[2])).name())
|
|
107 | 107 |
# up to here |
108 | 108 |
else: |
109 | 109 |
item = self.create_note_no_text(textInfo) |
내보내기 Unified diff