개정판 9f428148
issue #1172: 데이터 이관 - SQLite에 있는 데이타를 MSSQL로 이관한다
Change-Id: I11bba04b97b5cdd8462e1d24f909d76dcf43cd95
DTI_PID/DTI_PID/AppDocData.py | ||
---|---|---|
111 | 111 |
self._titleBlockProperties = None |
112 | 112 |
self.needReOpening = None |
113 | 113 |
|
114 |
self.configTable = None
|
|
114 |
self._configs = None
|
|
115 | 115 |
|
116 | 116 |
def clearItemList(self, trim): |
117 | 117 |
''' |
... | ... | |
1170 | 1170 |
""" get configurations from database """ |
1171 | 1171 |
res = [] |
1172 | 1172 |
|
1173 |
if self.configTable is None:
|
|
1174 |
self.configTable = []
|
|
1173 |
if self._configs is None:
|
|
1174 |
self._configs = []
|
|
1175 | 1175 |
conn = self.project.database.connect() |
1176 | 1176 |
with conn: |
1177 | 1177 |
try: |
... | ... | |
1183 | 1183 |
cursor.execute(sql) |
1184 | 1184 |
rows = cursor.fetchall() |
1185 | 1185 |
for row in rows: |
1186 |
self.configTable.append(Config(row[0], row[1], row[2]))
|
|
1186 |
self._configs.append(Config(row[0], row[1], row[2]))
|
|
1187 | 1187 |
# Catch the exception |
1188 | 1188 |
except Exception as ex: |
1189 | 1189 |
print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)) |
1190 | 1190 |
|
1191 | 1191 |
if key is not None: |
1192 |
for con in self.configTable: |
|
1193 |
if con.section == section and con.key == key: |
|
1194 |
res.append(con) |
|
1192 |
return [con for con in self._configs if con.section == section and con.key == key] |
|
1195 | 1193 |
else: |
1196 |
for con in self.configTable: |
|
1197 |
if con.section == section: |
|
1198 |
res.append(con) |
|
1194 |
return [con for con in self._configs if con.section == section] |
|
1199 | 1195 |
|
1200 | 1196 |
return res |
1201 | 1197 |
|
... | ... | |
1268 | 1264 |
else: |
1269 | 1265 |
if sql is not None and 2 == len(sql): |
1270 | 1266 |
cursor.execute(self.project.database.to_sql(sql[0]), sql[1]) |
1267 |
self.configTable = None # reset config table |
|
1271 | 1268 |
conn.commit() |
1272 | 1269 |
# Catch the exception |
1273 | 1270 |
except Exception as ex: |
... | ... | |
3110 | 3107 |
@property |
3111 | 3108 |
def OCRData(self): |
3112 | 3109 |
if self._OCRData is None: |
3113 |
configs = self.getConfigs('Text Recognition', 'OCR Data')
|
|
3110 |
configs = self.etConfigs('Text Recognition', 'OCR Data') |
|
3114 | 3111 |
self._OCRData = configs[0].value if 1 == len(configs) else 'eng' |
3115 | 3112 |
|
3116 | 3113 |
return self._OCRData |
DTI_PID/DTI_PID/Configs.py | ||
---|---|---|
6 | 6 |
from AppDocData import AppDocData |
7 | 7 |
from CodeTables import CodeTable |
8 | 8 |
|
9 |
class Config: |
|
10 |
def __init__(self, section, key, value): |
|
11 |
self.section = section |
|
12 |
self.key = key |
|
13 |
self.value = value |
|
14 |
|
|
15 | 9 |
class LineNoConfig: |
16 | 10 |
DELIMITER = '"' |
17 | 11 |
|
DTI_PID/DTI_PID/DataTransferDialog.py | ||
---|---|---|
1 |
# coding: utf-8 |
|
2 |
""" This is Data Transfer dialog module """ |
|
3 |
|
|
4 |
import os |
|
5 |
import sys |
|
6 |
from PyQt5.QtCore import * |
|
7 |
from PyQt5.QtGui import * |
|
8 |
from PyQt5.QtWidgets import * |
|
9 |
|
|
10 |
from AppDocData import AppDocData, MessageType |
|
11 |
|
|
12 |
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '\\UI') |
|
13 |
import DataTransfer_UI |
|
14 |
|
|
15 |
class QDataTransferDialog(QDialog): |
|
16 |
""" This Data Trasnfer dialog class """ |
|
17 |
|
|
18 |
def __init__(self, parent): |
|
19 |
QDialog.__init__(self, parent) |
|
20 |
|
|
21 |
self.ui = DataTransfer_UI.Ui_DataTransferDialog() |
|
22 |
self.ui.setupUi(self) |
|
23 |
self.ui.lineEditPassword.setEchoMode(QLineEdit.Password) |
|
24 |
self.ui.pushButtonTestConnection.clicked.connect(self.on_test_connection_clicked) |
|
25 |
|
|
26 |
self.load_data() |
|
27 |
|
|
28 |
def load_data(self): |
|
29 |
""" load mssql server information and drawing list """ |
|
30 |
from AppDocData import AppDocData |
|
31 |
|
|
32 |
configs = AppDocData.instance().getConfigs('Data Transfer') |
|
33 |
for config in configs: |
|
34 |
if 'Server' == config.key: |
|
35 |
self.ui.lineEditServer.setText(config.value) |
|
36 |
elif 'User' == config.key: |
|
37 |
self.ui.lineEditUser.setText(config.value) |
|
38 |
elif 'Password' == config.key: |
|
39 |
self.ui.lineEditPassword.setText(config.value) |
|
40 |
|
|
41 |
self.load_drawing_list() |
|
42 |
|
|
43 |
def load_drawing_list(self): |
|
44 |
""" load drawing list """ |
|
45 |
|
|
46 |
try: |
|
47 |
app_doc_data = AppDocData.instance() |
|
48 |
drawings = app_doc_data.getDrawings() |
|
49 |
|
|
50 |
self.ui.treeWidgetDrawingList.clear() |
|
51 |
self.ui.treeWidgetDrawingList.root = QTreeWidgetItem(self.ui.treeWidgetDrawingList, [self.tr('P&ID Drawings'), '']) |
|
52 |
self.ui.treeWidgetDrawingList.root.setFlags(self.ui.treeWidgetDrawingList.root.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable) |
|
53 |
self.ui.treeWidgetDrawingList.root.setCheckState(0, Qt.Unchecked) |
|
54 |
files = app_doc_data.getDrawingFileList() |
|
55 |
for file in files: |
|
56 |
drawing = [drawing for drawing in drawings if drawing[1] == file] |
|
57 |
if not drawing or not drawing[0]: |
|
58 |
drawings.append([None, file, None]) |
|
59 |
|
|
60 |
item = QTreeWidgetItem(self.ui.treeWidgetDrawingList.root, [file, drawing[0][2] if drawing and drawing[0] else '']) |
|
61 |
item.setIcon(0, QIcon(':newPrefix/image.png')) |
|
62 |
item.setFlags(item.flags() | Qt.ItemIsUserCheckable) |
|
63 |
item.setCheckState(0, Qt.Unchecked) |
|
64 |
|
|
65 |
self.ui.treeWidgetDrawingList.root.setText(0, self.tr('P&ID Drawings')+'({})'.format(self.ui.treeWidgetDrawingList.root.childCount())) |
|
66 |
self.ui.treeWidgetDrawingList.expandItem(self.ui.treeWidgetDrawingList.root) |
|
67 |
self.ui.treeWidgetDrawingList.root.sortChildren(0, Qt.AscendingOrder) |
|
68 |
self.ui.treeWidgetDrawingList.resizeColumnToContents(0) |
|
69 |
except Exception as ex: |
|
70 |
from App import App |
|
71 |
message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno) |
|
72 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
|
73 |
|
|
74 |
def on_test_connection_clicked(self): |
|
75 |
""" test if connection is success or not """ |
|
76 |
from AppDocData import AppDocData |
|
77 |
from AppDatabase import AppDatabase |
|
78 |
|
|
79 |
server = self.ui.lineEditServer.text() |
|
80 |
user = self.ui.lineEditUser.text() |
|
81 |
password = self.ui.lineEditPassword.text() |
|
82 |
if server and user and password: |
|
83 |
app_doc_data = AppDocData.instance() |
|
84 |
database = AppDatabase('MSSQL', self.ui.lineEditServer.text(), self.ui.lineEditUser.text(), self.ui.lineEditPassword.text(), db_path=app_doc_data.project.getName()) |
|
85 |
try: |
|
86 |
conn = database.connect() |
|
87 |
with conn: |
|
88 |
QMessageBox.information(self, self.tr('Information'), self.tr('Test connection is success')) |
|
89 |
except Exception as ex: |
|
90 |
mb = QMessageBox() |
|
91 |
mb.setIcon(QMessageBox.Critical) |
|
92 |
mb.setWindowTitle(self.tr('Error')) |
|
93 |
mb.setText('{}'.format(ex)) |
|
94 |
mb.exec_() |
|
95 |
|
|
96 |
def accept(self): |
|
97 |
""" save sql information to database """ |
|
98 |
from AppDocData import Config |
|
99 |
|
|
100 |
try: |
|
101 |
configs = [] |
|
102 |
configs.append(Config('Data Transfer', 'Server', self.ui.lineEditServer.text())) |
|
103 |
configs.append(Config('Data Transfer', 'User', self.ui.lineEditUser.text())) |
|
104 |
configs.append(Config('Data Transfer', 'Password', self.ui.lineEditPassword.text())) |
|
105 |
AppDocData.instance().saveConfigs(configs) |
|
106 |
|
|
107 |
QDialog.accept(self) |
|
108 |
except Exception as ex: |
|
109 |
from App import App |
|
110 |
message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno) |
|
111 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
DTI_PID/DTI_PID/Drawing.py | ||
---|---|---|
51 | 51 |
else: |
52 | 52 |
self._attrs.append([name, value]) |
53 | 53 |
|
54 |
print('attribute({},{})'.format(name, value)) |
|
54 |
print('attribute({},{})'.format(name, value)) |
|
55 |
|
|
56 |
def transfer(self, database): |
|
57 |
""" data transfer to given database """ |
|
58 |
pass |
DTI_PID/DTI_PID/ID2.pro | ||
---|---|---|
1 |
SOURCES += MainWindow_UI.py MainWindow.py License_UI.py License.py Project_UI.py ProjectDialog.py Recognition_UI.py SymbolPropertyTableWidget.py SymbolEditor_UI.py TextItemEdit_UI.py TrainingEditor_UI.py TrainingImageList_UI.py SpecBreak_UI.py ItemDataExport_UI.py OcrResultDialog_UI.py SymbolAttrEditor_UI.py SymbolEditor_UI.py TrainingImageListDialog.py Configuration_UI.py Configuration_Area_UI.py ItemDataFormat_UI.py ItemDataExportDialog.py HMB_UI.py RecognitionDialog.py LineNoTracer.py ConnectAttr_UI.py ItemTreeWidget.py |
|
1 |
SOURCES += MainWindow_UI.py MainWindow.py License_UI.py License.py Project_UI.py ProjectDialog.py Recognition_UI.py SymbolPropertyTableWidget.py SymbolEditor_UI.py TextItemEdit_UI.py TrainingEditor_UI.py TrainingImageList_UI.py SpecBreak_UI.py ItemDataExport_UI.py OcrResultDialog_UI.py SymbolAttrEditor_UI.py SymbolEditor_UI.py TrainingImageListDialog.py Configuration_UI.py Configuration_Area_UI.py ItemDataFormat_UI.py ItemDataExportDialog.py HMB_UI.py RecognitionDialog.py LineNoTracer.py ConnectAttr_UI.py ItemTreeWidget.py .\UI\DataTransfer_UI.py
|
|
2 | 2 |
TRANSLATIONS = translate/ko_kr.ts translate/ja_jp.ts |
DTI_PID/DTI_PID/MainWindow.py | ||
---|---|---|
206 | 206 |
self.actionItem_Data_List.triggered.connect(self.showItemDataList) |
207 | 207 |
self.actionText_Data_List.triggered.connect(self.showTextDataList) |
208 | 208 |
self.actionSpecialItemTypes.triggered.connect(self.on_show_special_item_types) ### show special item types dialog |
209 |
self.actionDataTransfer.triggered.connect(self.on_show_data_transfer) ### show data transfer dialog |
|
210 |
self.actionOPCRelation.triggered.connect(self.on_show_opc_relation) ### show OPC Relation dialog |
|
209 | 211 |
self.actionCodeTable.triggered.connect(self.onShowCodeTable) |
210 | 212 |
self.actionImage_Drawing.triggered.connect(self.onViewImageDrawing) |
211 | 213 |
self.actionDrawing_Only.triggered.connect(self.onViewDrawingOnly) |
... | ... | |
1014 | 1016 |
dlg = QSpecialItemTypesDialog(self) |
1015 | 1017 |
dlg.exec_() |
1016 | 1018 |
|
1019 |
def on_show_data_transfer(self): |
|
1020 |
""" show data transfer dialog """ |
|
1021 |
from DataTransferDialog import QDataTransferDialog |
|
1022 |
|
|
1023 |
dlg = QDataTransferDialog(self) |
|
1024 |
dlg.exec_() |
|
1025 |
|
|
1026 |
def on_show_opc_relation(self): |
|
1027 |
""" show opc relation dialog """ |
|
1028 |
from OPCRelationDialog import QOPCRelationDialog |
|
1029 |
|
|
1030 |
dlg = QOPCRelationDialog(self) |
|
1031 |
dlg.exec_() |
|
1032 |
|
|
1017 | 1033 |
''' |
1018 | 1034 |
@brief show nominal diameter dialog |
1019 | 1035 |
@author humkyung |
DTI_PID/DTI_PID/MainWindow_UI.py | ||
---|---|---|
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
# Form implementation generated from reading ui file '.\UI\MainWindow.ui'
|
|
3 |
# Form implementation generated from reading ui file '.\ui\MainWindow.ui'
|
|
4 | 4 |
# |
5 | 5 |
# Created by: PyQt5 UI code generator 5.13.0 |
6 | 6 |
# |
... | ... | |
472 | 472 |
self.actionImport_Text_From_CAD.setObjectName("actionImport_Text_From_CAD") |
473 | 473 |
self.actionSpecialItemTypes = QtWidgets.QAction(MainWindow) |
474 | 474 |
self.actionSpecialItemTypes.setObjectName("actionSpecialItemTypes") |
475 |
self.actionDataTransfer = QtWidgets.QAction(MainWindow) |
|
476 |
self.actionDataTransfer.setObjectName("actionDataTransfer") |
|
477 |
self.actionOPCRelation = QtWidgets.QAction(MainWindow) |
|
478 |
self.actionOPCRelation.setObjectName("actionOPCRelation") |
|
475 | 479 |
self.menu.addAction(self.actionOpen) |
476 | 480 |
self.menu.addAction(self.actionArea) |
477 | 481 |
self.menu.addAction(self.actionConfiguration) |
... | ... | |
484 | 488 |
self.menu_2.addAction(self.actionItem_Data_List) |
485 | 489 |
self.menu_2.addSeparator() |
486 | 490 |
self.menu_2.addAction(self.actionSpecialItemTypes) |
491 |
self.menu_2.addAction(self.actionOPCRelation) |
|
492 |
self.menu_2.addSeparator() |
|
487 | 493 |
self.menu_2.addAction(self.actionCodeTable) |
488 | 494 |
self.menu_2.addAction(self.actionOCR_Training) |
489 | 495 |
self.menu_3.addAction(self.actionImage_Drawing) |
... | ... | |
498 | 504 |
self.menu_3.addAction(self.actionDrawing_Only) |
499 | 505 |
self.menu_4.addAction(self.actionpdf_to_image) |
500 | 506 |
self.menu_4.addAction(self.actionImport_Text_From_CAD) |
507 |
self.menu_4.addSeparator() |
|
508 |
self.menu_4.addAction(self.actionDataTransfer) |
|
501 | 509 |
self.menu_5.addAction(self.actionFindReplaceText) |
502 | 510 |
self.menu_5.addAction(self.actionText_Data_List) |
503 | 511 |
self.menubar.addAction(self.menu.menuAction()) |
... | ... | |
614 | 622 |
self.actionImport_Text_From_CAD.setText(_translate("MainWindow", "Import Text From CAD")) |
615 | 623 |
self.actionSpecialItemTypes.setText(_translate("MainWindow", "Special Item Types")) |
616 | 624 |
self.actionSpecialItemTypes.setToolTip(_translate("MainWindow", "Special Item Types")) |
625 |
self.actionDataTransfer.setText(_translate("MainWindow", "DataTransfer")) |
|
626 |
self.actionDataTransfer.setToolTip(_translate("MainWindow", "Data Transfer")) |
|
627 |
self.actionOPCRelation.setText(_translate("MainWindow", "OPCRelation")) |
|
628 |
self.actionOPCRelation.setToolTip(_translate("MainWindow", "OPC Relation")) |
|
617 | 629 |
import MainWindow_rc |
DTI_PID/DTI_PID/OPCRelationDialog.py | ||
---|---|---|
1 |
# coding: utf-8 |
|
2 |
""" This is OPC Relation dialog module """ |
|
3 |
|
|
4 |
import os |
|
5 |
import sys |
|
6 |
from PyQt5.QtCore import * |
|
7 |
from PyQt5.QtGui import * |
|
8 |
from PyQt5.QtWidgets import * |
|
9 |
from AppDocData import AppDocData, MessageType |
|
10 |
|
|
11 |
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '\\UI') |
|
12 |
import OPCRelation_UI |
|
13 |
|
|
14 |
class QOPCRelationDialog(QDialog): |
|
15 |
""" This OPC Relation dialog class """ |
|
16 |
|
|
17 |
def __init__(self, parent): |
|
18 |
QDialog.__init__(self, parent) |
|
19 |
|
|
20 |
self.ui = OPCRelation_UI.Ui_OPCRelationDialog() |
|
21 |
self.ui.setupUi(self) |
|
22 |
|
|
23 |
def accept(self): |
|
24 |
""" save sql information to database """ |
|
25 |
try: |
|
26 |
QDialog.accept(self) |
|
27 |
except Exception as ex: |
|
28 |
from App import App |
|
29 |
message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno) |
|
30 |
App.mainWnd().addMessage.emit(MessageType.Error, message) |
DTI_PID/DTI_PID/UI/DataTransfer.ui | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<ui version="4.0"> |
|
3 |
<class>DataTransferDialog</class> |
|
4 |
<widget class="QDialog" name="DataTransferDialog"> |
|
5 |
<property name="geometry"> |
|
6 |
<rect> |
|
7 |
<x>0</x> |
|
8 |
<y>0</y> |
|
9 |
<width>683</width> |
|
10 |
<height>385</height> |
|
11 |
</rect> |
|
12 |
</property> |
|
13 |
<property name="windowTitle"> |
|
14 |
<string>Data Transfer</string> |
|
15 |
</property> |
|
16 |
<layout class="QGridLayout" name="gridLayout"> |
|
17 |
<item row="2" column="0"> |
|
18 |
<widget class="QDialogButtonBox" name="buttonBox"> |
|
19 |
<property name="orientation"> |
|
20 |
<enum>Qt::Horizontal</enum> |
|
21 |
</property> |
|
22 |
<property name="standardButtons"> |
|
23 |
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> |
|
24 |
</property> |
|
25 |
</widget> |
|
26 |
</item> |
|
27 |
<item row="0" column="0"> |
|
28 |
<widget class="QSplitter" name="splitter"> |
|
29 |
<property name="baseSize"> |
|
30 |
<size> |
|
31 |
<width>0</width> |
|
32 |
<height>0</height> |
|
33 |
</size> |
|
34 |
</property> |
|
35 |
<property name="orientation"> |
|
36 |
<enum>Qt::Horizontal</enum> |
|
37 |
</property> |
|
38 |
<widget class="QGroupBox" name="groupBox"> |
|
39 |
<property name="title"> |
|
40 |
<string>Drawings</string> |
|
41 |
</property> |
|
42 |
<layout class="QGridLayout" name="gridLayout_2"> |
|
43 |
<item row="0" column="0"> |
|
44 |
<widget class="QTreeWidget" name="treeWidgetDrawingList"> |
|
45 |
<property name="minimumSize"> |
|
46 |
<size> |
|
47 |
<width>100</width> |
|
48 |
<height>0</height> |
|
49 |
</size> |
|
50 |
</property> |
|
51 |
<property name="baseSize"> |
|
52 |
<size> |
|
53 |
<width>200</width> |
|
54 |
<height>0</height> |
|
55 |
</size> |
|
56 |
</property> |
|
57 |
<attribute name="headerVisible"> |
|
58 |
<bool>false</bool> |
|
59 |
</attribute> |
|
60 |
<column> |
|
61 |
<property name="text"> |
|
62 |
<string notr="true">1</string> |
|
63 |
</property> |
|
64 |
</column> |
|
65 |
</widget> |
|
66 |
</item> |
|
67 |
</layout> |
|
68 |
</widget> |
|
69 |
<widget class="QGroupBox" name="groupBox_2"> |
|
70 |
<property name="title"> |
|
71 |
<string>MSSQL</string> |
|
72 |
</property> |
|
73 |
<layout class="QGridLayout" name="gridLayout_3"> |
|
74 |
<item row="1" column="0"> |
|
75 |
<layout class="QFormLayout" name="formLayout"> |
|
76 |
<property name="formAlignment"> |
|
77 |
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> |
|
78 |
</property> |
|
79 |
<item row="0" column="0"> |
|
80 |
<widget class="QLabel" name="label"> |
|
81 |
<property name="text"> |
|
82 |
<string>Server</string> |
|
83 |
</property> |
|
84 |
</widget> |
|
85 |
</item> |
|
86 |
<item row="0" column="1"> |
|
87 |
<widget class="QLineEdit" name="lineEditServer"/> |
|
88 |
</item> |
|
89 |
<item row="1" column="0"> |
|
90 |
<widget class="QLabel" name="label_2"> |
|
91 |
<property name="text"> |
|
92 |
<string>User</string> |
|
93 |
</property> |
|
94 |
</widget> |
|
95 |
</item> |
|
96 |
<item row="1" column="1"> |
|
97 |
<widget class="QLineEdit" name="lineEditUser"/> |
|
98 |
</item> |
|
99 |
<item row="2" column="0"> |
|
100 |
<widget class="QLabel" name="label_3"> |
|
101 |
<property name="text"> |
|
102 |
<string>Password</string> |
|
103 |
</property> |
|
104 |
</widget> |
|
105 |
</item> |
|
106 |
<item row="2" column="1"> |
|
107 |
<widget class="QLineEdit" name="lineEditPassword"/> |
|
108 |
</item> |
|
109 |
</layout> |
|
110 |
</item> |
|
111 |
<item row="2" column="0"> |
|
112 |
<widget class="QPushButton" name="pushButtonTestConnection"> |
|
113 |
<property name="text"> |
|
114 |
<string>Test Connection</string> |
|
115 |
</property> |
|
116 |
</widget> |
|
117 |
</item> |
|
118 |
</layout> |
|
119 |
</widget> |
|
120 |
</widget> |
|
121 |
</item> |
|
122 |
<item row="1" column="0"> |
|
123 |
<widget class="QProgressBar" name="progressBarDataTransfer"> |
|
124 |
<property name="value"> |
|
125 |
<number>24</number> |
|
126 |
</property> |
|
127 |
</widget> |
|
128 |
</item> |
|
129 |
</layout> |
|
130 |
</widget> |
|
131 |
<resources/> |
|
132 |
<connections> |
|
133 |
<connection> |
|
134 |
<sender>buttonBox</sender> |
|
135 |
<signal>accepted()</signal> |
|
136 |
<receiver>DataTransferDialog</receiver> |
|
137 |
<slot>accept()</slot> |
|
138 |
<hints> |
|
139 |
<hint type="sourcelabel"> |
|
140 |
<x>248</x> |
|
141 |
<y>254</y> |
|
142 |
</hint> |
|
143 |
<hint type="destinationlabel"> |
|
144 |
<x>157</x> |
|
145 |
<y>274</y> |
|
146 |
</hint> |
|
147 |
</hints> |
|
148 |
</connection> |
|
149 |
<connection> |
|
150 |
<sender>buttonBox</sender> |
|
151 |
<signal>rejected()</signal> |
|
152 |
<receiver>DataTransferDialog</receiver> |
|
153 |
<slot>reject()</slot> |
|
154 |
<hints> |
|
155 |
<hint type="sourcelabel"> |
|
156 |
<x>316</x> |
|
157 |
<y>260</y> |
|
158 |
</hint> |
|
159 |
<hint type="destinationlabel"> |
|
160 |
<x>286</x> |
|
161 |
<y>274</y> |
|
162 |
</hint> |
|
163 |
</hints> |
|
164 |
</connection> |
|
165 |
</connections> |
|
166 |
</ui> |
DTI_PID/DTI_PID/UI/DataTransfer_UI.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
|
|
3 |
# Form implementation generated from reading ui file '.\UI\DataTransfer.ui' |
|
4 |
# |
|
5 |
# Created by: PyQt5 UI code generator 5.13.0 |
|
6 |
# |
|
7 |
# WARNING! All changes made in this file will be lost! |
|
8 |
|
|
9 |
|
|
10 |
from PyQt5 import QtCore, QtGui, QtWidgets |
|
11 |
|
|
12 |
|
|
13 |
class Ui_DataTransferDialog(object): |
|
14 |
def setupUi(self, DataTransferDialog): |
|
15 |
DataTransferDialog.setObjectName("DataTransferDialog") |
|
16 |
DataTransferDialog.resize(683, 385) |
|
17 |
self.gridLayout = QtWidgets.QGridLayout(DataTransferDialog) |
|
18 |
self.gridLayout.setObjectName("gridLayout") |
|
19 |
self.buttonBox = QtWidgets.QDialogButtonBox(DataTransferDialog) |
|
20 |
self.buttonBox.setOrientation(QtCore.Qt.Horizontal) |
|
21 |
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) |
|
22 |
self.buttonBox.setObjectName("buttonBox") |
|
23 |
self.gridLayout.addWidget(self.buttonBox, 2, 0, 1, 1) |
|
24 |
self.splitter = QtWidgets.QSplitter(DataTransferDialog) |
|
25 |
self.splitter.setBaseSize(QtCore.QSize(0, 0)) |
|
26 |
self.splitter.setOrientation(QtCore.Qt.Horizontal) |
|
27 |
self.splitter.setObjectName("splitter") |
|
28 |
self.groupBox = QtWidgets.QGroupBox(self.splitter) |
|
29 |
self.groupBox.setObjectName("groupBox") |
|
30 |
self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox) |
|
31 |
self.gridLayout_2.setObjectName("gridLayout_2") |
|
32 |
self.treeWidgetDrawingList = QtWidgets.QTreeWidget(self.groupBox) |
|
33 |
self.treeWidgetDrawingList.setMinimumSize(QtCore.QSize(100, 0)) |
|
34 |
self.treeWidgetDrawingList.setBaseSize(QtCore.QSize(200, 0)) |
|
35 |
self.treeWidgetDrawingList.setObjectName("treeWidgetDrawingList") |
|
36 |
self.treeWidgetDrawingList.headerItem().setText(0, "1") |
|
37 |
self.treeWidgetDrawingList.header().setVisible(False) |
|
38 |
self.gridLayout_2.addWidget(self.treeWidgetDrawingList, 0, 0, 1, 1) |
|
39 |
self.groupBox_2 = QtWidgets.QGroupBox(self.splitter) |
|
40 |
self.groupBox_2.setObjectName("groupBox_2") |
|
41 |
self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_2) |
|
42 |
self.gridLayout_3.setObjectName("gridLayout_3") |
|
43 |
self.formLayout = QtWidgets.QFormLayout() |
|
44 |
self.formLayout.setFormAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) |
|
45 |
self.formLayout.setObjectName("formLayout") |
|
46 |
self.label = QtWidgets.QLabel(self.groupBox_2) |
|
47 |
self.label.setObjectName("label") |
|
48 |
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label) |
|
49 |
self.lineEditServer = QtWidgets.QLineEdit(self.groupBox_2) |
|
50 |
self.lineEditServer.setObjectName("lineEditServer") |
|
51 |
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.lineEditServer) |
|
52 |
self.label_2 = QtWidgets.QLabel(self.groupBox_2) |
|
53 |
self.label_2.setObjectName("label_2") |
|
54 |
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_2) |
|
55 |
self.lineEditUser = QtWidgets.QLineEdit(self.groupBox_2) |
|
56 |
self.lineEditUser.setObjectName("lineEditUser") |
|
57 |
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEditUser) |
|
58 |
self.label_3 = QtWidgets.QLabel(self.groupBox_2) |
|
59 |
self.label_3.setObjectName("label_3") |
|
60 |
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_3) |
|
61 |
self.lineEditPassword = QtWidgets.QLineEdit(self.groupBox_2) |
|
62 |
self.lineEditPassword.setObjectName("lineEditPassword") |
|
63 |
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.lineEditPassword) |
|
64 |
self.gridLayout_3.addLayout(self.formLayout, 1, 0, 1, 1) |
|
65 |
self.pushButtonTestConnection = QtWidgets.QPushButton(self.groupBox_2) |
|
66 |
self.pushButtonTestConnection.setObjectName("pushButtonTestConnection") |
|
67 |
self.gridLayout_3.addWidget(self.pushButtonTestConnection, 2, 0, 1, 1) |
|
68 |
self.gridLayout.addWidget(self.splitter, 0, 0, 1, 1) |
|
69 |
self.progressBarDataTransfer = QtWidgets.QProgressBar(DataTransferDialog) |
|
70 |
self.progressBarDataTransfer.setProperty("value", 24) |
|
71 |
self.progressBarDataTransfer.setObjectName("progressBarDataTransfer") |
|
72 |
self.gridLayout.addWidget(self.progressBarDataTransfer, 1, 0, 1, 1) |
|
73 |
|
|
74 |
self.retranslateUi(DataTransferDialog) |
|
75 |
self.buttonBox.accepted.connect(DataTransferDialog.accept) |
|
76 |
self.buttonBox.rejected.connect(DataTransferDialog.reject) |
|
77 |
QtCore.QMetaObject.connectSlotsByName(DataTransferDialog) |
|
78 |
|
|
79 |
def retranslateUi(self, DataTransferDialog): |
|
80 |
_translate = QtCore.QCoreApplication.translate |
|
81 |
DataTransferDialog.setWindowTitle(_translate("DataTransferDialog", "Data Transfer")) |
|
82 |
self.groupBox.setTitle(_translate("DataTransferDialog", "Drawings")) |
|
83 |
self.groupBox_2.setTitle(_translate("DataTransferDialog", "MSSQL")) |
|
84 |
self.label.setText(_translate("DataTransferDialog", "Server")) |
|
85 |
self.label_2.setText(_translate("DataTransferDialog", "User")) |
|
86 |
self.label_3.setText(_translate("DataTransferDialog", "Password")) |
|
87 |
self.pushButtonTestConnection.setText(_translate("DataTransferDialog", "Test Connection")) |
DTI_PID/DTI_PID/UI/MainWindow.ui | ||
---|---|---|
85 | 85 |
<addaction name="actionItem_Data_List"/> |
86 | 86 |
<addaction name="separator"/> |
87 | 87 |
<addaction name="actionSpecialItemTypes"/> |
88 |
<addaction name="actionOPCRelation"/> |
|
89 |
<addaction name="separator"/> |
|
88 | 90 |
<addaction name="actionCodeTable"/> |
89 | 91 |
<addaction name="actionOCR_Training"/> |
90 | 92 |
</widget> |
... | ... | |
109 | 111 |
</property> |
110 | 112 |
<addaction name="actionpdf_to_image"/> |
111 | 113 |
<addaction name="actionImport_Text_From_CAD"/> |
114 |
<addaction name="separator"/> |
|
115 |
<addaction name="actionDataTransfer"/> |
|
112 | 116 |
</widget> |
113 | 117 |
<widget class="QMenu" name="menu_5"> |
114 | 118 |
<property name="title"> |
... | ... | |
1026 | 1030 |
<string>Special Item Types</string> |
1027 | 1031 |
</property> |
1028 | 1032 |
</action> |
1033 |
<action name="actionDataTransfer"> |
|
1034 |
<property name="text"> |
|
1035 |
<string>DataTransfer</string> |
|
1036 |
</property> |
|
1037 |
<property name="toolTip"> |
|
1038 |
<string>Data Transfer</string> |
|
1039 |
</property> |
|
1040 |
</action> |
|
1041 |
<action name="actionOPCRelation"> |
|
1042 |
<property name="text"> |
|
1043 |
<string>OPCRelation</string> |
|
1044 |
</property> |
|
1045 |
<property name="toolTip"> |
|
1046 |
<string>OPC Relation</string> |
|
1047 |
</property> |
|
1048 |
</action> |
|
1029 | 1049 |
</widget> |
1030 | 1050 |
<resources> |
1031 | 1051 |
<include location="../res/MainWindow.qrc"/> |
DTI_PID/DTI_PID/UI/OPCRelation.ui | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<ui version="4.0"> |
|
3 |
<class>OPCRelationDialog</class> |
|
4 |
<widget class="QDialog" name="OPCRelationDialog"> |
|
5 |
<property name="geometry"> |
|
6 |
<rect> |
|
7 |
<x>0</x> |
|
8 |
<y>0</y> |
|
9 |
<width>766</width> |
|
10 |
<height>410</height> |
|
11 |
</rect> |
|
12 |
</property> |
|
13 |
<property name="windowTitle"> |
|
14 |
<string>OPC Relation</string> |
|
15 |
</property> |
|
16 |
<layout class="QGridLayout" name="gridLayout"> |
|
17 |
<item row="2" column="0"> |
|
18 |
<widget class="QDialogButtonBox" name="buttonBox"> |
|
19 |
<property name="orientation"> |
|
20 |
<enum>Qt::Horizontal</enum> |
|
21 |
</property> |
|
22 |
<property name="standardButtons"> |
|
23 |
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> |
|
24 |
</property> |
|
25 |
</widget> |
|
26 |
</item> |
|
27 |
<item row="0" column="0"> |
|
28 |
<widget class="QSplitter" name="splitter"> |
|
29 |
<property name="orientation"> |
|
30 |
<enum>Qt::Horizontal</enum> |
|
31 |
</property> |
|
32 |
<widget class="QTableWidget" name="tableWidgetSource"/> |
|
33 |
<widget class="QTableWidget" name="tableWidgetTarget"/> |
|
34 |
</widget> |
|
35 |
</item> |
|
36 |
</layout> |
|
37 |
</widget> |
|
38 |
<resources/> |
|
39 |
<connections> |
|
40 |
<connection> |
|
41 |
<sender>buttonBox</sender> |
|
42 |
<signal>accepted()</signal> |
|
43 |
<receiver>OPCRelationDialog</receiver> |
|
44 |
<slot>accept()</slot> |
|
45 |
<hints> |
|
46 |
<hint type="sourcelabel"> |
|
47 |
<x>248</x> |
|
48 |
<y>254</y> |
|
49 |
</hint> |
|
50 |
<hint type="destinationlabel"> |
|
51 |
<x>157</x> |
|
52 |
<y>274</y> |
|
53 |
</hint> |
|
54 |
</hints> |
|
55 |
</connection> |
|
56 |
<connection> |
|
57 |
<sender>buttonBox</sender> |
|
58 |
<signal>rejected()</signal> |
|
59 |
<receiver>OPCRelationDialog</receiver> |
|
60 |
<slot>reject()</slot> |
|
61 |
<hints> |
|
62 |
<hint type="sourcelabel"> |
|
63 |
<x>316</x> |
|
64 |
<y>260</y> |
|
65 |
</hint> |
|
66 |
<hint type="destinationlabel"> |
|
67 |
<x>286</x> |
|
68 |
<y>274</y> |
|
69 |
</hint> |
|
70 |
</hints> |
|
71 |
</connection> |
|
72 |
</connections> |
|
73 |
</ui> |
DTI_PID/DTI_PID/UI/OPCRelation_UI.py | ||
---|---|---|
1 |
# -*- coding: utf-8 -*- |
|
2 |
|
|
3 |
# Form implementation generated from reading ui file '.\ui\OPCRelation.ui' |
|
4 |
# |
|
5 |
# Created by: PyQt5 UI code generator 5.13.0 |
|
6 |
# |
|
7 |
# WARNING! All changes made in this file will be lost! |
|
8 |
|
|
9 |
|
|
10 |
from PyQt5 import QtCore, QtGui, QtWidgets |
|
11 |
|
|
12 |
|
|
13 |
class Ui_OPCRelationDialog(object): |
|
14 |
def setupUi(self, OPCRelationDialog): |
|
15 |
OPCRelationDialog.setObjectName("OPCRelationDialog") |
|
16 |
OPCRelationDialog.resize(766, 410) |
|
17 |
self.gridLayout = QtWidgets.QGridLayout(OPCRelationDialog) |
|
18 |
self.gridLayout.setObjectName("gridLayout") |
|
19 |
self.buttonBox = QtWidgets.QDialogButtonBox(OPCRelationDialog) |
|
20 |
self.buttonBox.setOrientation(QtCore.Qt.Horizontal) |
|
21 |
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) |
|
22 |
self.buttonBox.setObjectName("buttonBox") |
|
23 |
self.gridLayout.addWidget(self.buttonBox, 2, 0, 1, 1) |
|
24 |
self.splitter = QtWidgets.QSplitter(OPCRelationDialog) |
|
25 |
self.splitter.setOrientation(QtCore.Qt.Horizontal) |
|
26 |
self.splitter.setObjectName("splitter") |
|
27 |
self.tableWidgetSource = QtWidgets.QTableWidget(self.splitter) |
|
28 |
self.tableWidgetSource.setObjectName("tableWidgetSource") |
|
29 |
self.tableWidgetSource.setColumnCount(0) |
|
30 |
self.tableWidgetSource.setRowCount(0) |
|
31 |
self.tableWidgetTarget = QtWidgets.QTableWidget(self.splitter) |
|
32 |
self.tableWidgetTarget.setObjectName("tableWidgetTarget") |
|
33 |
self.tableWidgetTarget.setColumnCount(0) |
|
34 |
self.tableWidgetTarget.setRowCount(0) |
|
35 |
self.gridLayout.addWidget(self.splitter, 0, 0, 1, 1) |
|
36 |
|
|
37 |
self.retranslateUi(OPCRelationDialog) |
|
38 |
self.buttonBox.accepted.connect(OPCRelationDialog.accept) |
|
39 |
self.buttonBox.rejected.connect(OPCRelationDialog.reject) |
|
40 |
QtCore.QMetaObject.connectSlotsByName(OPCRelationDialog) |
|
41 |
|
|
42 |
def retranslateUi(self, OPCRelationDialog): |
|
43 |
_translate = QtCore.QCoreApplication.translate |
|
44 |
OPCRelationDialog.setWindowTitle(_translate("OPCRelationDialog", "OPC Relation")) |
DTI_PID/DTI_PID/translate/ja_jp.ts | ||
---|---|---|
3 | 3 |
<context> |
4 | 4 |
<name>AreaDialog</name> |
5 | 5 |
<message> |
6 |
<location filename="../Configuration_Area_UI.py" line="232"/>
|
|
6 |
<location filename="../Configuration_Area_UI.py" line="234"/>
|
|
7 | 7 |
<source>Area</source> |
8 | 8 |
<translation type="unfinished"></translation> |
9 | 9 |
</message> |
10 | 10 |
<message> |
11 |
<location filename="../Configuration_Area_UI.py" line="233"/>
|
|
11 |
<location filename="../Configuration_Area_UI.py" line="235"/>
|
|
12 | 12 |
<source>Rev. No : </source> |
13 | 13 |
<translation type="unfinished"></translation> |
14 | 14 |
</message> |
15 | 15 |
<message> |
16 |
<location filename="../Configuration_Area_UI.py" line="244"/>
|
|
16 |
<location filename="../Configuration_Area_UI.py" line="246"/>
|
|
17 | 17 |
<source>...</source> |
18 | 18 |
<translation type="unfinished"></translation> |
19 | 19 |
</message> |
20 | 20 |
<message> |
21 |
<location filename="../Configuration_Area_UI.py" line="237"/>
|
|
21 |
<location filename="../Configuration_Area_UI.py" line="239"/>
|
|
22 | 22 |
<source>Drawing</source> |
23 | 23 |
<translation type="unfinished"></translation> |
24 | 24 |
</message> |
25 | 25 |
<message> |
26 |
<location filename="../Configuration_Area_UI.py" line="238"/>
|
|
26 |
<location filename="../Configuration_Area_UI.py" line="240"/>
|
|
27 | 27 |
<source>Unit : </source> |
28 | 28 |
<translation type="unfinished"></translation> |
29 | 29 |
</message> |
30 | 30 |
<message> |
31 |
<location filename="../Configuration_Area_UI.py" line="239"/>
|
|
31 |
<location filename="../Configuration_Area_UI.py" line="241"/>
|
|
32 | 32 |
<source>Drawing No : </source> |
33 | 33 |
<translation type="unfinished"></translation> |
34 | 34 |
</message> |
35 | 35 |
<message> |
36 |
<location filename="../Configuration_Area_UI.py" line="241"/>
|
|
36 |
<location filename="../Configuration_Area_UI.py" line="243"/>
|
|
37 | 37 |
<source>History Data : </source> |
38 | 38 |
<translation type="unfinished"></translation> |
39 | 39 |
</message> |
40 | 40 |
<message> |
41 |
<location filename="../Configuration_Area_UI.py" line="242"/>
|
|
41 |
<location filename="../Configuration_Area_UI.py" line="244"/>
|
|
42 | 42 |
<source>Note : </source> |
43 | 43 |
<translation type="unfinished"></translation> |
44 | 44 |
</message> |
45 | 45 |
<message> |
46 |
<location filename="../Configuration_Area_UI.py" line="259"/>
|
|
46 |
<location filename="../Configuration_Area_UI.py" line="261"/>
|
|
47 | 47 |
<source>-</source> |
48 | 48 |
<translation type="unfinished"></translation> |
49 | 49 |
</message> |
50 | 50 |
<message> |
51 |
<location filename="../Configuration_Area_UI.py" line="251"/>
|
|
51 |
<location filename="../Configuration_Area_UI.py" line="253"/>
|
|
52 | 52 |
<source>Equipment Desc. Area</source> |
53 | 53 |
<translation type="unfinished"></translation> |
54 | 54 |
</message> |
55 | 55 |
<message> |
56 |
<location filename="../Configuration_Area_UI.py" line="258"/>
|
|
56 |
<location filename="../Configuration_Area_UI.py" line="260"/>
|
|
57 | 57 |
<source>+</source> |
58 | 58 |
<translation type="unfinished"></translation> |
59 | 59 |
</message> |
60 | 60 |
<message> |
61 |
<location filename="../Configuration_Area_UI.py" line="254"/>
|
|
61 |
<location filename="../Configuration_Area_UI.py" line="256"/>
|
|
62 | 62 |
<source>Title Block</source> |
63 | 63 |
<translation type="unfinished"></translation> |
64 | 64 |
</message> |
65 | 65 |
<message> |
66 |
<location filename="../Configuration_Area_UI.py" line="257"/>
|
|
66 |
<location filename="../Configuration_Area_UI.py" line="259"/>
|
|
67 | 67 |
<source>Typical Area</source> |
68 | 68 |
<translation type="unfinished"></translation> |
69 | 69 |
</message> |
... | ... | |
71 | 71 |
<context> |
72 | 72 |
<name>ConfigurationDialog</name> |
73 | 73 |
<message> |
74 |
<location filename="../Configuration_UI.py" line="463"/>
|
|
74 |
<location filename="../Configuration_UI.py" line="552"/>
|
|
75 | 75 |
<source>Configuration</source> |
76 | 76 |
<translation type="unfinished"></translation> |
77 | 77 |
</message> |
78 | 78 |
<message> |
79 |
<location filename="../Configuration_UI.py" line="486"/>
|
|
80 |
<source>Minimum Text Size : </source>
|
|
79 |
<location filename="../Configuration_UI.py" line="553"/>
|
|
80 |
<source>Attribute</source>
|
|
81 | 81 |
<translation type="unfinished"></translation> |
82 | 82 |
</message> |
83 | 83 |
<message> |
84 |
<location filename="../Configuration_UI.py" line="487"/>
|
|
85 |
<source>Maximum Text Size : </source>
|
|
84 |
<location filename="../Configuration_UI.py" line="554"/>
|
|
85 |
<source>Size Delimiter : </source>
|
|
86 | 86 |
<translation type="unfinished"></translation> |
87 | 87 |
</message> |
88 | 88 |
<message> |
89 |
<location filename="../Configuration_UI.py" line="465"/>
|
|
90 |
<source>Size Delimiter : </source>
|
|
89 |
<location filename="../Configuration_UI.py" line="555"/>
|
|
90 |
<source>Attribute Detection Range(Ratio) : </source>
|
|
91 | 91 |
<translation type="unfinished"></translation> |
92 | 92 |
</message> |
93 | 93 |
<message> |
94 |
<location filename="../Configuration_UI.py" line="468"/>
|
|
95 |
<source> < Area < </source>
|
|
94 |
<location filename="../Configuration_UI.py" line="556"/>
|
|
95 |
<source>Line Flow Mark Position(Percent) : </source>
|
|
96 | 96 |
<translation type="unfinished"></translation> |
97 | 97 |
</message> |
98 | 98 |
<message> |
99 |
<location filename="../Configuration_UI.py" line="470"/> |
|
100 |
<source>Sliding Window Size(WxH) : </source> |
|
99 |
<location filename="../Configuration_UI.py" line="557"/> |
|
100 |
<source>Line Flow Mark Minimum Line Length : </source> |
|
101 |
<translation type="unfinished"></translation> |
|
102 |
</message> |
|
103 |
<message> |
|
104 |
<location filename="../Configuration_UI.py" line="558"/> |
|
105 |
<source>Line Detection</source> |
|
106 |
<translation type="unfinished"></translation> |
|
107 |
</message> |
|
108 |
<message> |
|
109 |
<location filename="../Configuration_UI.py" line="559"/> |
|
110 |
<source>< Area < </source> |
|
111 |
<translation type="unfinished"></translation> |
|
112 |
</message> |
|
113 |
<message> |
|
114 |
<location filename="../Configuration_UI.py" line="560"/> |
|
115 |
<source>Ignore Small Object Size : </source> |
|
116 |
<translation type="unfinished"></translation> |
|
117 |
</message> |
|
118 |
<message> |
|
119 |
<location filename="../Configuration_UI.py" line="561"/> |
|
120 |
<source>Length to Connect Line</source> |
|
101 | 121 |
<translation type="unfinished"></translation> |
102 | 122 |
</message> |
103 | 123 |
<message> |
104 |
<location filename="../Configuration_UI.py" line="469"/>
|
|
124 |
<location filename="../Configuration_UI.py" line="562"/>
|
|
105 | 125 |
<source>Small Line Minimum Length</source> |
106 | 126 |
<translation type="unfinished"></translation> |
107 | 127 |
</message> |
108 | 128 |
<message> |
109 |
<location filename="../Configuration_UI.py" line="471"/> |
|
129 |
<location filename="../Configuration_UI.py" line="563"/> |
|
130 |
<source>Sliding Window Size(WxH) : </source> |
|
131 |
<translation type="unfinished"></translation> |
|
132 |
</message> |
|
133 |
<message> |
|
134 |
<location filename="../Configuration_UI.py" line="564"/> |
|
135 |
<source>Default Line Type</source> |
|
136 |
<translation type="unfinished"></translation> |
|
137 |
</message> |
|
138 |
<message> |
|
139 |
<location filename="../Configuration_UI.py" line="565"/> |
|
110 | 140 |
<source>Line No</source> |
111 | 141 |
<translation type="unfinished"></translation> |
112 | 142 |
</message> |
113 | 143 |
<message> |
114 |
<location filename="../Configuration_UI.py" line="472"/>
|
|
115 |
<source>Size Unit : </source>
|
|
144 |
<location filename="../Configuration_UI.py" line="566"/>
|
|
145 |
<source>Line No Attribute</source>
|
|
116 | 146 |
<translation type="unfinished"></translation> |
117 | 147 |
</message> |
118 | 148 |
<message> |
119 |
<location filename="../Configuration_UI.py" line="473"/>
|
|
120 |
<source>Metric</source>
|
|
149 |
<location filename="../Configuration_UI.py" line="567"/>
|
|
150 |
<source>Add</source>
|
|
121 | 151 |
<translation type="unfinished"></translation> |
122 | 152 |
</message> |
123 | 153 |
<message> |
124 |
<location filename="../Configuration_UI.py" line="474"/>
|
|
125 |
<source>Inch</source>
|
|
154 |
<location filename="../Configuration_UI.py" line="568"/>
|
|
155 |
<source>Delete</source>
|
|
126 | 156 |
<translation type="unfinished"></translation> |
127 | 157 |
</message> |
128 | 158 |
<message> |
129 |
<location filename="../Configuration_UI.py" line="475"/> |
|
130 |
<source>Line No Attribute</source> |
|
159 |
<location filename="../Configuration_UI.py" line="569"/> |
|
160 |
<source>Text Detection</source> |
|
161 |
<translation type="unfinished"></translation> |
|
162 |
</message> |
|
163 |
<message> |
|
164 |
<location filename="../Configuration_UI.py" line="570"/> |
|
165 |
<source>OCR Source : </source> |
|
166 |
<translation type="unfinished"></translation> |
|
167 |
</message> |
|
168 |
<message> |
|
169 |
<location filename="../Configuration_UI.py" line="571"/> |
|
170 |
<source>Detected string : </source> |
|
171 |
<translation type="unfinished"></translation> |
|
172 |
</message> |
|
173 |
<message> |
|
174 |
<location filename="../Configuration_UI.py" line="572"/> |
|
175 |
<source>Expansion Size : </source> |
|
176 |
<translation type="unfinished"></translation> |
|
177 |
</message> |
|
178 |
<message> |
|
179 |
<location filename="../Configuration_UI.py" line="573"/> |
|
180 |
<source>Erosion Size : </source> |
|
181 |
<translation type="unfinished"></translation> |
|
182 |
</message> |
|
183 |
<message> |
|
184 |
<location filename="../Configuration_UI.py" line="574"/> |
|
185 |
<source>Minimum Text Size : </source> |
|
186 |
<translation type="unfinished"></translation> |
|
187 |
</message> |
|
188 |
<message> |
|
189 |
<location filename="../Configuration_UI.py" line="575"/> |
|
190 |
<source>Maximum Text Size : </source> |
|
131 | 191 |
<translation type="unfinished"></translation> |
132 | 192 |
</message> |
133 | 193 |
<message> |
134 |
<location filename="../Configuration_UI.py" line="476"/>
|
|
135 |
<source>Delimiter : </source>
|
|
194 |
<location filename="../Configuration_UI.py" line="576"/>
|
|
195 |
<source>Merge Size : </source>
|
|
136 | 196 |
<translation type="unfinished"></translation> |
137 | 197 |
</message> |
138 | 198 |
<message> |
139 |
<location filename="../Configuration_UI.py" line="492"/> |
|
199 |
<location filename="../Configuration_UI.py" line="577"/> |
|
200 |
<source>Filter</source> |
|
201 |
<translation type="unfinished"></translation> |
|
202 |
</message> |
|
203 |
<message> |
|
204 |
<location filename="../Configuration_UI.py" line="578"/> |
|
205 |
<source>Minimum Detection Size : </source> |
|
206 |
<translation type="unfinished"></translation> |
|
207 |
</message> |
|
208 |
<message> |
|
209 |
<location filename="../Configuration_UI.py" line="579"/> |
|
210 |
<source>Drawing Dilate Size : </source> |
|
211 |
<translation type="unfinished"></translation> |
|
212 |
</message> |
|
213 |
<message> |
|
214 |
<location filename="../Configuration_UI.py" line="580"/> |
|
215 |
<source>Recognition</source> |
|
216 |
<translation type="unfinished"></translation> |
|
217 |
</message> |
|
218 |
<message> |
|
219 |
<location filename="../Configuration_UI.py" line="581"/> |
|
140 | 220 |
<source>Nozzle Name Rule</source> |
141 | 221 |
<translation type="unfinished"></translation> |
142 | 222 |
</message> |
143 | 223 |
<message> |
144 |
<location filename="../Configuration_UI.py" line="493"/>
|
|
224 |
<location filename="../Configuration_UI.py" line="582"/>
|
|
145 | 225 |
<source>Nozzle Name : </source> |
146 | 226 |
<translation type="unfinished"></translation> |
147 | 227 |
</message> |
148 | 228 |
<message> |
149 |
<location filename="../Configuration_UI.py" line="494"/>
|
|
229 |
<location filename="../Configuration_UI.py" line="583"/>
|
|
150 | 230 |
<source>Note No Tag Rule</source> |
151 | 231 |
<translation type="unfinished"></translation> |
152 | 232 |
</message> |
153 | 233 |
<message> |
154 |
<location filename="../Configuration_UI.py" line="505"/>
|
|
155 |
<source>Line No Color</source>
|
|
234 |
<location filename="../Configuration_UI.py" line="584"/>
|
|
235 |
<source>Note No Symbol Name : </source>
|
|
156 | 236 |
<translation type="unfinished"></translation> |
157 | 237 |
</message> |
158 | 238 |
<message> |
159 |
<location filename="../Configuration_UI.py" line="507"/>
|
|
160 |
<source>Random</source>
|
|
239 |
<location filename="../Configuration_UI.py" line="585"/>
|
|
240 |
<source>Note No Expression : </source>
|
|
161 | 241 |
<translation type="unfinished"></translation> |
162 | 242 |
</message> |
163 | 243 |
<message> |
164 |
<location filename="../Configuration_UI.py" line="508"/>
|
|
165 |
<source>Property</source>
|
|
244 |
<location filename="../Configuration_UI.py" line="586"/>
|
|
245 |
<source>Drain Size</source>
|
|
166 | 246 |
<translation type="unfinished"></translation> |
167 | 247 |
</message> |
168 | 248 |
<message> |
169 |
<location filename="../Configuration_UI.py" line="466"/>
|
|
170 |
<source>Line Detection</source>
|
|
249 |
<location filename="../Configuration_UI.py" line="587"/>
|
|
250 |
<source>Drain Size : </source>
|
|
171 | 251 |
<translation type="unfinished"></translation> |
172 | 252 |
</message> |
173 | 253 |
<message> |
174 |
<location filename="../Configuration_UI.py" line="479"/>
|
|
175 |
<source>Add</source>
|
|
254 |
<location filename="../Configuration_UI.py" line="588"/>
|
|
255 |
<source>Supplied by Tag Rule</source>
|
|
176 | 256 |
<translation type="unfinished"></translation> |
177 | 257 |
</message> |
178 | 258 |
<message> |
179 |
<location filename="../Configuration_UI.py" line="480"/>
|
|
180 |
<source>Delete</source>
|
|
259 |
<location filename="../Configuration_UI.py" line="589"/>
|
|
260 |
<source>Supplied by Vendor : </source>
|
|
181 | 261 |
<translation type="unfinished"></translation> |
182 | 262 |
</message> |
183 | 263 |
<message> |
184 |
<location filename="../Configuration_UI.py" line="481"/>
|
|
185 |
<source>Text Detection</source>
|
|
264 |
<location filename="../Configuration_UI.py" line="590"/>
|
|
265 |
<source>OPC Tag Rule</source>
|
|
186 | 266 |
<translation type="unfinished"></translation> |
187 | 267 |
</message> |
188 | 268 |
<message> |
189 |
<location filename="../Configuration_UI.py" line="482"/>
|
|
190 |
<source>OCR Source : </source>
|
|
269 |
<location filename="../Configuration_UI.py" line="591"/>
|
|
270 |
<source>From Prefix : </source>
|
|
191 | 271 |
<translation type="unfinished"></translation> |
192 | 272 |
</message> |
193 | 273 |
<message> |
194 |
<location filename="../Configuration_UI.py" line="483"/>
|
|
195 |
<source>Detected string : </source>
|
|
274 |
<location filename="../Configuration_UI.py" line="592"/>
|
|
275 |
<source>To Prefix : </source>
|
|
196 | 276 |
<translation type="unfinished"></translation> |
197 | 277 |
</message> |
198 | 278 |
<message> |
199 |
<location filename="../Configuration_UI.py" line="484"/>
|
|
200 |
<source>Expansion Size : </source>
|
|
279 |
<location filename="../Configuration_UI.py" line="593"/>
|
|
280 |
<source>FROM</source>
|
|
201 | 281 |
<translation type="unfinished"></translation> |
202 | 282 |
</message> |
203 | 283 |
<message> |
204 |
<location filename="../Configuration_UI.py" line="485"/>
|
|
205 |
<source>Erosion Size : </source>
|
|
284 |
<location filename="../Configuration_UI.py" line="594"/>
|
|
285 |
<source>TO</source>
|
|
206 | 286 |
<translation type="unfinished"></translation> |
207 | 287 |
</message> |
208 | 288 |
<message> |
209 |
<location filename="../Configuration_UI.py" line="488"/>
|
|
210 |
<source>Merge Size : </source>
|
|
289 |
<location filename="../Configuration_UI.py" line="595"/>
|
|
290 |
<source>Tag Rule</source>
|
|
211 | 291 |
<translation type="unfinished"></translation> |
212 | 292 |
</message> |
213 | 293 |
<message> |
214 |
<location filename="../Configuration_UI.py" line="491"/>
|
|
215 |
<source>Recognition</source>
|
|
294 |
<location filename="../Configuration_UI.py" line="596"/>
|
|
295 |
<source>Line Style</source>
|
|
216 | 296 |
<translation type="unfinished"></translation> |
217 | 297 |
</message> |
218 | 298 |
<message> |
219 |
<location filename="../Configuration_UI.py" line="498"/>
|
|
220 |
<source>Line Style</source>
|
|
299 |
<location filename="../Configuration_UI.py" line="597"/>
|
|
300 |
<source>Symbol Style</source>
|
|
221 | 301 |
<translation type="unfinished"></translation> |
222 | 302 |
</message> |
223 | 303 |
<message> |
224 |
<location filename="../Configuration_UI.py" line="499"/> |
|
304 |
<location filename="../Configuration_UI.py" line="598"/> |
|
305 |
<source>Instrument Color : </source> |
|
306 |
<translation type="unfinished"></translation> |
|
307 |
</message> |
|
308 |
<message> |
|
309 |
<location filename="../Configuration_UI.py" line="599"/> |
|
310 |
<source>Equipment Color : </source> |
|
311 |
<translation type="unfinished"></translation> |
|
312 |
</message> |
|
313 |
<message> |
|
314 |
<location filename="../Configuration_UI.py" line="600"/> |
|
315 |
<source>Symbol Opacity : </source> |
|
316 |
<translation type="unfinished"></translation> |
|
317 |
</message> |
|
318 |
<message> |
|
319 |
<location filename="../Configuration_UI.py" line="601"/> |
|
225 | 320 |
<source>Text Style</source> |
226 | 321 |
<translation type="unfinished"></translation> |
227 | 322 |
</message> |
228 | 323 |
<message> |
229 |
<location filename="../Configuration_UI.py" line="500"/>
|
|
324 |
<location filename="../Configuration_UI.py" line="602"/>
|
|
230 | 325 |
<source>Font Size : </source> |
231 | 326 |
<translation type="unfinished"></translation> |
232 | 327 |
</message> |
233 | 328 |
<message> |
234 |
<location filename="../Configuration_UI.py" line="501"/>
|
|
329 |
<location filename="../Configuration_UI.py" line="603"/>
|
|
235 | 330 |
<source>Auto</source> |
236 | 331 |
<translation type="unfinished"></translation> |
237 | 332 |
</message> |
238 | 333 |
<message> |
239 |
<location filename="../Configuration_UI.py" line="502"/>
|
|
334 |
<location filename="../Configuration_UI.py" line="604"/>
|
|
240 | 335 |
<source>Fixed</source> |
241 | 336 |
<translation type="unfinished"></translation> |
242 | 337 |
</message> |
243 | 338 |
<message> |
244 |
<location filename="../Configuration_UI.py" line="503"/>
|
|
339 |
<location filename="../Configuration_UI.py" line="605"/>
|
|
245 | 340 |
<source>Font Name : </source> |
246 | 341 |
<translation type="unfinished"></translation> |
247 | 342 |
</message> |
248 | 343 |
<message> |
249 |
<location filename="../Configuration_UI.py" line="504"/>
|
|
344 |
<location filename="../Configuration_UI.py" line="606"/>
|
|
250 | 345 |
<source>Style</source> |
251 | 346 |
<translation type="unfinished"></translation> |
252 | 347 |
</message> |
253 | 348 |
<message> |
254 |
<location filename="../Configuration_UI.py" line="506"/>
|
|
255 |
<source>Color Representation</source>
|
|
349 |
<location filename="../Configuration_UI.py" line="611"/>
|
|
350 |
<source>Line No Color</source>
|
|
256 | 351 |
<translation type="unfinished"></translation> |
257 | 352 |
</message> |
258 | 353 |
<message> |
259 |
<location filename="../Configuration_UI.py" line="509"/>
|
|
260 |
<source>Line Color</source>
|
|
354 |
<location filename="../Configuration_UI.py" line="608"/>
|
|
355 |
<source>Color Representation</source>
|
|
261 | 356 |
<translation type="unfinished"></translation> |
262 | 357 |
</message> |
263 | 358 |
<message> |
264 |
<location filename="../Configuration_UI.py" line="497"/>
|
|
265 |
<source>Tag Number Rule</source>
|
|
359 |
<location filename="../Configuration_UI.py" line="609"/>
|
|
360 |
<source>Random</source>
|
|
266 | 361 |
<translation type="unfinished"></translation> |
267 | 362 |
</message> |
268 | 363 |
<message> |
269 |
<location filename="../Configuration_UI.py" line="464"/>
|
|
270 |
<source>Attribute Detection</source>
|
|
364 |
<location filename="../Configuration_UI.py" line="610"/>
|
|
365 |
<source>Property</source>
|
|
271 | 366 |
<translation type="unfinished"></translation> |
272 | 367 |
</message> |
368 |
</context> |
|
369 |
<context> |
|
370 |
<name>ConnectAttr</name> |
|
273 | 371 |
<message> |
274 |
<location filename="../Configuration_UI.py" line="489"/>
|
|
275 |
<source>Filter</source>
|
|
372 |
<location filename="../ConnectAttr_UI.py" line="66"/>
|
|
373 |
<source>Connect Attribute</source>
|
|
276 | 374 |
<translation type="unfinished"></translation> |
277 | 375 |
</message> |
278 | 376 |
<message> |
279 |
<location filename="../Configuration_UI.py" line="490"/>
|
|
280 |
<source>Minimum Detection Size : </source>
|
|
377 |
<location filename="../ConnectAttr_UI.py" line="67"/>
|
|
378 |
<source>Update Line Type</source>
|
|
281 | 379 |
<translation type="unfinished"></translation> |
282 | 380 |
</message> |
283 | 381 |
<message> |
284 |
<location filename="../Configuration_UI.py" line="495"/>
|
|
285 |
<source>Note No Expression : </source>
|
|
382 |
<location filename="../ConnectAttr_UI.py" line="68"/>
|
|
383 |
<source>Start</source>
|
|
286 | 384 |
<translation type="unfinished"></translation> |
287 | 385 |
</message> |
386 |
</context> |
|
387 |
<context> |
|
388 |
<name>DataTransferDialog</name> |
|
288 | 389 |
<message> |
289 |
<location filename="../Configuration_UI.py" line="496"/>
|
|
290 |
<source>Note No Symbol Name : </source>
|
|
390 |
<location filename="../UI/DataTransfer_UI.py" line="77"/>
|
|
391 |
<source>Data Transfer</source>
|
|
291 | 392 |
<translation type="unfinished"></translation> |
292 | 393 |
</message> |
293 | 394 |
<message> |
294 |
<location filename="../Configuration_UI.py" line="478"/>
|
|
295 |
<source>properties : </source>
|
|
395 |
<location filename="../UI/DataTransfer_UI.py" line="78"/>
|
|
396 |
<source>Drawings</source>
|
|
296 | 397 |
<translation type="unfinished"></translation> |
297 | 398 |
</message> |
298 | 399 |
<message> |
299 |
<location filename="../Configuration_UI.py" line="467"/>
|
|
300 |
<source>Ignore Small Object Size : </source>
|
|
400 |
<location filename="../UI/DataTransfer_UI.py" line="79"/>
|
|
401 |
<source>MSSQL</source>
|
|
301 | 402 |
<translation type="unfinished"></translation> |
302 | 403 |
</message> |
303 |
</context> |
|
304 |
<context> |
|
305 |
<name>ConnectAttr</name> |
|
306 | 404 |
<message> |
307 |
<location filename="../ConnectAttr_UI.py" line="63"/>
|
|
308 |
<source>Start</source>
|
|
405 |
<location filename="../UI/DataTransfer_UI.py" line="80"/>
|
|
406 |
<source>Server</source>
|
|
309 | 407 |
<translation type="unfinished"></translation> |
310 | 408 |
</message> |
311 | 409 |
<message> |
312 |
<location filename="../ConnectAttr_UI.py" line="62"/>
|
|
313 |
<source>Connect Attribute</source>
|
|
410 |
<location filename="../UI/DataTransfer_UI.py" line="81"/>
|
|
411 |
<source>User</source>
|
|
314 | 412 |
<translation type="unfinished"></translation> |
315 | 413 |
</message> |
316 |
</context> |
|
317 |
<context> |
|
318 |
<name>Dialog</name> |
|
319 | 414 |
<message> |
320 |
<location filename="../SymbolEditor_UI.py" line="514"/>
|
|
321 |
<source>Dialog</source>
|
|
415 |
<location filename="../UI/DataTransfer_UI.py" line="82"/>
|
|
416 |
<source>Password</source>
|
|
322 | 417 |
<translation type="unfinished"></translation> |
323 | 418 |
</message> |
324 | 419 |
<message> |
325 |
<location filename="../SymbolEditor_UI.py" line="515"/>
|
|
326 |
<source>Zoom</source>
|
|
420 |
<location filename="../UI/DataTransfer_UI.py" line="83"/>
|
|
421 |
<source>Test Connection</source>
|
|
327 | 422 |
<translation type="unfinished"></translation> |
328 | 423 |
</message> |
424 |
</context> |
|
425 |
<context> |
|
426 |
<name>Dialog</name> |
|
329 | 427 |
<message> |
330 |
<location filename="../SymbolEditor_UI.py" line="516"/>
|
|
331 |
<source>Hand</source>
|
|
428 |
<location filename="../SymbolEditor_UI.py" line="591"/>
|
|
429 |
<source>Symbol Editor</source>
|
|
332 | 430 |
<translation type="unfinished"></translation> |
333 | 431 |
</message> |
334 | 432 |
<message> |
335 |
<location filename="../SymbolEditor_UI.py" line="517"/>
|
|
336 |
<source>Remove Text</source>
|
|
433 |
<location filename="../SymbolEditor_UI.py" line="592"/>
|
|
434 |
<source>Show Guideline</source>
|
|
337 | 435 |
<translation type="unfinished"></translation> |
338 | 436 |
</message> |
339 | 437 |
<message> |
340 |
<location filename="../SymbolEditor_UI.py" line="518"/>
|
|
341 |
<source>Init Zoom</source>
|
|
438 |
<location filename="../SymbolEditor_UI.py" line="593"/>
|
|
439 |
<source>Normal Color :</source>
|
|
342 | 440 |
<translation type="unfinished"></translation> |
343 | 441 |
</message> |
344 | 442 |
<message> |
345 |
<location filename="../SymbolEditor_UI.py" line="519"/>
|
|
346 |
<source>Show Guideline</source>
|
|
443 |
<location filename="../SymbolEditor_UI.py" line="594"/>
|
|
444 |
<source>Highlight Color :</source>
|
|
347 | 445 |
<translation type="unfinished"></translation> |
348 | 446 |
</message> |
349 | 447 |
<message> |
350 |
<location filename="../SymbolEditor_UI.py" line="520"/>
|
|
448 |
<location filename="../SymbolEditor_UI.py" line="595"/>
|
|
351 | 449 |
<source>Symbol Name</source> |
352 | 450 |
<translation type="unfinished"></translation> |
353 | 451 |
</message> |
354 | 452 |
<message> |
355 |
<location filename="../SymbolEditor_UI.py" line="521"/>
|
|
453 |
<location filename="../SymbolEditor_UI.py" line="596"/>
|
|
356 | 454 |
<source>Threshold(%)</source> |
357 | 455 |
<translation type="unfinished"></translation> |
358 | 456 |
</message> |
359 | 457 |
<message> |
360 |
<location filename="../SymbolEditor_UI.py" line="522"/>
|
|
458 |
<location filename="../SymbolEditor_UI.py" line="597"/>
|
|
361 | 459 |
<source>Min Feature Count</source> |
362 | 460 |
<translation type="unfinished"></translation> |
363 | 461 |
</message> |
364 | 462 |
<message> |
365 |
<location filename="../SymbolEditor_UI.py" line="523"/>
|
|
463 |
<location filename="../SymbolEditor_UI.py" line="598"/>
|
|
366 | 464 |
<source>Rotation Count</source> |
367 | 465 |
<translation type="unfinished"></translation> |
368 | 466 |
</message> |
369 | 467 |
<message> |
370 |
<location filename="../SymbolEditor_UI.py" line="524"/>
|
|
468 |
<location filename="../SymbolEditor_UI.py" line="599"/>
|
|
371 | 469 |
<source>Include Child Symbol</source> |
372 | 470 |
<translation type="unfinished"></translation> |
373 | 471 |
</message> |
374 | 472 |
<message> |
375 |
<location filename="../SymbolEditor_UI.py" line="525"/>
|
|
473 |
<location filename="../SymbolEditor_UI.py" line="600"/>
|
|
376 | 474 |
<source>Symbol Type</source> |
377 | 475 |
<translation type="unfinished"></translation> |
378 | 476 |
</message> |
379 | 477 |
<message> |
380 |
<location filename="../SymbolEditor_UI.py" line="526"/>
|
|
478 |
<location filename="../SymbolEditor_UI.py" line="601"/>
|
|
381 | 479 |
<source>Base Symbol</source> |
382 | 480 |
<translation type="unfinished"></translation> |
383 | 481 |
</message> |
384 | 482 |
<message> |
385 |
<location filename="../SymbolEditor_UI.py" line="527"/>
|
|
483 |
<location filename="../SymbolEditor_UI.py" line="602"/>
|
|
386 | 484 |
<source>Addition Symbol</source> |
387 | 485 |
<translation type="unfinished"></translation> |
388 | 486 |
</message> |
389 | 487 |
<message> |
390 |
<location filename="../SymbolEditor_UI.py" line="532"/>
|
|
488 |
<location filename="../SymbolEditor_UI.py" line="607"/>
|
|
391 | 489 |
<source>Add</source> |
392 | 490 |
<translation type="unfinished"></translation> |
393 | 491 |
</message> |
394 | 492 |
<message> |
395 |
<location filename="../SymbolEditor_UI.py" line="529"/>
|
|
493 |
<location filename="../SymbolEditor_UI.py" line="604"/>
|
|
396 | 494 |
<source>Original Point</source> |
397 | 495 |
<translation type="unfinished"></translation> |
398 | 496 |
</message> |
399 | 497 |
<message> |
400 |
<location filename="../SymbolEditor_UI.py" line="531"/>
|
|
498 |
<location filename="../SymbolEditor_UI.py" line="606"/>
|
|
401 | 499 |
<source>Connection Point</source> |
402 | 500 |
<translation type="unfinished"></translation> |
403 | 501 |
</message> |
404 | 502 |
<message> |
405 |
<location filename="../SymbolEditor_UI.py" line="533"/>
|
|
503 |
<location filename="../SymbolEditor_UI.py" line="608"/>
|
|
406 | 504 |
<source>Del</source> |
407 | 505 |
<translation type="unfinished"></translation> |
408 | 506 |
</message> |
409 | 507 |
<message> |
410 |
<location filename="../SymbolEditor_UI.py" line="534"/>
|
|
508 |
<location filename="../SymbolEditor_UI.py" line="609"/>
|
|
411 | 509 |
<source>Include Ins't Label</source> |
412 | 510 |
<translation type="unfinished"></translation> |
413 | 511 |
</message> |
414 | 512 |
<message> |
415 |
<location filename="../SymbolEditor_UI.py" line="535"/>
|
|
513 |
<location filename="../SymbolEditor_UI.py" line="610"/>
|
|
416 | 514 |
<source>Exclude</source> |
417 | 515 |
<translation type="unfinished"></translation> |
418 | 516 |
</message> |
419 | 517 |
<message> |
420 |
<location filename="../SymbolEditor_UI.py" line="536"/>
|
|
518 |
<location filename="../SymbolEditor_UI.py" line="611"/>
|
|
421 | 519 |
<source>Insert Symbol When Create</source> |
422 | 520 |
<translation type="unfinished"></translation> |
423 | 521 |
</message> |
424 | 522 |
<message> |
425 |
<location filename="../OcrResultDialog_UI.py" line="131"/>
|
|
426 |
<source>OCR</source>
|
|
523 |
<location filename="../SymbolEditor_UI.py" line="612"/>
|
|
524 |
<source>Detect Flip</source>
|
|
427 | 525 |
<translation type="unfinished"></translation> |
428 | 526 |
</message> |
429 | 527 |
<message> |
430 |
<location filename="../OcrResultDialog_UI.py" line="132"/>
|
|
431 |
<source>Recognition Object</source>
|
|
528 |
<location filename="../SymbolEditor_UI.py" line="613"/>
|
|
529 |
<source>Change Base, Additional</source>
|
|
432 | 530 |
<translation type="unfinished"></translation> |
433 | 531 |
</message> |
434 | 532 |
<message> |
435 |
<location filename="../OcrResultDialog_UI.py" line="135"/>
|
|
436 |
<source>Recognition Result</source>
|
|
533 |
<location filename="../SymbolEditor_UI.py" line="614"/>
|
|
534 |
<source>Symbol Info on Drawing</source>
|
|
437 | 535 |
<translation type="unfinished"></translation> |
438 | 536 |
</message> |
439 | 537 |
<message> |
440 |
<location filename="../OcrResultDialog_UI.py" line="136"/> |
|
441 |
<source>Save OCR Training Image</source> |
|
538 |
<location filename="../SymbolEditor_UI.py" line="615"/> |
|
539 |
<source>Change Item on Drawing without DB Update</source> |
|
540 |
<translation type="unfinished"></translation> |
|
541 |
</message> |
|
542 |
<message> |
|
543 |
<location filename="../OcrResultDialog_UI.py" line="140"/> |
|
544 |
<source>OCR</source> |
|
545 |
<translation type="unfinished"></translation> |
|
546 |
</message> |
|
547 |
<message> |
|
548 |
<location filename="../OcrResultDialog_UI.py" line="141"/> |
|
549 |
<source>Recognition Object</source> |
|
442 | 550 |
<translation type="unfinished"></translation> |
443 | 551 |
</message> |
444 | 552 |
<message encoding="UTF-8"> |
445 |
<location filename="../OcrResultDialog_UI.py" line="133"/>
|
|
553 |
<location filename="../OcrResultDialog_UI.py" line="142"/>
|
|
446 | 554 |
<source>반시계 방향 회전</source> |
447 | 555 |
<translation type="unfinished"></translation> |
448 | 556 |
</message> |
449 | 557 |
<message encoding="UTF-8"> |
450 |
<location filename="../OcrResultDialog_UI.py" line="134"/>
|
|
558 |
<location filename="../OcrResultDialog_UI.py" line="143"/>
|
|
451 | 559 |
<source>시계 방향 회전</source> |
452 | 560 |
<translation type="unfinished"></translation> |
453 | 561 |
</message> |
562 |
<message> |
|
563 |
<location filename="../OcrResultDialog_UI.py" line="144"/> |
|
564 |
<source>Recognition Result</source> |
|
565 |
<translation type="unfinished"></translation> |
|
566 |
</message> |
내보내기 Unified diff