개정판 ba959d7e
cad symbol import
Change-Id: I5c2d175057ba402ca224b008a38176667291b961
DTI_PID/DTI_PID/BMSettingDialog.py | ||
---|---|---|
32 | 32 |
def __init__(self, parent=None, *args): |
33 | 33 |
QStandardItemModel.__init__(self, parent, *args) |
34 | 34 |
|
35 |
self.SymbolList = [ "CAP", "DRAIN CUP", "EOL", "FLANGE", "FLANGE BLIND", "ORIFICE", "SCREW CAP", \ |
|
35 |
self.SymbolList = [ "CAP", "DRAIN CUP", "EOL", "FLANGE", "FLANGE BLIND", "ORIFICE", "PLUG", "SCREW CAP", \
|
|
36 | 36 |
"3WAY", "4WAY", "ANGLE", "BALL", "BUTTERFLY", "CHECK", "DIAPHRAMVALVE", "GATE", "GLOBE", "NEEDLE", "PLUGVALVE", \ |
37 | 37 |
"CONTROL(ANGLE)", "CONTROL(BALL)", "CONTROL(BUTTERFLY)", "CONTROL(CHECK)", "CONTROL(GATE)", "CONTROL(GLOBE)", "CONTROL(NEEDLE)", "CONTROL(PLUG)", \ |
38 | 38 |
"MOV(ANGLE)", "MOV(BALL)", "MOV(BUTTERFLY)", "MOV(CHECK)", "MOV(GATE)", "MOV(GLOBE)", "MOV(NEEDLE)", "MOV(PLUG)", "MAGNETIC FLOW METER", "MASS FLOW METER", "ULTRASONIC FLOW METER", "VORTEX FLOW METER", "OPC", \ |
DTI_PID/DTI_PID/ImportTextFromCADDialog.py | ||
---|---|---|
10 | 10 |
from functools import reduce, partial |
11 | 11 |
import subprocess |
12 | 12 |
from xml.etree.ElementTree import Element, SubElement, dump, ElementTree, parse |
13 |
from SymbolRegiDataListDialog import QSymbolRegiDataListDialog |
|
13 | 14 |
|
14 | 15 |
import ImportTextFromCAD_UI |
15 | 16 |
|
... | ... | |
472 | 473 |
from App import App |
473 | 474 |
from AppDocData import MessageType |
474 | 475 |
|
475 |
message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \
|
|
476 |
f"{sys.exc_info()[-1].tb_lineno}"
|
|
477 |
QMessageBox.warning(self, 'Warning', message)
|
|
476 |
message = f'error occurred({ex}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:' \
|
|
477 |
f'{sys.exc_info()[-1].tb_lineno}'
|
|
478 |
App.mainWnd().addMessage.emit(MessageType.Error, message)
|
|
478 | 479 |
|
479 | 480 |
def on_load_line_type_mapping(self): |
480 | 481 |
"""load ID2-AutoCAD """ |
... | ... | |
511 | 512 |
from App import App |
512 | 513 |
from AppDocData import MessageType |
513 | 514 |
|
514 |
message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \
|
|
515 |
f"{sys.exc_info()[-1].tb_lineno}"
|
|
516 |
QMessageBox.warning(self, 'Warning', message)
|
|
515 |
message = f'error occurred({ex}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:' \
|
|
516 |
f'{sys.exc_info()[-1].tb_lineno}'
|
|
517 |
App.mainWnd().addMessage.emit(MessageType.Error, message)
|
|
517 | 518 |
|
518 | 519 |
model = LineTypeMappingModel() |
519 | 520 |
model.invisibleRootItem() |
... | ... | |
588 | 589 |
from App import App |
589 | 590 |
from AppDocData import MessageType |
590 | 591 |
|
591 |
message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \
|
|
592 |
f"{sys.exc_info()[-1].tb_lineno}"
|
|
593 |
QMessageBox.warning(self, 'Warning', message)
|
|
592 |
message = f'error occurred({ex}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:' \
|
|
593 |
f'{sys.exc_info()[-1].tb_lineno}'
|
|
594 |
App.mainWnd().addMessage.emit(MessageType.Error, message)
|
|
594 | 595 |
|
595 | 596 |
model = SymbolMappingModel() |
596 | 597 |
model.invisibleRootItem() |
... | ... | |
798 | 799 |
import XmlGenerator as xg |
799 | 800 |
import uuid |
800 | 801 |
from Drawing import Drawing |
801 |
from SymbolEditorDialog import QSymbolEditorDialog |
|
802 | 802 |
from App import App |
803 | 803 |
|
804 | 804 |
if not self._dwgs: |
... | ... | |
857 | 857 |
if node[0] not in symbols: |
858 | 858 |
symbols[node[0]] = node |
859 | 859 |
|
860 |
dialog = QSymbolRegiDataListDialog(self, image, symbols) |
|
861 |
dialog.show() |
|
862 |
|
|
863 |
''' |
|
860 | 864 |
for key, value in symbols.items(): |
861 | 865 |
symbolEditorDialog = QSymbolEditorDialog(self, image.copy(math.floor(value[2][0]), math.floor(value[2][1]), \ |
862 | 866 |
math.ceil(value[3] + 1), math.ceil(value[4] + 1)), \ |
... | ... | |
867 | 871 |
reply = QMessageBox.question(self, self.tr('Stop?'), self.tr('Do you want to stop registering symbols?'), QMessageBox.Yes, QMessageBox.Cancel) |
868 | 872 |
if reply == QMessageBox.Yes: |
869 | 873 |
break |
874 |
''' |
|
870 | 875 |
|
871 |
App.mainWnd().symbolTreeWidget.initSymbolTreeView() |
|
876 |
#App.mainWnd().symbolTreeWidget.initSymbolTreeView()
|
|
872 | 877 |
|
873 | 878 |
except Exception as ex: |
874 | 879 |
from App import App |
... | ... | |
1146 | 1151 |
|
1147 | 1152 |
message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \ |
1148 | 1153 |
f"{sys.exc_info()[-1].tb_lineno}" |
1149 |
|
|
1150 | 1154 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
1151 | 1155 |
|
1152 | 1156 |
return None |
... | ... | |
1231 | 1235 |
|
1232 | 1236 |
message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \ |
1233 | 1237 |
f"{sys.exc_info()[-1].tb_lineno}" |
1234 |
|
|
1235 | 1238 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
1236 | 1239 |
|
1237 | 1240 |
return None |
... | ... | |
1296 | 1299 |
|
1297 | 1300 |
message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \ |
1298 | 1301 |
f"{sys.exc_info()[-1].tb_lineno}" |
1299 |
|
|
1300 | 1302 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
1301 | 1303 |
|
1302 | 1304 |
def lines_to_xml(self, layers: list, line_types: list, line_node) -> list: |
... | ... | |
1381 | 1383 |
|
1382 | 1384 |
message = f"error occurred({repr(ex)}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:" \ |
1383 | 1385 |
f"{sys.exc_info()[-1].tb_lineno}" |
1384 |
|
|
1385 | 1386 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
1386 | 1387 |
|
1387 | 1388 |
return None |
DTI_PID/DTI_PID/SymbolRegiDataListDialog.py | ||
---|---|---|
1 |
import sys |
|
2 |
from PyQt5.QtCore import * |
|
3 |
from PyQt5.QtGui import * |
|
4 |
from PyQt5.QtWidgets import * |
|
5 |
from AppDocData import AppDocData |
|
6 |
import SymbolRegiDataList_UI |
|
7 |
from SpellTextEdit import SpellTextEdit |
|
8 |
from SymbolEditorDialog import QSymbolEditorDialog |
|
9 |
import math |
|
10 |
|
|
11 |
|
|
12 |
class forDoubleClicked(): |
|
13 |
def buttons(self): |
|
14 |
return Qt.LeftButton |
|
15 |
|
|
16 |
|
|
17 |
class QSymbolRegiDataListDialog(QDialog): |
|
18 |
""" This is text image data list dialog class """ |
|
19 |
|
|
20 |
def __init__(self, parent, image, symbolInfos): |
|
21 |
QDialog.__init__(self, parent) |
|
22 |
self.parent = parent |
|
23 |
self.symbolInfos = symbolInfos |
|
24 |
self.image = image |
|
25 |
self.isAccepted = False |
|
26 |
|
|
27 |
self.ui = SymbolRegiDataList_UI.Ui_SymbolRegiDataList() |
|
28 |
self.ui.setupUi(self) |
|
29 |
self.ui.buttonBox.button(QDialogButtonBox.Close).setIcon(QIcon(':/newPrefix/Remove.svg')) |
|
30 |
self.setWindowFlag(Qt.WindowMinMaxButtonsHint) |
|
31 |
|
|
32 |
# for List |
|
33 |
self.ui.tableWidget.setSelectionMode(QAbstractItemView.SingleSelection) |
|
34 |
self.ui.tableWidget.setColumnCount(2) |
|
35 |
self.ui.tableWidget.setSortingEnabled(True) |
|
36 |
|
|
37 |
# column header 명 설정 |
|
38 |
self.ui.tableWidget.setHorizontalHeaderLabels([self.tr('Symbol Image'), self.tr('Symbol Info')]) |
|
39 |
self.ui.tableWidget.horizontalHeaderItem(1).setSizeHint(QSize(30, 30)) |
|
40 |
self.ui.tableWidget.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch) |
|
41 |
self.ui.tableWidget.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch) |
|
42 |
self.ui.tableWidget.resizeColumnsToContents() |
|
43 |
self.ui.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers) |
|
44 |
|
|
45 |
# connect signals and slots |
|
46 |
self.ui.tableWidget.cellDoubleClicked.connect(self.listCellDoubleClicked) |
|
47 |
self.ui.pushButtonEdit.clicked.connect(self.pushButtonEditClicked) |
|
48 |
|
|
49 |
self.ui.tableWidget.verticalHeader().setDefaultSectionSize(60) |
|
50 |
self.ui.tableWidget.setRowCount(len(self.symbolInfos)) |
|
51 |
self.ui.tableWidget.keyPressEvent = self.keyPressEvent |
|
52 |
|
|
53 |
row = 0 |
|
54 |
for key, symbolInfo in self.symbolInfos.items(): |
|
55 |
imageWidget = QTableWidgetItem() |
|
56 |
symbolImage = self.image.copy(math.floor(symbolInfo[2][0]), math.floor(symbolInfo[2][1]), math.ceil(symbolInfo[3] + 1), math.ceil(symbolInfo[4] + 1)) |
|
57 |
|
|
58 |
symbolImage = symbolImage.scaled(500, 60, Qt.KeepAspectRatio, Qt.SmoothTransformation) |
|
59 |
imageWidget.setData(Qt.DecorationRole, symbolImage) |
|
60 |
self.ui.tableWidget.setItem(row, 0, imageWidget) |
|
61 |
|
|
62 |
textWidget = QTableWidgetItem(str(symbolInfo)) |
|
63 |
textWidget.tag = symbolInfo |
|
64 |
self.ui.tableWidget.setItem(row, 1, textWidget) |
|
65 |
font = QFont('Consolas', 15, QFont.Bold) |
|
66 |
text_edit = SpellTextEdit(str(symbolInfo)) |
|
67 |
text_edit.setFont(font) |
|
68 |
text_edit.setEnabled(False) |
|
69 |
self.ui.tableWidget.setCellWidget(row, 1, text_edit) |
|
70 |
row = row + 1 |
|
71 |
|
|
72 |
def listCellDoubleClicked(self, row, col): |
|
73 |
self.pushButtonEditClicked(row, col) |
|
74 |
|
|
75 |
def pushButtonEditClicked(self, row=None, col=None): |
|
76 |
try: |
|
77 |
if not row: |
|
78 |
row = self.ui.tableWidget.selectedIndexes()[0].row() |
|
79 |
col = 1 |
|
80 |
symbolItem = self.ui.tableWidget.item(row, col).tag |
|
81 |
|
|
82 |
symbolEditorDialog = QSymbolEditorDialog(self, self.image.copy(math.floor(symbolItem[2][0]), math.floor(symbolItem[2][1]), \ |
|
83 |
math.ceil(symbolItem[3] + 1), math.ceil(symbolItem[4] + 1)), \ |
|
84 |
AppDocData.instance().getCurrentProject(), symbolItem[1], False) |
|
85 |
(isAccepted, _, _, _, _) = symbolEditorDialog.showDialog() |
|
86 |
if isAccepted: |
|
87 |
self.isAccepted = True |
|
88 |
|
|
89 |
except Exception as ex: |
|
90 |
from App import App |
|
91 |
from AppDocData import MessageType |
|
92 |
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, |
|
93 |
sys.exc_info()[-1].tb_lineno) |
|
94 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
|
95 |
|
|
96 |
def keyPressEvent(self, event): |
|
97 |
try: |
|
98 |
if Qt.Key_Return == event.key(): |
|
99 |
self.pushButtonEditClicked() |
|
100 |
|
|
101 |
try: |
|
102 |
row = self.ui.tableWidget.selectedIndexes()[0].row() |
|
103 |
col = self.ui.tableWidget.selectedIndexes()[0].column() |
|
104 |
if event.key() == Qt.Key_Up: |
|
105 |
if row != 0: |
|
106 |
row -= 1 |
|
107 |
self.ui.tableWidget.setCurrentItem(self.ui.tableWidget.item(row, col)) |
|
108 |
self.ui.tableWidget.scrollToItem(self.ui.tableWidget.item(row, col), |
|
109 |
QAbstractItemView.EnsureVisible) |
|
110 |
elif event.key() == Qt.Key_Down: |
|
111 |
if row is not self.ui.tableWidget.rowCount() - 1: |
|
112 |
row += 1 |
|
113 |
self.ui.tableWidget.setCurrentItem(self.ui.tableWidget.item(row, col)) |
|
114 |
self.ui.tableWidget.scrollToItem(self.ui.tableWidget.item(row, col), |
|
115 |
QAbstractItemView.EnsureVisible) |
|
116 |
except Exception as ex: |
|
117 |
pass |
|
118 |
|
|
119 |
# QDialog.keyPressEvent(self, event) |
|
120 |
|
|
121 |
except Exception as ex: |
|
122 |
from App import App |
|
123 |
from AppDocData import MessageType |
|
124 |
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, |
|
125 |
sys.exc_info()[-1].tb_lineno) |
|
126 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
DTI_PID/DTI_PID/SymbolRegiDataList_UI.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
|
|
3 |
# Form implementation generated from reading ui file './UI/SymbolRegiDataList.ui' |
|
4 |
# |
|
5 |
# Created by: PyQt5 UI code generator 5.9.2 |
|
6 |
# |
|
7 |
# WARNING! All changes made in this file will be lost! |
|
8 |
|
|
9 |
from PyQt5 import QtCore, QtGui, QtWidgets |
|
10 |
|
|
11 |
class Ui_SymbolRegiDataList(object): |
|
12 |
def setupUi(self, SymbolRegiDataList): |
|
13 |
SymbolRegiDataList.setObjectName("SymbolRegiDataList") |
|
14 |
SymbolRegiDataList.resize(1160, 775) |
|
15 |
self.gridLayout = QtWidgets.QGridLayout(SymbolRegiDataList) |
|
16 |
self.gridLayout.setObjectName("gridLayout") |
|
17 |
self.verticalLayout = QtWidgets.QVBoxLayout() |
|
18 |
self.verticalLayout.setObjectName("verticalLayout") |
|
19 |
self.horizontalLayout = QtWidgets.QHBoxLayout() |
|
20 |
self.horizontalLayout.setObjectName("horizontalLayout") |
|
21 |
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) |
|
22 |
self.horizontalLayout.addItem(spacerItem) |
|
23 |
self.pushButtonEdit = QtWidgets.QPushButton(SymbolRegiDataList) |
|
24 |
self.pushButtonEdit.setFocusPolicy(QtCore.Qt.NoFocus) |
|
25 |
self.pushButtonEdit.setObjectName("pushButtonEdit") |
|
26 |
self.horizontalLayout.addWidget(self.pushButtonEdit) |
|
27 |
self.verticalLayout.addLayout(self.horizontalLayout) |
|
28 |
self.tableWidget = QtWidgets.QTableWidget(SymbolRegiDataList) |
|
29 |
self.tableWidget.setObjectName("tableWidget") |
|
30 |
self.tableWidget.setColumnCount(3) |
|
31 |
self.tableWidget.setRowCount(0) |
|
32 |
item = QtWidgets.QTableWidgetItem() |
|
33 |
self.tableWidget.setHorizontalHeaderItem(0, item) |
|
34 |
item = QtWidgets.QTableWidgetItem() |
|
35 |
self.tableWidget.setHorizontalHeaderItem(1, item) |
|
36 |
item = QtWidgets.QTableWidgetItem() |
|
37 |
self.tableWidget.setHorizontalHeaderItem(2, item) |
|
38 |
self.verticalLayout.addWidget(self.tableWidget) |
|
39 |
self.buttonBox = QtWidgets.QDialogButtonBox(SymbolRegiDataList) |
|
40 |
self.buttonBox.setFocusPolicy(QtCore.Qt.StrongFocus) |
|
41 |
self.buttonBox.setOrientation(QtCore.Qt.Horizontal) |
|
42 |
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Close) |
|
43 |
self.buttonBox.setObjectName("buttonBox") |
|
44 |
self.verticalLayout.addWidget(self.buttonBox) |
|
45 |
self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 1) |
|
46 |
|
|
47 |
self.retranslateUi(SymbolRegiDataList) |
|
48 |
self.buttonBox.accepted.connect(SymbolRegiDataList.accept) |
|
49 |
self.buttonBox.rejected.connect(SymbolRegiDataList.reject) |
|
50 |
QtCore.QMetaObject.connectSlotsByName(SymbolRegiDataList) |
|
51 |
|
|
52 |
def retranslateUi(self, SymbolRegiDataList): |
|
53 |
_translate = QtCore.QCoreApplication.translate |
|
54 |
SymbolRegiDataList.setWindowTitle(_translate("SymbolRegiDataList", "Symbol Registration")) |
|
55 |
self.pushButtonEdit.setText(_translate("SymbolRegiDataList", "Create")) |
|
56 |
item = self.tableWidget.horizontalHeaderItem(0) |
|
57 |
item.setText(_translate("SymbolRegiDataList", "No.")) |
|
58 |
item = self.tableWidget.horizontalHeaderItem(1) |
|
59 |
item.setText(_translate("SymbolRegiDataList", "Symbol Image")) |
|
60 |
item = self.tableWidget.horizontalHeaderItem(2) |
|
61 |
item.setText(_translate("SymbolRegiDataList", "Registration")) |
|
62 |
|
|
63 |
|
|
64 |
if __name__ == "__main__": |
|
65 |
import sys |
|
66 |
app = QtWidgets.QApplication(sys.argv) |
|
67 |
SymbolRegiDataList = QtWidgets.QDialog() |
|
68 |
ui = Ui_SymbolRegiDataList() |
|
69 |
ui.setupUi(SymbolRegiDataList) |
|
70 |
SymbolRegiDataList.show() |
|
71 |
sys.exit(app.exec_()) |
|
72 |
|
DTI_PID/DTI_PID/UI/SymbolRegiDataList.ui | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<ui version="4.0"> |
|
3 |
<class>SymbolRegiDataList</class> |
|
4 |
<widget class="QDialog" name="SymbolRegiDataList"> |
|
5 |
<property name="geometry"> |
|
6 |
<rect> |
|
7 |
<x>0</x> |
|
8 |
<y>0</y> |
|
9 |
<width>1160</width> |
|
10 |
<height>775</height> |
|
11 |
</rect> |
|
12 |
</property> |
|
13 |
<property name="windowTitle"> |
|
14 |
<string>Symbol Registration</string> |
|
15 |
</property> |
|
16 |
<layout class="QGridLayout" name="gridLayout"> |
|
17 |
<item row="0" column="0"> |
|
18 |
<layout class="QVBoxLayout" name="verticalLayout"> |
|
19 |
<item> |
|
20 |
<layout class="QHBoxLayout" name="horizontalLayout"> |
|
21 |
<item> |
|
22 |
<spacer name="horizontalSpacer"> |
|
23 |
<property name="orientation"> |
|
24 |
<enum>Qt::Horizontal</enum> |
|
25 |
</property> |
|
26 |
<property name="sizeHint" stdset="0"> |
|
27 |
<size> |
|
28 |
<width>40</width> |
|
29 |
<height>20</height> |
|
30 |
</size> |
|
31 |
</property> |
|
32 |
</spacer> |
|
33 |
</item> |
|
34 |
<item> |
|
35 |
<widget class="QPushButton" name="pushButtonEdit"> |
|
36 |
<property name="focusPolicy"> |
|
37 |
<enum>Qt::NoFocus</enum> |
|
38 |
</property> |
|
39 |
<property name="text"> |
|
40 |
<string>Create</string> |
|
41 |
</property> |
|
42 |
</widget> |
|
43 |
</item> |
|
44 |
</layout> |
|
45 |
</item> |
|
46 |
<item> |
|
47 |
<widget class="QTableWidget" name="tableWidget"> |
|
48 |
<column> |
|
49 |
<property name="text"> |
|
50 |
<string>No.</string> |
|
51 |
</property> |
|
52 |
</column> |
|
53 |
<column> |
|
54 |
<property name="text"> |
|
55 |
<string>Symbol Image</string> |
|
56 |
</property> |
|
57 |
</column> |
|
58 |
<column> |
|
59 |
<property name="text"> |
|
60 |
<string>Registration</string> |
|
61 |
</property> |
|
62 |
</column> |
|
63 |
</widget> |
|
64 |
</item> |
|
65 |
<item> |
|
66 |
<widget class="QDialogButtonBox" name="buttonBox"> |
|
67 |
<property name="focusPolicy"> |
|
68 |
<enum>Qt::StrongFocus</enum> |
|
69 |
</property> |
|
70 |
<property name="orientation"> |
|
71 |
<enum>Qt::Horizontal</enum> |
|
72 |
</property> |
|
73 |
<property name="standardButtons"> |
|
74 |
<set>QDialogButtonBox::Close</set> |
|
75 |
</property> |
|
76 |
</widget> |
|
77 |
</item> |
|
78 |
</layout> |
|
79 |
</item> |
|
80 |
</layout> |
|
81 |
</widget> |
|
82 |
<resources/> |
|
83 |
<connections> |
|
84 |
<connection> |
|
85 |
<sender>buttonBox</sender> |
|
86 |
<signal>accepted()</signal> |
|
87 |
<receiver>SymbolRegiDataList</receiver> |
|
88 |
<slot>accept()</slot> |
|
89 |
<hints> |
|
90 |
<hint type="sourcelabel"> |
|
91 |
<x>248</x> |
|
92 |
<y>254</y> |
|
93 |
</hint> |
|
94 |
<hint type="destinationlabel"> |
|
95 |
<x>157</x> |
|
96 |
<y>274</y> |
|
97 |
</hint> |
|
98 |
</hints> |
|
99 |
</connection> |
|
100 |
<connection> |
|
101 |
<sender>buttonBox</sender> |
|
102 |
<signal>rejected()</signal> |
|
103 |
<receiver>SymbolRegiDataList</receiver> |
|
104 |
<slot>reject()</slot> |
|
105 |
<hints> |
|
106 |
<hint type="sourcelabel"> |
|
107 |
<x>316</x> |
|
108 |
<y>260</y> |
|
109 |
</hint> |
|
110 |
<hint type="destinationlabel"> |
|
111 |
<x>286</x> |
|
112 |
<y>274</y> |
|
113 |
</hint> |
|
114 |
</hints> |
|
115 |
</connection> |
|
116 |
</connections> |
|
117 |
</ui> |
내보내기 Unified diff