개정판 4eafad26
issue #1124: title block and text area on going
Change-Id: I9cfc49f9554b026c0d2d93276f1f5f416139f71d
DTI_PID/DTI_PID/ItemPropertyTableWidget.py | ||
---|---|---|
233 | 233 |
|
234 | 234 |
self.setItem(2, 3, QTableWidgetItem(self._item.type)) |
235 | 235 |
self.setItem(3, 3, QTableWidgetItem(self._item.text())) |
236 |
self.setItem(4, 3, QTableWidgetItem(self._item.area)) |
|
236 | 237 |
finally: |
237 | 238 |
self.blockSignals(False) |
238 | 239 |
|
... | ... | |
370 | 371 |
self.setRowCount(1) |
371 | 372 |
self.setItem(0, 1, QTableWidgetItem(self.tr("UID"))) |
372 | 373 |
else: |
373 |
self.setRowCount(4) |
|
374 |
app_doc_data = AppDocData.instance() |
|
375 |
area_list = app_doc_data.getAreaList() |
|
376 |
title_area_list = app_doc_data.getTitleBlockProperties() |
|
377 |
self.setRowCount(5) |
|
374 | 378 |
self.setItem(0, 1, QTableWidgetItem(self.tr("UID"))) |
375 | 379 |
self.setItem(1, 1, QTableWidgetItem(self.tr("OWNER"))) |
376 | 380 |
self.setItem(2, 1, QTableWidgetItem(self.tr("Type"))) |
377 | 381 |
self.setItem(3, 1, QTableWidgetItem(self.tr("Text"))) |
382 |
widgetItem = QTableWidgetItem(self.tr("Area")) |
|
383 |
widgetItem.setData(Qt.UserRole, item) |
|
384 |
self.setItem(4, 1, widgetItem) |
|
385 |
self._areaComboBox = QComboBox(self) |
|
386 |
self._areaComboBox.tag = widgetItem |
|
387 |
self._areaComboBox.addItem('None') |
|
388 |
for title_area in title_area_list: |
|
389 |
self._areaComboBox.addItem(title_area[1]) |
|
390 |
for area in area_list: |
|
391 |
self._areaComboBox.addItem(area.name) |
|
392 |
self.setCellWidget(4, 3, self._areaComboBox) |
|
393 |
self._areaComboBox.setCurrentText(item.area) |
|
394 |
self._areaComboBox.currentIndexChanged.connect(self.onAreaChanged) |
|
378 | 395 |
|
379 | 396 |
for index in range(self.rowCount()): |
380 | 397 |
item = self.item(index, 1) |
... | ... | |
398 | 415 |
if type(data) is QEngineeringLineItem: |
399 | 416 |
self.changeConnectedLineType(data, lineType) |
400 | 417 |
|
418 |
def onAreaChanged(self, param): |
|
419 |
area = self._areaComboBox.itemText(param) |
|
420 |
data = self._areaComboBox.tag.data(Qt.UserRole) |
|
421 |
if type(data) is QEngineeringTextItem: |
|
422 |
data.area = area |
|
423 |
|
|
401 | 424 |
def changeConnectedLineType(self, line, lineType): |
402 | 425 |
line.lineType = lineType |
403 | 426 |
if type(line.connectors[0].connectedItem) is QEngineeringLineItem and \ |
DTI_PID/DTI_PID/MainWindow.py | ||
---|---|---|
1115 | 1115 |
|
1116 | 1116 |
def onRecognizeText(self, x, y, width, height): |
1117 | 1117 |
from OcrResultDialog import QOcrResultDialog |
1118 |
from Area import Area |
|
1118 | 1119 |
|
1119 | 1120 |
try: |
1120 | 1121 |
app_doc_data = AppDocData.instance() |
... | ... | |
1139 | 1140 |
item.setDefaultTextColor(Qt.blue) |
1140 | 1141 |
item.addTextItemToScene(self.graphicsView.scene) |
1141 | 1142 |
item.transfer.onRemoved.connect(self.itemRemoved) |
1143 |
|
|
1144 |
area_list = app_doc_data.getAreaList() |
|
1145 |
title_area_list = app_doc_data.getTitleBlockProperties() |
|
1146 |
for title_area in title_area_list: |
|
1147 |
area = Area(title_area[1]) |
|
1148 |
area.parse(title_area[2]) |
|
1149 |
area_list.append(area) |
|
1150 |
for area in area_list: |
|
1151 |
pt = [item.sceneBoundingRect().center().x(), item.sceneBoundingRect().center().y()] |
|
1152 |
if area.contains(pt): |
|
1153 |
item.area = area.name |
|
1154 |
break |
|
1142 | 1155 |
else: |
1143 | 1156 |
message = 'error occurred({}) in {}:{}'.format('텍스트 생성에 실패했습니다.', sys.exc_info()[ |
1144 | 1157 |
-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno) |
내보내기 Unified diff