프로젝트

일반

사용자정보

개정판 110dc555

ID110dc555bdb64db562f373535832bc1c9fdbaae3
상위 abaab0bb
하위 e2b6f495

백흠경이(가) 약 5년 전에 추가함

issue #503: able to create equipment package by using vendor package control

Change-Id: Ia81b90e9557884a5609996e81861e01600dab14f

차이점 보기:

DTI_PID/DTI_PID/AppDocData.py
2350 2350

  
2351 2351
    def get_components(self, drawing):
2352 2352
        """ get components in given drawing """
2353
        conn = self.project.database.connect()
2354
        with conn:
2353

  
2354
        with self.project.database.connect() as conn:
2355 2355
            try:
2356 2356
                # Get a cursor object
2357 2357
                cursor = conn.cursor() if self.project.database.db_type == 'SQLite' else conn.cursor(as_dict=True)
2358 2358

  
2359
                sql = "select a.*,b.Name,b.SymbolType_UID,b.[Type],b.OriginalPoint,b.ConnectionPoint,b.BaseSymbol,b.AdditionalSymbol,b.HasInstrumentLabel,b.Flip as DetectFlip from Components a \
2360
                join Symbol b on a.Symbol_UID=b.UID \
2361
                where a.Drawings_UID='{}'".format(drawing)
2359
                sql = "select a.*,b.Name,b.SymbolType_UID,b.[Type],b.OriginalPoint,b.ConnectionPoint,b.BaseSymbol," \
2360
                      "b.AdditionalSymbol,b.HasInstrumentLabel,b.Flip as DetectFlip from Components a " \
2361
                      "join Symbol b on a.Symbol_UID=b.UID where a.Drawings_UID='{}'".format(drawing)
2362 2362
                cursor.execute(sql)
2363 2363
                return cursor.fetchall()
2364 2364
                # Catch the exception
......
2370 2370

  
2371 2371
    def get_opcs(self):
2372 2372
        """ get opc in project """
2373
        conn = self.project.database.connect()
2374
        with conn:
2373
        with self.project.database.connect() as conn:
2375 2374
            try:
2376 2375
                # Get a cursor object
2377 2376
                cursor = conn.cursor() if self.project.database.db_type == 'SQLite' else conn.cursor(as_dict=True)
2378 2377

  
2379
                sql = "select (select Name from Drawings where UID=a.Drawings_UID) as Drawing,\
2380
                (select Value from Components where UID=a.Owner) as [Line No],\
2381
                UID as OPC from Components a \
2382
                where Symbol_UID in (select UID from Symbol where SymbolType_UID in (select UID from SymbolType where Type='Instrument OPC''s' or Type='Piping OPC''s'))"
2378
                sql = "select (select Name from Drawings where UID=a.Drawings_UID) as Drawing," \
2379
                      "(select Value from Components where UID=a.Owner) as [Line No]," \
2380
                      "UID as OPC from Components a " \
2381
                      "where Symbol_UID in (select UID from Symbol where SymbolType_UID in " \
2382
                      "(select UID from SymbolType where Type='Instrument OPC''s' or Type='Piping OPC''s'))"
2383 2383
                cursor.execute(sql)
2384 2384
                return cursor.fetchall()
2385 2385
                # Catch the exception
DTI_PID/DTI_PID/Configuration_UI.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
# Form implementation generated from reading ui file './UI/Configuration.ui'
3
# Form implementation generated from reading ui file '.\UI\Configuration.ui'
4 4
#
5
# Created by: PyQt5 UI code generator 5.11.3
5
# Created by: PyQt5 UI code generator 5.13.0
6 6
#
7 7
# WARNING! All changes made in this file will be lost!
8 8

  
9

  
9 10
from PyQt5 import QtCore, QtGui, QtWidgets
10 11

  
12

  
11 13
class Ui_ConfigurationDialog(object):
12 14
    def setupUi(self, ConfigurationDialog):
13 15
        ConfigurationDialog.setObjectName("ConfigurationDialog")
14
        ConfigurationDialog.resize(704, 871)
16
        ConfigurationDialog.resize(617, 577)
15 17
        font = QtGui.QFont()
16 18
        font.setFamily("맑은 고딕")
17 19
        ConfigurationDialog.setFont(font)
......
31 33
        self.groupBoxFilter.setObjectName("groupBoxFilter")
32 34
        self.gridLayout_8 = QtWidgets.QGridLayout(self.groupBoxFilter)
33 35
        self.gridLayout_8.setObjectName("gridLayout_8")
34
        self.verticalLayout_9 = QtWidgets.QVBoxLayout()
35
        self.verticalLayout_9.setObjectName("verticalLayout_9")
36
        self.horizontalLayout_16 = QtWidgets.QHBoxLayout()
37
        self.horizontalLayout_16.setObjectName("horizontalLayout_16")
36
        self.gridLayout_27 = QtWidgets.QGridLayout()
37
        self.gridLayout_27.setObjectName("gridLayout_27")
38 38
        self.label_10 = QtWidgets.QLabel(self.groupBoxFilter)
39 39
        self.label_10.setMaximumSize(QtCore.QSize(230, 16777215))
40 40
        self.label_10.setObjectName("label_10")
41
        self.horizontalLayout_16.addWidget(self.label_10, 0, QtCore.Qt.AlignVCenter)
41
        self.gridLayout_27.addWidget(self.label_10, 0, 0, 1, 1)
42 42
        self.spinBoxMinimumSize = QtWidgets.QSpinBox(self.groupBoxFilter)
43 43
        self.spinBoxMinimumSize.setObjectName("spinBoxMinimumSize")
44
        self.horizontalLayout_16.addWidget(self.spinBoxMinimumSize)
45
        self.verticalLayout_9.addLayout(self.horizontalLayout_16)
46
        self.horizontalLayout_20 = QtWidgets.QHBoxLayout()
47
        self.horizontalLayout_20.setObjectName("horizontalLayout_20")
48
        self.label_33 = QtWidgets.QLabel(self.groupBoxFilter)
49
        self.label_33.setMinimumSize(QtCore.QSize(230, 0))
50
        self.label_33.setMaximumSize(QtCore.QSize(230, 16777215))
51
        self.label_33.setObjectName("label_33")
52
        self.horizontalLayout_20.addWidget(self.label_33)
44
        self.gridLayout_27.addWidget(self.spinBoxMinimumSize, 0, 1, 1, 1)
53 45
        self.spinBoxUnrecognitionIgnoreStep = QtWidgets.QSpinBox(self.groupBoxFilter)
54 46
        self.spinBoxUnrecognitionIgnoreStep.setMaximum(10)
55 47
        self.spinBoxUnrecognitionIgnoreStep.setObjectName("spinBoxUnrecognitionIgnoreStep")
56
        self.horizontalLayout_20.addWidget(self.spinBoxUnrecognitionIgnoreStep)
57
        self.verticalLayout_9.addLayout(self.horizontalLayout_20)
58
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
59
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
48
        self.gridLayout_27.addWidget(self.spinBoxUnrecognitionIgnoreStep, 1, 1, 1, 1)
60 49
        self.label_29 = QtWidgets.QLabel(self.groupBoxFilter)
61 50
        self.label_29.setMaximumSize(QtCore.QSize(230, 16777215))
62 51
        self.label_29.setObjectName("label_29")
63
        self.horizontalLayout_6.addWidget(self.label_29)
52
        self.gridLayout_27.addWidget(self.label_29, 2, 0, 1, 1)
64 53
        self.spinBoxDilateSize = QtWidgets.QSpinBox(self.groupBoxFilter)
65 54
        self.spinBoxDilateSize.setMaximum(10)
66 55
        self.spinBoxDilateSize.setObjectName("spinBoxDilateSize")
67
        self.horizontalLayout_6.addWidget(self.spinBoxDilateSize)
68
        self.verticalLayout_9.addLayout(self.horizontalLayout_6)
69
        self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
70
        self.horizontalLayout_10.setObjectName("horizontalLayout_10")
56
        self.gridLayout_27.addWidget(self.spinBoxDilateSize, 2, 1, 1, 1)
57
        self.label_33 = QtWidgets.QLabel(self.groupBoxFilter)
58
        self.label_33.setMinimumSize(QtCore.QSize(230, 0))
59
        self.label_33.setMaximumSize(QtCore.QSize(230, 16777215))
60
        self.label_33.setObjectName("label_33")
61
        self.gridLayout_27.addWidget(self.label_33, 1, 0, 1, 1)
71 62
        self.label_32 = QtWidgets.QLabel(self.groupBoxFilter)
72 63
        self.label_32.setMaximumSize(QtCore.QSize(230, 16777215))
73 64
        self.label_32.setObjectName("label_32")
74
        self.horizontalLayout_10.addWidget(self.label_32)
65
        self.gridLayout_27.addWidget(self.label_32, 3, 0, 1, 1)
75 66
        self.spinBoxFlatSize = QtWidgets.QSpinBox(self.groupBoxFilter)
76 67
        self.spinBoxFlatSize.setObjectName("spinBoxFlatSize")
77
        self.horizontalLayout_10.addWidget(self.spinBoxFlatSize)
78
        self.verticalLayout_9.addLayout(self.horizontalLayout_10)
79
        self.gridLayout_8.addLayout(self.verticalLayout_9, 0, 0, 1, 1)
68
        self.gridLayout_27.addWidget(self.spinBoxFlatSize, 3, 1, 1, 1)
69
        self.gridLayout_8.addLayout(self.gridLayout_27, 0, 0, 1, 1)
80 70
        self.gridLayout_2.addWidget(self.groupBoxFilter, 2, 1, 1, 1)
81 71
        self.groupBoxText = QtWidgets.QGroupBox(self.Recognition)
82 72
        self.groupBoxText.setObjectName("groupBoxText")
83 73
        self.gridLayout_14 = QtWidgets.QGridLayout(self.groupBoxText)
84 74
        self.gridLayout_14.setObjectName("gridLayout_14")
85
        self.verticalLayout_5 = QtWidgets.QVBoxLayout()
86
        self.verticalLayout_5.setObjectName("verticalLayout_5")
87
        self.horizontalLayout_14 = QtWidgets.QHBoxLayout()
88
        self.horizontalLayout_14.setObjectName("horizontalLayout_14")
89
        self.label_19 = QtWidgets.QLabel(self.groupBoxText)
90
        self.label_19.setObjectName("label_19")
91
        self.horizontalLayout_14.addWidget(self.label_19)
92
        self.comboBoxOCRData = QtWidgets.QComboBox(self.groupBoxText)
93
        self.comboBoxOCRData.setMinimumSize(QtCore.QSize(200, 0))
94
        self.comboBoxOCRData.setMaximumSize(QtCore.QSize(200, 16777215))
95
        self.comboBoxOCRData.setObjectName("comboBoxOCRData")
96
        self.horizontalLayout_14.addWidget(self.comboBoxOCRData)
97
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
98
        self.horizontalLayout_14.addItem(spacerItem)
99
        self.verticalLayout_5.addLayout(self.horizontalLayout_14)
100
        self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
101
        self.horizontalLayout_11.setObjectName("horizontalLayout_11")
102
        self.label_7 = QtWidgets.QLabel(self.groupBoxText)
103
        self.label_7.setObjectName("label_7")
104
        self.horizontalLayout_11.addWidget(self.label_7)
105
        self.lineEditWhiteCharList = QtWidgets.QLineEdit(self.groupBoxText)
106
        self.lineEditWhiteCharList.setObjectName("lineEditWhiteCharList")
107
        self.horizontalLayout_11.addWidget(self.lineEditWhiteCharList)
108
        self.verticalLayout_5.addLayout(self.horizontalLayout_11)
109
        self.horizontalLayout_26 = QtWidgets.QHBoxLayout()
110
        self.horizontalLayout_26.setObjectName("horizontalLayout_26")
111
        self.label_37 = QtWidgets.QLabel(self.groupBoxText)
112
        self.label_37.setObjectName("label_37")
113
        self.horizontalLayout_26.addWidget(self.label_37)
114
        self.lineEditSingleText = QtWidgets.QLineEdit(self.groupBoxText)
115
        self.lineEditSingleText.setObjectName("lineEditSingleText")
116
        self.horizontalLayout_26.addWidget(self.lineEditSingleText)
117
        self.verticalLayout_5.addLayout(self.horizontalLayout_26)
118
        self.horizontalLayout_15 = QtWidgets.QHBoxLayout()
119
        self.horizontalLayout_15.setObjectName("horizontalLayout_15")
120
        self.label_20 = QtWidgets.QLabel(self.groupBoxText)
121
        self.label_20.setObjectName("label_20")
122
        self.horizontalLayout_15.addWidget(self.label_20)
123
        self.spinBoxExpandSize = QtWidgets.QSpinBox(self.groupBoxText)
124
        self.spinBoxExpandSize.setMinimumSize(QtCore.QSize(100, 0))
125
        self.spinBoxExpandSize.setObjectName("spinBoxExpandSize")
126
        self.horizontalLayout_15.addWidget(self.spinBoxExpandSize)
127
        self.label_21 = QtWidgets.QLabel(self.groupBoxText)
128
        self.label_21.setObjectName("label_21")
129
        self.horizontalLayout_15.addWidget(self.label_21)
130
        self.spinBoxShrinkSize = QtWidgets.QSpinBox(self.groupBoxText)
131
        self.spinBoxShrinkSize.setMinimumSize(QtCore.QSize(100, 0))
132
        self.spinBoxShrinkSize.setObjectName("spinBoxShrinkSize")
133
        self.horizontalLayout_15.addWidget(self.spinBoxShrinkSize)
134
        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
135
        self.horizontalLayout_15.addItem(spacerItem1)
136
        self.verticalLayout_5.addLayout(self.horizontalLayout_15)
137
        self.horizontalLayout_13 = QtWidgets.QHBoxLayout()
138
        self.horizontalLayout_13.setObjectName("horizontalLayout_13")
139
        self.label_17 = QtWidgets.QLabel(self.groupBoxText)
140
        self.label_17.setObjectName("label_17")
141
        self.horizontalLayout_13.addWidget(self.label_17, 0, QtCore.Qt.AlignLeft)
75
        self.gridLayout_25 = QtWidgets.QGridLayout()
76
        self.gridLayout_25.setObjectName("gridLayout_25")
77
        self.maxTextSizeSpinBox = QtWidgets.QSpinBox(self.groupBoxText)
78
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
79
        sizePolicy.setHorizontalStretch(0)
80
        sizePolicy.setVerticalStretch(0)
81
        sizePolicy.setHeightForWidth(self.maxTextSizeSpinBox.sizePolicy().hasHeightForWidth())
82
        self.maxTextSizeSpinBox.setSizePolicy(sizePolicy)
83
        self.maxTextSizeSpinBox.setProperty("value", 60)
84
        self.maxTextSizeSpinBox.setObjectName("maxTextSizeSpinBox")
85
        self.gridLayout_25.addWidget(self.maxTextSizeSpinBox, 4, 3, 1, 1)
142 86
        self.minTextSizeSpinBox = QtWidgets.QSpinBox(self.groupBoxText)
143 87
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
144 88
        sizePolicy.setHorizontalStretch(0)
......
148 92
        self.minTextSizeSpinBox.setMaximumSize(QtCore.QSize(16777215, 16777215))
149 93
        self.minTextSizeSpinBox.setProperty("value", 30)
150 94
        self.minTextSizeSpinBox.setObjectName("minTextSizeSpinBox")
151
        self.horizontalLayout_13.addWidget(self.minTextSizeSpinBox)
95
        self.gridLayout_25.addWidget(self.minTextSizeSpinBox, 4, 1, 1, 1)
152 96
        self.label_18 = QtWidgets.QLabel(self.groupBoxText)
153 97
        self.label_18.setObjectName("label_18")
154
        self.horizontalLayout_13.addWidget(self.label_18)
155
        self.maxTextSizeSpinBox = QtWidgets.QSpinBox(self.groupBoxText)
156
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
157
        sizePolicy.setHorizontalStretch(0)
158
        sizePolicy.setVerticalStretch(0)
159
        sizePolicy.setHeightForWidth(self.maxTextSizeSpinBox.sizePolicy().hasHeightForWidth())
160
        self.maxTextSizeSpinBox.setSizePolicy(sizePolicy)
161
        self.maxTextSizeSpinBox.setProperty("value", 60)
162
        self.maxTextSizeSpinBox.setObjectName("maxTextSizeSpinBox")
163
        self.horizontalLayout_13.addWidget(self.maxTextSizeSpinBox)
164
        spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
165
        self.horizontalLayout_13.addItem(spacerItem2)
166
        self.verticalLayout_5.addLayout(self.horizontalLayout_13)
167
        self.horizontalLayout_17 = QtWidgets.QHBoxLayout()
168
        self.horizontalLayout_17.setObjectName("horizontalLayout_17")
98
        self.gridLayout_25.addWidget(self.label_18, 4, 2, 1, 1)
99
        self.label_17 = QtWidgets.QLabel(self.groupBoxText)
100
        self.label_17.setObjectName("label_17")
101
        self.gridLayout_25.addWidget(self.label_17, 4, 0, 1, 1)
102
        self.label_21 = QtWidgets.QLabel(self.groupBoxText)
103
        self.label_21.setObjectName("label_21")
104
        self.gridLayout_25.addWidget(self.label_21, 3, 2, 1, 1)
105
        self.spinBoxShrinkSize = QtWidgets.QSpinBox(self.groupBoxText)
106
        self.spinBoxShrinkSize.setMinimumSize(QtCore.QSize(100, 0))
107
        self.spinBoxShrinkSize.setObjectName("spinBoxShrinkSize")
108
        self.gridLayout_25.addWidget(self.spinBoxShrinkSize, 3, 3, 1, 1)
109
        self.spinBoxExpandSize = QtWidgets.QSpinBox(self.groupBoxText)
110
        self.spinBoxExpandSize.setMinimumSize(QtCore.QSize(100, 0))
111
        self.spinBoxExpandSize.setObjectName("spinBoxExpandSize")
112
        self.gridLayout_25.addWidget(self.spinBoxExpandSize, 3, 1, 1, 1)
113
        self.label_19 = QtWidgets.QLabel(self.groupBoxText)
114
        self.label_19.setObjectName("label_19")
115
        self.gridLayout_25.addWidget(self.label_19, 0, 0, 1, 1)
116
        self.label_7 = QtWidgets.QLabel(self.groupBoxText)
117
        self.label_7.setObjectName("label_7")
118
        self.gridLayout_25.addWidget(self.label_7, 1, 0, 1, 1)
119
        self.label_20 = QtWidgets.QLabel(self.groupBoxText)
120
        self.label_20.setObjectName("label_20")
121
        self.gridLayout_25.addWidget(self.label_20, 3, 0, 1, 1)
122
        self.label_37 = QtWidgets.QLabel(self.groupBoxText)
123
        self.label_37.setObjectName("label_37")
124
        self.gridLayout_25.addWidget(self.label_37, 2, 0, 1, 1)
169 125
        self.label_22 = QtWidgets.QLabel(self.groupBoxText)
170 126
        self.label_22.setObjectName("label_22")
171
        self.horizontalLayout_17.addWidget(self.label_22)
127
        self.gridLayout_25.addWidget(self.label_22, 5, 0, 1, 1)
172 128
        self.spinBoxMergeSize = QtWidgets.QSpinBox(self.groupBoxText)
173 129
        self.spinBoxMergeSize.setMinimumSize(QtCore.QSize(100, 0))
174 130
        self.spinBoxMergeSize.setObjectName("spinBoxMergeSize")
175
        self.horizontalLayout_17.addWidget(self.spinBoxMergeSize)
176
        spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
177
        self.horizontalLayout_17.addItem(spacerItem3)
178
        self.verticalLayout_5.addLayout(self.horizontalLayout_17)
179
        self.gridLayout_14.addLayout(self.verticalLayout_5, 0, 0, 1, 1)
131
        self.gridLayout_25.addWidget(self.spinBoxMergeSize, 5, 1, 1, 1)
132
        self.comboBoxOCRData = QtWidgets.QComboBox(self.groupBoxText)
133
        self.comboBoxOCRData.setMinimumSize(QtCore.QSize(200, 0))
134
        self.comboBoxOCRData.setMaximumSize(QtCore.QSize(200, 16777215))
135
        self.comboBoxOCRData.setObjectName("comboBoxOCRData")
136
        self.gridLayout_25.addWidget(self.comboBoxOCRData, 0, 1, 1, 1)
137
        self.lineEditWhiteCharList = QtWidgets.QLineEdit(self.groupBoxText)
138
        self.lineEditWhiteCharList.setObjectName("lineEditWhiteCharList")
139
        self.gridLayout_25.addWidget(self.lineEditWhiteCharList, 1, 1, 1, 1)
140
        self.lineEditSingleText = QtWidgets.QLineEdit(self.groupBoxText)
141
        self.lineEditSingleText.setObjectName("lineEditSingleText")
142
        self.gridLayout_25.addWidget(self.lineEditSingleText, 2, 1, 1, 1)
143
        self.gridLayout_14.addLayout(self.gridLayout_25, 0, 0, 1, 1)
180 144
        self.gridLayout_2.addWidget(self.groupBoxText, 0, 1, 1, 1)
181 145
        self.groupBoxAttribute = QtWidgets.QGroupBox(self.Recognition)
182 146
        self.groupBoxAttribute.setMaximumSize(QtCore.QSize(16777215, 16777215))
183 147
        self.groupBoxAttribute.setObjectName("groupBoxAttribute")
184 148
        self.gridLayout_6 = QtWidgets.QGridLayout(self.groupBoxAttribute)
185 149
        self.gridLayout_6.setObjectName("gridLayout_6")
186
        self.verticalLayout_3 = QtWidgets.QVBoxLayout()
187
        self.verticalLayout_3.setObjectName("verticalLayout_3")
188
        self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
189
        self.horizontalLayout_8.setObjectName("horizontalLayout_8")
190
        self.label_6 = QtWidgets.QLabel(self.groupBoxAttribute)
191
        self.label_6.setObjectName("label_6")
192
        self.horizontalLayout_8.addWidget(self.label_6, 0, QtCore.Qt.AlignVCenter)
150
        self.gridLayout_26 = QtWidgets.QGridLayout()
151
        self.gridLayout_26.setObjectName("gridLayout_26")
152
        self.spinBoxFlowMarkPosition = QtWidgets.QSpinBox(self.groupBoxAttribute)
153
        self.spinBoxFlowMarkPosition.setMaximum(100)
154
        self.spinBoxFlowMarkPosition.setObjectName("spinBoxFlowMarkPosition")
155
        self.gridLayout_26.addWidget(self.spinBoxFlowMarkPosition, 2, 1, 1, 1)
193 156
        self.lineEditSizeDelimiter = QtWidgets.QLineEdit(self.groupBoxAttribute)
194 157
        self.lineEditSizeDelimiter.setObjectName("lineEditSizeDelimiter")
195
        self.horizontalLayout_8.addWidget(self.lineEditSizeDelimiter, 0, QtCore.Qt.AlignVCenter)
196
        self.verticalLayout_3.addLayout(self.horizontalLayout_8)
197
        self.horizontalLayout = QtWidgets.QHBoxLayout()
198
        self.horizontalLayout.setObjectName("horizontalLayout")
199
        self.label_15 = QtWidgets.QLabel(self.groupBoxAttribute)
200
        self.label_15.setMaximumSize(QtCore.QSize(190, 16777215))
201
        self.label_15.setObjectName("label_15")
202
        self.horizontalLayout.addWidget(self.label_15)
158
        self.gridLayout_26.addWidget(self.lineEditSizeDelimiter, 0, 1, 1, 1)
203 159
        self.doubleSpinBoxDetectionRange = QtWidgets.QDoubleSpinBox(self.groupBoxAttribute)
204 160
        self.doubleSpinBoxDetectionRange.setSingleStep(0.1)
205 161
        self.doubleSpinBoxDetectionRange.setProperty("value", 1.0)
206 162
        self.doubleSpinBoxDetectionRange.setObjectName("doubleSpinBoxDetectionRange")
207
        self.horizontalLayout.addWidget(self.doubleSpinBoxDetectionRange)
208
        self.verticalLayout_3.addLayout(self.horizontalLayout)
209
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
210
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
163
        self.gridLayout_26.addWidget(self.doubleSpinBoxDetectionRange, 1, 1, 1, 1)
164
        self.label_6 = QtWidgets.QLabel(self.groupBoxAttribute)
165
        self.label_6.setObjectName("label_6")
166
        self.gridLayout_26.addWidget(self.label_6, 0, 0, 1, 1)
211 167
        self.label_24 = QtWidgets.QLabel(self.groupBoxAttribute)
212 168
        self.label_24.setMaximumSize(QtCore.QSize(190, 16777215))
213 169
        self.label_24.setObjectName("label_24")
214
        self.horizontalLayout_5.addWidget(self.label_24)
215
        self.spinBoxFlowMarkPosition = QtWidgets.QSpinBox(self.groupBoxAttribute)
216
        self.spinBoxFlowMarkPosition.setMaximum(100)
217
        self.spinBoxFlowMarkPosition.setObjectName("spinBoxFlowMarkPosition")
218
        self.horizontalLayout_5.addWidget(self.spinBoxFlowMarkPosition)
219
        self.verticalLayout_3.addLayout(self.horizontalLayout_5)
220
        self.horizontalLayout_12 = QtWidgets.QHBoxLayout()
221
        self.horizontalLayout_12.setObjectName("horizontalLayout_12")
170
        self.gridLayout_26.addWidget(self.label_24, 2, 0, 1, 1)
171
        self.label_15 = QtWidgets.QLabel(self.groupBoxAttribute)
172
        self.label_15.setMaximumSize(QtCore.QSize(190, 16777215))
173
        self.label_15.setObjectName("label_15")
174
        self.gridLayout_26.addWidget(self.label_15, 1, 0, 1, 1)
222 175
        self.label_26 = QtWidgets.QLabel(self.groupBoxAttribute)
223 176
        self.label_26.setMaximumSize(QtCore.QSize(220, 16777215))
224 177
        self.label_26.setObjectName("label_26")
225
        self.horizontalLayout_12.addWidget(self.label_26)
178
        self.gridLayout_26.addWidget(self.label_26, 3, 0, 1, 1)
226 179
        self.spinBoxFlowMarkLength = QtWidgets.QSpinBox(self.groupBoxAttribute)
227 180
        self.spinBoxFlowMarkLength.setMinimum(1)
228 181
        self.spinBoxFlowMarkLength.setMaximum(99999)
229 182
        self.spinBoxFlowMarkLength.setObjectName("spinBoxFlowMarkLength")
230
        self.horizontalLayout_12.addWidget(self.spinBoxFlowMarkLength)
231
        self.verticalLayout_3.addLayout(self.horizontalLayout_12)
232
        self.gridLayout_6.addLayout(self.verticalLayout_3, 0, 0, 1, 1)
183
        self.gridLayout_26.addWidget(self.spinBoxFlowMarkLength, 3, 1, 1, 1)
184
        self.gridLayout_6.addLayout(self.gridLayout_26, 0, 0, 1, 1)
233 185
        self.gridLayout_2.addWidget(self.groupBoxAttribute, 1, 1, 1, 1)
234 186
        self.tabWidget.addTab(self.Recognition, "")
235 187
        self.Recognition2 = QtWidgets.QWidget()
......
240 192
        self.groupBoxLineNo.setObjectName("groupBoxLineNo")
241 193
        self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBoxLineNo)
242 194
        self.gridLayout_3.setObjectName("gridLayout_3")
243
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
244
        self.verticalLayout_2.setObjectName("verticalLayout_2")
245
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
246
        self.horizontalLayout_2.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
247
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
248
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
249
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
250
        self.horizontalLayout_2.addLayout(self.horizontalLayout_4)
251
        self.pushButtonLineNoAttribute = QtWidgets.QPushButton(self.groupBoxLineNo)
252
        self.pushButtonLineNoAttribute.setMinimumSize(QtCore.QSize(50, 24))
253
        self.pushButtonLineNoAttribute.setMaximumSize(QtCore.QSize(16777215, 24))
254
        self.pushButtonLineNoAttribute.setObjectName("pushButtonLineNoAttribute")
255
        self.horizontalLayout_2.addWidget(self.pushButtonLineNoAttribute)
256
        spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
257
        self.horizontalLayout_2.addItem(spacerItem4)
195
        self.gridLayout_28 = QtWidgets.QGridLayout()
196
        self.gridLayout_28.setObjectName("gridLayout_28")
258 197
        self.pushButtonAddProperty = QtWidgets.QPushButton(self.groupBoxLineNo)
259 198
        self.pushButtonAddProperty.setMinimumSize(QtCore.QSize(50, 0))
260 199
        self.pushButtonAddProperty.setMaximumSize(QtCore.QSize(50, 16777215))
261 200
        self.pushButtonAddProperty.setDefault(False)
262 201
        self.pushButtonAddProperty.setObjectName("pushButtonAddProperty")
263
        self.horizontalLayout_2.addWidget(self.pushButtonAddProperty)
202
        self.gridLayout_28.addWidget(self.pushButtonAddProperty, 0, 2, 1, 1)
203
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
204
        self.gridLayout_28.addItem(spacerItem, 0, 1, 1, 1)
205
        self.pushButtonLineNoAttribute = QtWidgets.QPushButton(self.groupBoxLineNo)
206
        self.pushButtonLineNoAttribute.setMinimumSize(QtCore.QSize(50, 24))
207
        self.pushButtonLineNoAttribute.setMaximumSize(QtCore.QSize(16777215, 24))
208
        self.pushButtonLineNoAttribute.setObjectName("pushButtonLineNoAttribute")
209
        self.gridLayout_28.addWidget(self.pushButtonLineNoAttribute, 0, 0, 1, 1)
264 210
        self.pushButtonDeleteProperty = QtWidgets.QPushButton(self.groupBoxLineNo)
265 211
        self.pushButtonDeleteProperty.setMinimumSize(QtCore.QSize(50, 0))
266 212
        self.pushButtonDeleteProperty.setMaximumSize(QtCore.QSize(50, 16777215))
267 213
        self.pushButtonDeleteProperty.setObjectName("pushButtonDeleteProperty")
268
        self.horizontalLayout_2.addWidget(self.pushButtonDeleteProperty)
269
        self.verticalLayout_2.addLayout(self.horizontalLayout_2)
270
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
271
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
214
        self.gridLayout_28.addWidget(self.pushButtonDeleteProperty, 0, 3, 1, 1)
272 215
        self.listWidgetLineNo = QtWidgets.QListWidget(self.groupBoxLineNo)
273 216
        self.listWidgetLineNo.setObjectName("listWidgetLineNo")
274
        self.horizontalLayout_3.addWidget(self.listWidgetLineNo)
275
        self.verticalLayout_2.addLayout(self.horizontalLayout_3)
276
        self.gridLayout_3.addLayout(self.verticalLayout_2, 6, 0, 1, 1)
217
        self.gridLayout_28.addWidget(self.listWidgetLineNo, 1, 0, 1, 4)
218
        self.gridLayout_3.addLayout(self.gridLayout_28, 0, 0, 1, 1)
277 219
        self.gridLayout_21.addWidget(self.groupBoxLineNo, 1, 1, 1, 1)
278 220
        self.groupBox = QtWidgets.QGroupBox(self.Recognition2)
279 221
        self.groupBox.setObjectName("groupBox")
......
324 266
        self.label_28 = QtWidgets.QLabel(self.groupBox)
325 267
        self.label_28.setObjectName("label_28")
326 268
        self.gridLayout_11.addWidget(self.label_28, 4, 0, 1, 1)
327
        spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
328
        self.gridLayout_11.addItem(spacerItem5, 0, 4, 1, 1)
269
        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
270
        self.gridLayout_11.addItem(spacerItem1, 0, 4, 1, 1)
329 271
        self.spinBoxMaxArea = QtWidgets.QSpinBox(self.groupBox)
330 272
        self.spinBoxMaxArea.setMinimumSize(QtCore.QSize(100, 0))
331 273
        self.spinBoxMaxArea.setObjectName("spinBoxMaxArea")
......
446 388
        self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.lineEditOPCToPrefix)
447 389
        self.gridLayout_20.addLayout(self.formLayout_5, 0, 0, 1, 1)
448 390
        self.gridLayout_7.addWidget(self.groupBox_10, 1, 0, 1, 1)
449
        spacerItem6 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
450
        self.gridLayout_7.addItem(spacerItem6, 5, 0, 1, 1)
391
        spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
392
        self.gridLayout_7.addItem(spacerItem2, 5, 0, 1, 1)
451 393
        self.tabWidget.addTab(self.tabTagNoRule, "")
452 394
        self.tabDisplayOption = QtWidgets.QWidget()
453 395
        self.tabDisplayOption.setObjectName("tabDisplayOption")
......
499 441
        self.groupBox_5.setObjectName("groupBox_5")
500 442
        self.gridLayout_15 = QtWidgets.QGridLayout(self.groupBox_5)
501 443
        self.gridLayout_15.setObjectName("gridLayout_15")
502
        self.horizontalLayout_19 = QtWidgets.QHBoxLayout()
503
        self.horizontalLayout_19.setObjectName("horizontalLayout_19")
444
        self.gridLayout_29 = QtWidgets.QGridLayout()
445
        self.gridLayout_29.setObjectName("gridLayout_29")
504 446
        self.labelFontSize = QtWidgets.QLabel(self.groupBox_5)
505 447
        self.labelFontSize.setObjectName("labelFontSize")
506
        self.horizontalLayout_19.addWidget(self.labelFontSize, 0, QtCore.Qt.AlignLeft)
448
        self.gridLayout_29.addWidget(self.labelFontSize, 1, 0, 1, 1)
449
        self.labelFontName = QtWidgets.QLabel(self.groupBox_5)
450
        self.labelFontName.setObjectName("labelFontName")
451
        self.gridLayout_29.addWidget(self.labelFontName, 0, 0, 1, 1)
452
        self.horizontalLayout = QtWidgets.QHBoxLayout()
453
        self.horizontalLayout.setObjectName("horizontalLayout")
507 454
        self.radioButtonAutoSize = QtWidgets.QRadioButton(self.groupBox_5)
508 455
        self.radioButtonAutoSize.setObjectName("radioButtonAutoSize")
509
        self.horizontalLayout_19.addWidget(self.radioButtonAutoSize)
456
        self.horizontalLayout.addWidget(self.radioButtonAutoSize)
510 457
        self.radioButtonFixedSize = QtWidgets.QRadioButton(self.groupBox_5)
511 458
        self.radioButtonFixedSize.setMaximumSize(QtCore.QSize(50, 16777215))
512 459
        self.radioButtonFixedSize.setObjectName("radioButtonFixedSize")
513
        self.horizontalLayout_19.addWidget(self.radioButtonFixedSize)
460
        self.horizontalLayout.addWidget(self.radioButtonFixedSize)
461
        self.gridLayout_29.addLayout(self.horizontalLayout, 1, 1, 1, 1)
514 462
        self.spinBoxFontSize = QtWidgets.QSpinBox(self.groupBox_5)
515 463
        self.spinBoxFontSize.setObjectName("spinBoxFontSize")
516
        self.horizontalLayout_19.addWidget(self.spinBoxFontSize)
517
        self.gridLayout_15.addLayout(self.horizontalLayout_19, 2, 0, 1, 1)
518
        self.verticalLayout_6 = QtWidgets.QVBoxLayout()
519
        self.verticalLayout_6.setObjectName("verticalLayout_6")
520
        self.horizontalLayout_18 = QtWidgets.QHBoxLayout()
521
        self.horizontalLayout_18.setObjectName("horizontalLayout_18")
522
        self.labelFontName = QtWidgets.QLabel(self.groupBox_5)
523
        self.labelFontName.setObjectName("labelFontName")
524
        self.horizontalLayout_18.addWidget(self.labelFontName)
464
        self.gridLayout_29.addWidget(self.spinBoxFontSize, 1, 2, 1, 1)
525 465
        self.fontComboBox = QtWidgets.QFontComboBox(self.groupBox_5)
526 466
        self.fontComboBox.setObjectName("fontComboBox")
527
        self.horizontalLayout_18.addWidget(self.fontComboBox)
528
        self.verticalLayout_6.addLayout(self.horizontalLayout_18)
529
        self.gridLayout_15.addLayout(self.verticalLayout_6, 0, 0, 1, 1)
467
        self.gridLayout_29.addWidget(self.fontComboBox, 0, 1, 1, 2)
468
        spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
469
        self.gridLayout_29.addItem(spacerItem3, 0, 3, 1, 1)
470
        self.gridLayout_15.addLayout(self.gridLayout_29, 0, 0, 1, 1)
530 471
        self.verticalLayout.addWidget(self.groupBox_5)
531 472
        self.gridLayout_4.addLayout(self.verticalLayout, 0, 0, 1, 1)
532 473
        self.tabWidget.addTab(self.tabDisplayOption, "")
......
538 479
        self.groupBox_7.setObjectName("groupBox_7")
539 480
        self.gridLayout_19 = QtWidgets.QGridLayout(self.groupBox_7)
540 481
        self.gridLayout_19.setObjectName("gridLayout_19")
541
        self.verticalLayout_8 = QtWidgets.QVBoxLayout()
542
        self.verticalLayout_8.setObjectName("verticalLayout_8")
543
        self.horizontalLayout_21 = QtWidgets.QHBoxLayout()
544
        self.horizontalLayout_21.setObjectName("horizontalLayout_21")
545
        self.label_25 = QtWidgets.QLabel(self.groupBox_7)
546
        self.label_25.setObjectName("label_25")
547
        self.horizontalLayout_21.addWidget(self.label_25)
482
        self.gridLayout_30 = QtWidgets.QGridLayout()
483
        self.gridLayout_30.setObjectName("gridLayout_30")
484
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
485
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
548 486
        self.radioButtonRandom = QtWidgets.QRadioButton(self.groupBox_7)
549 487
        self.radioButtonRandom.setObjectName("radioButtonRandom")
550
        self.horizontalLayout_21.addWidget(self.radioButtonRandom)
488
        self.horizontalLayout_2.addWidget(self.radioButtonRandom)
551 489
        self.radioButtonProperty = QtWidgets.QRadioButton(self.groupBox_7)
552 490
        self.radioButtonProperty.setObjectName("radioButtonProperty")
553
        self.horizontalLayout_21.addWidget(self.radioButtonProperty)
491
        self.horizontalLayout_2.addWidget(self.radioButtonProperty)
492
        self.gridLayout_30.addLayout(self.horizontalLayout_2, 1, 1, 1, 1)
493
        self.label_25 = QtWidgets.QLabel(self.groupBox_7)
494
        self.label_25.setObjectName("label_25")
495
        self.gridLayout_30.addWidget(self.label_25, 1, 0, 1, 1)
554 496
        self.comboBoxColorOption = QtWidgets.QComboBox(self.groupBox_7)
555 497
        self.comboBoxColorOption.setObjectName("comboBoxColorOption")
556
        self.horizontalLayout_21.addWidget(self.comboBoxColorOption)
557
        self.verticalLayout_8.addLayout(self.horizontalLayout_21)
558
        self.horizontalLayout_22 = QtWidgets.QHBoxLayout()
559
        self.horizontalLayout_22.setObjectName("horizontalLayout_22")
498
        self.gridLayout_30.addWidget(self.comboBoxColorOption, 1, 2, 1, 1)
560 499
        self.tableWidgetColorProperty = QtWidgets.QTableWidget(self.groupBox_7)
561 500
        self.tableWidgetColorProperty.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
562 501
        self.tableWidgetColorProperty.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection)
......
564 503
        self.tableWidgetColorProperty.setObjectName("tableWidgetColorProperty")
565 504
        self.tableWidgetColorProperty.setRowCount(0)
566 505
        self.tableWidgetColorProperty.verticalHeader().setVisible(False)
567
        self.horizontalLayout_22.addWidget(self.tableWidgetColorProperty)
568
        self.verticalLayout_8.addLayout(self.horizontalLayout_22)
569
        self.gridLayout_19.addLayout(self.verticalLayout_8, 0, 0, 1, 1)
506
        self.gridLayout_30.addWidget(self.tableWidgetColorProperty, 2, 0, 1, 3)
507
        self.gridLayout_19.addLayout(self.gridLayout_30, 0, 0, 1, 1)
570 508
        self.gridLayout_18.addWidget(self.groupBox_7, 0, 0, 1, 1)
571 509
        self.tabWidget.addTab(self.tabLineColor, "")
572 510
        self.tabETC = QtWidgets.QWidget()
573 511
        self.tabETC.setObjectName("tabETC")
574 512
        self.gridLayout_22 = QtWidgets.QGridLayout(self.tabETC)
575 513
        self.gridLayout_22.setObjectName("gridLayout_22")
514
        spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
515
        self.gridLayout_22.addItem(spacerItem4, 3, 0, 1, 1)
576 516
        self.gridLayout_21 = QtWidgets.QGridLayout()
577 517
        self.gridLayout_21.setObjectName("gridLayout_21")
578 518
        self.groupBox_12 = QtWidgets.QGroupBox(self.tabETC)
579 519
        self.groupBox_12.setObjectName("groupBox_12")
580 520
        self.gridLayout_24 = QtWidgets.QGridLayout(self.groupBox_12)
581 521
        self.gridLayout_24.setObjectName("gridLayout_24")
582
        self.verticalLayout_7 = QtWidgets.QVBoxLayout()
583
        self.verticalLayout_7.setObjectName("verticalLayout_7")
584
        self.horizontalLayout_25 = QtWidgets.QHBoxLayout()
585
        self.horizontalLayout_25.setObjectName("horizontalLayout_25")
522
        self.gridLayout_32 = QtWidgets.QGridLayout()
523
        self.gridLayout_32.setObjectName("gridLayout_32")
524
        spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
525
        self.gridLayout_32.addItem(spacerItem5, 0, 2, 1, 1)
586 526
        self.label_36 = QtWidgets.QLabel(self.groupBox_12)
587 527
        self.label_36.setObjectName("label_36")
588
        self.horizontalLayout_25.addWidget(self.label_36)
528
        self.gridLayout_32.addWidget(self.label_36, 0, 0, 1, 1)
529
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
530
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
589 531
        self.radioButtonBackTextYes = QtWidgets.QRadioButton(self.groupBox_12)
590 532
        self.radioButtonBackTextYes.setObjectName("radioButtonBackTextYes")
591 533
        self.buttonGroup_4 = QtWidgets.QButtonGroup(ConfigurationDialog)
592 534
        self.buttonGroup_4.setObjectName("buttonGroup_4")
593 535
        self.buttonGroup_4.addButton(self.radioButtonBackTextYes)
594
        self.horizontalLayout_25.addWidget(self.radioButtonBackTextYes)
536
        self.horizontalLayout_5.addWidget(self.radioButtonBackTextYes)
595 537
        self.radioButtonBackTextNo = QtWidgets.QRadioButton(self.groupBox_12)
596 538
        self.radioButtonBackTextNo.setObjectName("radioButtonBackTextNo")
597 539
        self.buttonGroup_4.addButton(self.radioButtonBackTextNo)
598
        self.horizontalLayout_25.addWidget(self.radioButtonBackTextNo)
599
        self.verticalLayout_7.addLayout(self.horizontalLayout_25)
600
        self.gridLayout_24.addLayout(self.verticalLayout_7, 0, 0, 1, 1)
540
        self.horizontalLayout_5.addWidget(self.radioButtonBackTextNo)
541
        self.gridLayout_32.addLayout(self.horizontalLayout_5, 0, 1, 1, 1)
542
        self.gridLayout_24.addLayout(self.gridLayout_32, 0, 0, 1, 1)
601 543
        self.gridLayout_21.addWidget(self.groupBox_12, 1, 0, 1, 1)
602 544
        self.groupBox_11 = QtWidgets.QGroupBox(self.tabETC)
603 545
        self.groupBox_11.setObjectName("groupBox_11")
604 546
        self.gridLayout_23 = QtWidgets.QGridLayout(self.groupBox_11)
605 547
        self.gridLayout_23.setObjectName("gridLayout_23")
606
        self.verticalLayout_4 = QtWidgets.QVBoxLayout()
607
        self.verticalLayout_4.setObjectName("verticalLayout_4")
608
        self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
609
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
548
        self.gridLayout_31 = QtWidgets.QGridLayout()
549
        self.gridLayout_31.setObjectName("gridLayout_31")
610 550
        self.label_30 = QtWidgets.QLabel(self.groupBox_11)
611 551
        self.label_30.setObjectName("label_30")
612
        self.horizontalLayout_7.addWidget(self.label_30)
552
        self.gridLayout_31.addWidget(self.label_30, 0, 0, 1, 1)
553
        self.label_34 = QtWidgets.QLabel(self.groupBox_11)
554
        self.label_34.setObjectName("label_34")
555
        self.gridLayout_31.addWidget(self.label_34, 1, 0, 1, 1)
556
        self.label_31 = QtWidgets.QLabel(self.groupBox_11)
557
        self.label_31.setObjectName("label_31")
558
        self.gridLayout_31.addWidget(self.label_31, 2, 0, 1, 1)
559
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
560
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
613 561
        self.radioButtonLoadXmlYes = QtWidgets.QRadioButton(self.groupBox_11)
614 562
        self.radioButtonLoadXmlYes.setAutoExclusive(True)
615 563
        self.radioButtonLoadXmlYes.setObjectName("radioButtonLoadXmlYes")
616 564
        self.buttonGroup = QtWidgets.QButtonGroup(ConfigurationDialog)
617 565
        self.buttonGroup.setObjectName("buttonGroup")
618 566
        self.buttonGroup.addButton(self.radioButtonLoadXmlYes)
619
        self.horizontalLayout_7.addWidget(self.radioButtonLoadXmlYes)
567
        self.horizontalLayout_3.addWidget(self.radioButtonLoadXmlYes)
620 568
        self.radioButtonLoadXmlNo = QtWidgets.QRadioButton(self.groupBox_11)
621 569
        self.radioButtonLoadXmlNo.setAutoExclusive(True)
622 570
        self.radioButtonLoadXmlNo.setObjectName("radioButtonLoadXmlNo")
623 571
        self.buttonGroup.addButton(self.radioButtonLoadXmlNo)
624
        self.horizontalLayout_7.addWidget(self.radioButtonLoadXmlNo)
625
        self.verticalLayout_4.addLayout(self.horizontalLayout_7)
626
        self.horizontalLayout_24 = QtWidgets.QHBoxLayout()
627
        self.horizontalLayout_24.setObjectName("horizontalLayout_24")
628
        self.label_34 = QtWidgets.QLabel(self.groupBox_11)
629
        self.label_34.setObjectName("label_34")
630
        self.horizontalLayout_24.addWidget(self.label_34)
572
        self.horizontalLayout_3.addWidget(self.radioButtonLoadXmlNo)
573
        self.gridLayout_31.addLayout(self.horizontalLayout_3, 0, 1, 1, 1)
574
        spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
575
        self.gridLayout_31.addItem(spacerItem6, 0, 2, 1, 1)
576
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
577
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
631 578
        self.radioButtonSaveUnknownYes = QtWidgets.QRadioButton(self.groupBox_11)
632 579
        self.radioButtonSaveUnknownYes.setAutoExclusive(True)
633 580
        self.radioButtonSaveUnknownYes.setObjectName("radioButtonSaveUnknownYes")
634 581
        self.buttonGroup_2 = QtWidgets.QButtonGroup(ConfigurationDialog)
635 582
        self.buttonGroup_2.setObjectName("buttonGroup_2")
636 583
        self.buttonGroup_2.addButton(self.radioButtonSaveUnknownYes)
637
        self.horizontalLayout_24.addWidget(self.radioButtonSaveUnknownYes)
584
        self.horizontalLayout_4.addWidget(self.radioButtonSaveUnknownYes)
638 585
        self.radioButtonSaveUnknownNo = QtWidgets.QRadioButton(self.groupBox_11)
639 586
        self.radioButtonSaveUnknownNo.setAutoExclusive(True)
640 587
        self.radioButtonSaveUnknownNo.setObjectName("radioButtonSaveUnknownNo")
641 588
        self.buttonGroup_2.addButton(self.radioButtonSaveUnknownNo)
642
        self.horizontalLayout_24.addWidget(self.radioButtonSaveUnknownNo)
643
        self.verticalLayout_4.addLayout(self.horizontalLayout_24)
644
        self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
645
        self.horizontalLayout_9.setObjectName("horizontalLayout_9")
646
        self.label_31 = QtWidgets.QLabel(self.groupBox_11)
647
        self.label_31.setObjectName("label_31")
648
        self.horizontalLayout_9.addWidget(self.label_31)
649
        spacerItem7 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
650
        self.horizontalLayout_9.addItem(spacerItem7)
589
        self.horizontalLayout_4.addWidget(self.radioButtonSaveUnknownNo)
590
        self.gridLayout_31.addLayout(self.horizontalLayout_4, 1, 1, 1, 1)
651 591
        self.pushButtonClearAccessInfo = QtWidgets.QPushButton(self.groupBox_11)
652 592
        self.pushButtonClearAccessInfo.setObjectName("pushButtonClearAccessInfo")
653
        self.horizontalLayout_9.addWidget(self.pushButtonClearAccessInfo)
654
        self.verticalLayout_4.addLayout(self.horizontalLayout_9)
655
        self.gridLayout_23.addLayout(self.verticalLayout_4, 0, 0, 1, 1)
593
        self.gridLayout_31.addWidget(self.pushButtonClearAccessInfo, 2, 1, 1, 1)
594
        self.gridLayout_23.addLayout(self.gridLayout_31, 0, 0, 1, 1)
656 595
        self.gridLayout_21.addWidget(self.groupBox_11, 0, 0, 1, 1)
657 596
        self.gridLayout_22.addLayout(self.gridLayout_21, 0, 0, 1, 1)
658
        spacerItem8 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
659
        self.gridLayout_22.addItem(spacerItem8, 2, 0, 1, 1)
660 597
        self.tabWidget.addTab(self.tabETC, "")
661 598
        self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
662 599
        self.buttonBox = QtWidgets.QDialogButtonBox(ConfigurationDialog)
......
670 607
        self.buttonBox.accepted.connect(ConfigurationDialog.accept)
671 608
        self.buttonBox.rejected.connect(ConfigurationDialog.reject)
672 609
        QtCore.QMetaObject.connectSlotsByName(ConfigurationDialog)
673
        ConfigurationDialog.setTabOrder(self.pushButtonAddProperty, self.lineEdit_2)
674 610
        ConfigurationDialog.setTabOrder(self.lineEdit_2, self.tableWidgetLineTypes)
675
        ConfigurationDialog.setTabOrder(self.tableWidgetLineTypes, self.fontComboBox)
676
        ConfigurationDialog.setTabOrder(self.fontComboBox, self.radioButtonAutoSize)
677
        ConfigurationDialog.setTabOrder(self.radioButtonAutoSize, self.radioButtonFixedSize)
678
        ConfigurationDialog.setTabOrder(self.radioButtonFixedSize, self.spinBoxFontSize)
679
        ConfigurationDialog.setTabOrder(self.spinBoxFontSize, self.radioButtonRandom)
680
        ConfigurationDialog.setTabOrder(self.radioButtonRandom, self.radioButtonProperty)
681
        ConfigurationDialog.setTabOrder(self.radioButtonProperty, self.comboBoxColorOption)
682
        ConfigurationDialog.setTabOrder(self.comboBoxColorOption, self.tableWidgetColorProperty)
683
        ConfigurationDialog.setTabOrder(self.tableWidgetColorProperty, self.tabWidget)
611
        ConfigurationDialog.setTabOrder(self.tableWidgetLineTypes, self.tabWidget)
684 612

  
685 613
    def retranslateUi(self, ConfigurationDialog):
686 614
        _translate = QtCore.QCoreApplication.translate
687 615
        ConfigurationDialog.setWindowTitle(_translate("ConfigurationDialog", "Configuration"))
688 616
        self.groupBoxFilter.setTitle(_translate("ConfigurationDialog", "Filter"))
689 617
        self.label_10.setText(_translate("ConfigurationDialog", "Minimum Detection Size : "))
690
        self.label_33.setText(_translate("ConfigurationDialog", "Unrecognition Ignore Step : "))
691 618
        self.label_29.setText(_translate("ConfigurationDialog", "Drawing Thickness Reinforcement Step : "))
619
        self.label_33.setText(_translate("ConfigurationDialog", "Unrecognition Ignore Step : "))
692 620
        self.label_32.setText(_translate("ConfigurationDialog", "Drawing Flattening Step : "))
693 621
        self.groupBoxText.setTitle(_translate("ConfigurationDialog", "Text Detection"))
622
        self.label_18.setText(_translate("ConfigurationDialog", "Maximum Text Size : "))
623
        self.label_17.setText(_translate("ConfigurationDialog", "Minimum Text Size : "))
624
        self.label_21.setText(_translate("ConfigurationDialog", "Erosion Size : "))
694 625
        self.label_19.setText(_translate("ConfigurationDialog", "OCR Source : "))
695 626
        self.label_7.setText(_translate("ConfigurationDialog", "Detected string : "))
696
        self.label_37.setText(_translate("ConfigurationDialog", "Allowed Single Text : "))
697 627
        self.label_20.setText(_translate("ConfigurationDialog", "Expansion Size : "))
698
        self.label_21.setText(_translate("ConfigurationDialog", "Erosion Size : "))
699
        self.label_17.setText(_translate("ConfigurationDialog", "Minimum Text Size : "))
700
        self.label_18.setText(_translate("ConfigurationDialog", "Maximum Text Size : "))
628
        self.label_37.setText(_translate("ConfigurationDialog", "Allowed Single Text : "))
701 629
        self.label_22.setText(_translate("ConfigurationDialog", "Merge Size : "))
702 630
        self.groupBoxAttribute.setTitle(_translate("ConfigurationDialog", "Attribute"))
703 631
        self.label_6.setText(_translate("ConfigurationDialog", "Size Delimiter : "))
704
        self.label_15.setText(_translate("ConfigurationDialog", "Attribute Detection Range(Ratio) : "))
705 632
        self.label_24.setText(_translate("ConfigurationDialog", "Line Flow Mark Position(Percent) : "))
633
        self.label_15.setText(_translate("ConfigurationDialog", "Attribute Detection Range(Ratio) : "))
706 634
        self.label_26.setText(_translate("ConfigurationDialog", "Line Flow Mark Minimum Line Length : "))
707 635
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.Recognition), _translate("ConfigurationDialog", "Recognition"))
708 636
        self.groupBoxLineNo.setTitle(_translate("ConfigurationDialog", "Line No"))
709
        self.pushButtonLineNoAttribute.setText(_translate("ConfigurationDialog", "Line No Attribute"))
710 637
        self.pushButtonAddProperty.setText(_translate("ConfigurationDialog", "Add"))
638
        self.pushButtonLineNoAttribute.setText(_translate("ConfigurationDialog", "Line No Attribute"))
711 639
        self.pushButtonDeleteProperty.setText(_translate("ConfigurationDialog", "Delete"))
712 640
        self.groupBox.setTitle(_translate("ConfigurationDialog", "Line Detection"))
713 641
        self.label_4.setText(_translate("ConfigurationDialog", "Ignore Small Object Size : "))
......
742 670
        self.label_2.setText(_translate("ConfigurationDialog", "Symbol Opacity : "))
743 671
        self.groupBox_5.setTitle(_translate("ConfigurationDialog", "Text Style"))
744 672
        self.labelFontSize.setText(_translate("ConfigurationDialog", "Font Size : "))
673
        self.labelFontName.setText(_translate("ConfigurationDialog", "Font Name : "))
745 674
        self.radioButtonAutoSize.setText(_translate("ConfigurationDialog", "Auto"))
746 675
        self.radioButtonFixedSize.setText(_translate("ConfigurationDialog", "Fixed"))
747
        self.labelFontName.setText(_translate("ConfigurationDialog", "Font Name : "))
748 676
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabDisplayOption), _translate("ConfigurationDialog", "Style"))
749 677
        self.groupBox_7.setTitle(_translate("ConfigurationDialog", "Line No Color"))
750
        self.label_25.setText(_translate("ConfigurationDialog", "Color Representation"))
751 678
        self.radioButtonRandom.setText(_translate("ConfigurationDialog", "Random"))
752 679
        self.radioButtonProperty.setText(_translate("ConfigurationDialog", "Property"))
680
        self.label_25.setText(_translate("ConfigurationDialog", "Color Representation"))
753 681
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabLineColor), _translate("ConfigurationDialog", "Line No Color"))
754 682
        self.groupBox_12.setTitle(_translate("ConfigurationDialog", "Visual"))
755 683
        self.label_36.setText(_translate("ConfigurationDialog", "Background Text Transparency"))
......
757 685
        self.radioButtonBackTextNo.setText(_translate("ConfigurationDialog", "No"))
758 686
        self.groupBox_11.setTitle(_translate("ConfigurationDialog", "Program Data"))
759 687
        self.label_30.setText(_translate("ConfigurationDialog", "Load Data From XML First"))
688
        self.label_34.setText(_translate("ConfigurationDialog", "Save Unknown Item to XML Only"))
689
        self.label_31.setText(_translate("ConfigurationDialog", "Clear Drawing Access Information"))
760 690
        self.radioButtonLoadXmlYes.setText(_translate("ConfigurationDialog", "Yes"))
761 691
        self.radioButtonLoadXmlNo.setText(_translate("ConfigurationDialog", "No"))
762
        self.label_34.setText(_translate("ConfigurationDialog", "Save Unknown Item to XML Only"))
763 692
        self.radioButtonSaveUnknownYes.setText(_translate("ConfigurationDialog", "Yes"))
764 693
        self.radioButtonSaveUnknownNo.setText(_translate("ConfigurationDialog", "No"))
765
        self.label_31.setText(_translate("ConfigurationDialog", "Clear Drawing Access Information"))
766 694
        self.pushButtonClearAccessInfo.setText(_translate("ConfigurationDialog", "Clear"))
767 695
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabETC), _translate("ConfigurationDialog", "etc"))
768

  
769 696
import MainWindow_rc
770

  
771
if __name__ == "__main__":
772
    import sys
773
    app = QtWidgets.QApplication(sys.argv)
774
    ConfigurationDialog = QtWidgets.QDialog()
775
    ui = Ui_ConfigurationDialog()
776
    ui.setupUi(ConfigurationDialog)
777
    ConfigurationDialog.show()
778
    sys.exit(app.exec_())
779

  
DTI_PID/DTI_PID/MainWindow.py
68 68
import uuid
69 69

  
70 70

  
71
class QDisplayWidget(QWidget):
72
    def __init__(self):
73
        from PyQt5 import QtWidgets, uic
74

  
75
        QWidget.__init__(self)
76
        uic.loadUi(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'UI', 'DisplayWidget.ui'), self)
77

  
78

  
71 79
class MainWindow(QMainWindow, MainWindow_UI.Ui_MainWindow, SingletonInstance):
72 80
    """ This is MainWindow class """
73 81
    addMessage = pyqtSignal(Enum, str)
......
133 141
        else:
134 142
            at = self.lineComboBox.findText('Secondary')
135 143
            self.lineComboBox.setCurrentIndex(at)
136
        # self.lineComboBox.currentIndexChanged.connect(self.onLineTypeChanged)
137 144

  
138 145
        self.toolBar.insertWidget(self.actionOCR, self.lineComboBox)
139 146
        self.toolBar.insertSeparator(self.actionOCR)
140 147

  
148
        self.packageComboBox = QComboBox(self.toolBar)
149
        self.packageComboBox.addItems(['Vendor Package', 'Equipment Package'])
150
        self.toolBar.insertWidget(self.actionValidate, self.packageComboBox)
151

  
141 152
        self.graphicsView = QtImageViewer.QtImageViewer(self)
142 153
        self.graphicsView.setParent(self.centralwidget)
143 154
        self.graphicsView.useDefaultCommand()  # USE DEFAULT COMMAND
144 155
        self.graphicsView.setMouseTracking(True)
145 156
        self.graphicsView.viewport().installEventFilter(self)
146 157

  
147
        self._display_widget = QWidget()
148
        layout = QVBoxLayout()
149
        self._by_line_no = QRadioButton()
150
        self._by_line_no.setChecked(True)
151
        self._by_line_no.setText('By Group')
152
        self._by_line_no.toggled.connect(self.display_colors)
153
        layout.addWidget(self._by_line_no)
154
        self._by_line_type = QRadioButton()
155
        self._by_line_type.setText('By Type')
156
        layout.addWidget(self._by_line_type)
157
        self._display_widget.setLayout(layout)
158
        self.EditToolbar.insertWidget(None, self._display_widget)
159
        self._by_line_no.setChecked(
160
            True) if DisplayColors.instance().option == DisplayOptions.DisplayByLineNo else \
161
            self._by_line_type.setChecked(True)
158
        self._display_widget = QDisplayWidget()
159
        self._display_widget.radioButtonByGroup.toggled.connect(self.display_colors)
160
        self._display_widget.radioButtonByGroup.toggled.connect(self.display_colors)
161
        self.EditToolbar.addWidget(self._display_widget)
162
        self._display_widget.radioButtonByGroup.setChecked(True) \
163
            if DisplayColors.instance().option == DisplayOptions.DisplayByLineNo else \
164
            self._display_widget.radioButtonByType.setChecked(True)
162 165

  
163 166
        self.verticalLayout.addWidget(self.graphicsView)
164 167

  
......
266 269
            self.actionOCR_Training.triggered.connect(self.oCRTrainingClicked)
267 270
            self.actionSymbol_Training.triggered.connect(self.symbolTrainingClicked)
268 271
        else:
269
            #self.actionOCR_Training.setVisible(False)
270
            #self.actionSymbol_Training.setVisible(False)
271
            self.menu_2.setEnabled(False) # Data
272
            self.menu_4.setEnabled(False) # Tool
272
            # self.actionOCR_Training.setVisible(False)
273
            # self.actionSymbol_Training.setVisible(False)
274
            self.menu_2.setEnabled(False)  # Data
275
            self.menu_4.setEnabled(False)  # Tool
273 276
            self.actionConfiguration.setVisible(False)
274 277
            self.pushButtonBatchRecognition.setVisible(False)
275 278
            self.pushButtonCreateSymbol.setVisible(False)
......
487 490
            self.treeWidgetDrawingList.root.setCheckState(0, Qt.Unchecked)
488 491
            files = app_doc_data.getDrawingFileList()
489 492

  
490
            #self.progress_bar.setMaximum(len(files))
493
            # self.progress_bar.setMaximum(len(files))
491 494
            count = 0
492
            #self.progress_bar.setValue(count)
495
            # self.progress_bar.setValue(count)
493 496
            for file in files:
494 497
                x = [drawing for drawing in drawings if drawing.name == file]
495 498
                if not x or not x[0].UID:
......
505 508
                item.setData(Qt.UserRole, 0, drawing)
506 509

  
507 510
                count += 1
508
                #self.progress_bar.setValue(count)
509
                #QApplication.processEvents()
511
                # self.progress_bar.setValue(count)
512
                # QApplication.processEvents()
510 513

  
511 514
            self.treeWidgetDrawingList.root.setText(0, self.tr('P&ID Drawings') +
512 515
                                                    f"({self.treeWidgetDrawingList.root.childCount()})")
......
648 651
                        type(item) is not QEngineeringUnknownItem]
649 652
            db_items.extend([item for item in items if type(item) is QEngineeringLineNoTextItem])
650 653
            db_items.extend([line for line in appDocData.tracerLineNos if type(line) is QEngineeringTrimLineNoTextItem])
651
            #db_items.extend(titleBlockItems)
654
            # db_items.extend(titleBlockItems)
652 655
            configs = appDocData.getConfigs('Data Load', 'Xml First')
653 656
            if configs and int(configs[0].value) is 1:
654 657
                db_items.extend([item for item in items if type(item) is QEngineeringUnknownItem])
......
824 827
            self.graphicsView.command = cmd
825 828

  
826 829
    def onVendor(self, action):
827
        '''
828
            @brief      make vendor package area
829
            @author     euisung
830
            @date       2019.04.29
831
        '''
830
        """make vendor package area"""
831

  
832 832
        if not self.graphicsView.hasImage():
833 833
            self.actionVendor.setChecked(False)
834 834
            self.showImageSelectionMessageBox()
......
843 843
        self.graphicsView.command = self.actionVendor.tag
844 844

  
845 845
    def onVendorCreated(self):
846
        '''
847
            @brief      add created vendor polygon area to scene
848
            @author     euisung
849
            @date       2019.04.29
850
        '''
846
        """add created vendor polygon area to scene"""
847

  
851 848
        try:
852 849
            count = len(self.actionVendor.tag._polyline._vertices)
853 850
            if count > 2:
854
                qPoints = []
855 851
                points = []
856 852
                for point in self.actionVendor.tag._polyline._vertices:
857
                    points.append([round(point[0]), round(point[1])])
858
                    qPoints.append(QPoint(round(point[0]), round(point[1])))
859
                vendorArea = QPolygonF(qPoints)
860
                vendorItem = QEngineeringVendorItem(vendorArea, points)
861
                vendorItem.area = 'Drawing'
862
                vendorItem.transfer.onRemoved.connect(self.itemRemoved)
863
                self.graphicsView.scene.addItem(vendorItem)
853
                    points.append(QPoint(round(point[0]), round(point[1])))
854
                polygon = QPolygonF(points)
855
                item = QEngineeringVendorItem(polygon, type=self.packageComboBox.currentText())
856
                item.area = 'Drawing'
857
                item.transfer.onRemoved.connect(self.itemRemoved)
858
                self.graphicsView.scene.addItem(item)
864 859
        finally:
865 860
            self.graphicsView.scene.removeItem(self.actionVendor.tag._polyline)
866 861
            self.actionVendor.tag.reset()
......
968 963

  
969 964
    def onInitializeScene(self, action):
970 965
        if not self.graphicsView.hasImage():
971
            #self.actionEquipment.setChecked(False)
966
            # self.actionEquipment.setChecked(False)
972 967
            self.showImageSelectionMessageBox()
973 968

  
974 969
            return
......
1303 1298
        from DisplayColors import DisplayColors
1304 1299
        from DisplayColors import DisplayOptions
1305 1300

  
1306
        DisplayColors.instance().option = DisplayOptions.DisplayByLineNo if value == True else DisplayOptions.DisplayByLineType
1301
        DisplayColors.instance().option = DisplayOptions.DisplayByLineNo if value is True else DisplayOptions.DisplayByLineType
1307 1302
        if hasattr(self, 'graphicsView'):
1308 1303
            self.graphicsView.scene.update(self.graphicsView.sceneRect())
1309 1304
            DisplayColors.instance().save_data()
......
1326 1321
        try:
1327 1322
            if not self.actionSave.isEnabled():
1328 1323
                return
1329
                
1324

  
1330 1325
            self.save_drawing_if_necessary()
1331 1326
            if hasattr(self, '_save_work_cmd'):
1332 1327
                self._save_work_cmd.wait()
......
1623 1618

  
1624 1619
                pt = items[-1].endPoint()
1625 1620
                selected = [item for item in self.graphicsView.scene.items(QPointF(pt[0], pt[1])) if
1626
                            (type(item) is QEngineeringConnectorItem and item.parent is not items[-1]) or type(item) is QEngineeringLineItem]
1621
                            (type(item) is QEngineeringConnectorItem and item.parent is not items[-1]) or type(
1622
                                item) is QEngineeringLineItem]
1627 1623
                if selected and selected[0] is not items[-1]:
1628 1624
                    if type(selected[0]) is QEngineeringConnectorItem:
1629 1625
                        items[-1].connect_if_possible(selected[0].parent, 5)
......
1968 1964
                            run.explode()
1969 1965
                            if type(match) is QEngineeringTrimLineNoTextItem and not match.runs:
1970 1966
                                app_doc_data.tracerLineNos.pop(app_doc_data.tracerLineNos.index(match))
1971
                        #break
1967
                        # break
1972 1968

  
1973 1969
            matches = [_item for _item in self.graphicsView.scene.items() if hasattr(_item, 'owner')]
1974 1970
            for match in matches:
......
2024 2020

  
2025 2021
        try:
2026 2022
            self.dlgConnectAttr = QConnectAttrDialog(self, self.graphicsView)
2027
            self.dlgConnectAttr.setWindowFlags(self.windowFlags() & ~Qt.WindowCloseButtonHint & ~Qt.WindowContextHelpButtonHint)
2023
            self.dlgConnectAttr.setWindowFlags(
2024
                self.windowFlags() & ~Qt.WindowCloseButtonHint & ~Qt.WindowContextHelpButtonHint)
2028 2025
            self.dlgConnectAttr.exec_()
2029 2026
            if self.dlgConnectAttr.isRunned:
2030 2027
                self.itemTreeWidget.InitLineNoItems()
DTI_PID/DTI_PID/Shapes/EngineeringVendorItem.py
26 26

  
27 27
    DELIMITER = '/'
28 28
    ZVALUE = 100
29
    EQUIPMENT_PACKAGE_COLOR = '#78281F'
29 30

  
30
    def __init__(self, polygon, points, parent=None, uid=None):
31
    def __init__(self, polygon, type='Vendor Package', parent=None, uid=None):
31 32
        import uuid
32 33
        from SymbolAttr import SymbolProp
33 34

  
......
37 38
        self.uid = str(uuid.uuid4()) if uid is None else uuid.UUID(uid)
38 39

  
39 40
        self.isEntered = False
40
        self.setColor(self._color)
41
        self.setColor(self._color if type == 'Vendor Package' else QEngineeringVendorItem.EQUIPMENT_PACKAGE_COLOR)
41 42
        self._savedColor = None
42 43

  
43 44
        self._properties = {SymbolProp(None, 'Name', 'Text Item', Expression='self.EvaluatedName'): None}
45
        self._type = type
44 46

  
45 47
        self.setFlags(QGraphicsItem.ItemIsSelectable | QGraphicsItem.ItemIsFocusable)
46 48
        self.setToolTip(str(self.uid))
......
48 50
        self.transfer = Transfer()
49 51

  
50 52
        index = 1
51
        for point in points:
53
        for point in polygon:
52 54
            connector = QEngineeringConnectorItem(parent=self, index=index)
53
            connector.setPos((point[0], point[1]))
55
            connector.setPos((point.x(), point.y()))
54 56
            connector.setParentItem(self)
55
            connector.connectPoint = (point[0], point[1])
56
            connector.sceneConnectPoint = (point[0], point[1])
57
            connector.connectPoint = (point.x(), point.y())
58
            connector.sceneConnectPoint = (point.x(), point.y())
57 59
            connector.setZValue(QEngineeringVendorItem.ZVALUE)
58 60
            connector.setFlags(QGraphicsItem.ItemIsSelectable | QGraphicsItem.ItemIsFocusable)
59 61
            connector.setAcceptTouchEvents(True)
......
62 64
            index += 1
63 65

  
64 66
    @property
67
    def type(self):
68
        """return type"""
69
        return self._type
70

  
71
    @type.setter
72
    def type(self, value):
73
        """set type with given value"""
74
        self._type = value
75

  
76
    @property
65 77
    def NameText(self):
66 78
        from EngineeringTextItem import QEngineeringTextItem
67 79

  
......
138 150

  
139 151
                self.connectors.remove(conn)
140 152
                conn.scene().removeItem(conn)
153
                del conn
141 154
                break
142 155

  
143 156
        if self.connectors:
......
162 175
            connectors = app_doc_data.get_component_connectors(str(uid))
163 176

  
164 177
            points = []
165
            qPoints = []
166 178
            for connector in connectors:
167
                points.append([float(connector['X']), float(connector['Y'])])
168
                qPoints.append(QPoint(float(connector['X']), float(connector['Y'])))
169
            vendorArea = QPolygonF(qPoints)
170
            vendorItem = QEngineeringVendorItem(vendorArea, points, uid=uid)
171
            vendorItem.area = component['Area']
179
                points.append(QPoint(float(connector['X']), float(connector['Y'])))
180
            polygon = QPolygonF(points)
181
            item = QEngineeringVendorItem(polygon, type=component['Value'], uid=uid)
182
            item.area = component['Area']
172 183

  
173
            for key in vendorItem._properties.keys():
174
                vendorItem._properties[key] = key.parse_value(component[key.Attribute])
184
            for key in item._properties.keys():
185
                item._properties[key] = key.parse_value(component[key.Attribute])
175 186

  
176
            vendorItem.setToolTip(str(vendorItem.uid))
187
            item.setToolTip(str(item.uid))
177 188

  
178 189
            associations = app_doc_data.get_component_associations(str(uid))
179 190
            if associations:
180 191
                for assoc in associations:
181 192
                    _type = assoc['Type']
182
                    if not _type in vendorItem._associations:
183
                        vendorItem._associations[_type] = []
184
                    vendorItem._associations[_type].append(assoc['Association'])
193
                    if not _type in item._associations:
194
                        item._associations[_type] = []
195
                    item._associations[_type].append(assoc['Association'])
185 196
        except Exception as ex:
186 197
            from App import App
187 198
            from AppDocData import MessageType
......
190 201
                                                          sys.exc_info()[-1].tb_lineno)
191 202
            App.mainWnd().addMessage.emit(MessageType.Error, message)
192 203

  
193
        return vendorItem
204
        return item
194 205

  
195 206
    def toSql_return_separately(self):
196 207
        """ convert vendor package data to sql query """
......
199 210
        resLater = []
200 211

  
201 212
        app_doc_data = AppDocData.instance()
202
        cols = ['UID', 'Drawings_UID', 'Symbol_UID', 'X', 'Y', 'Width', 'Height', 'Rotation', 'Area', 'Owner',
213
        cols = ['UID', 'Drawings_UID', 'Symbol_UID', 'X', 'Y', 'Width', 'Height', 'Rotation', 'Area', 'Value', 'Owner',
203 214
                'SpecialItemTypes_UID']
204 215
        values = ['?', '?', "(select UID from Symbol where Name='VendorPackage' and SymbolType_UID=-1)", '?', '?', '?',
205
                  '?', '?', '?', '?', '?']
216
                  '?', '?', '?', '?', '?', '?']
206 217

  
207 218
        rect = self.sceneBoundingRect()
208 219
        param = [
209 220
            (str(self.uid), str(app_doc_data.activeDrawing.UID), rect.x(), rect.y(), rect.width(), rect.height(), 0,
210
             self.area, str(self.owner) if self.owner else None,
221
             self.area, self.type, str(self.owner) if self.owner else None,
211 222
             str(self.special_item_type) if self.special_item_type else None)]
212 223
        sql = 'insert into Components({}) values({})'.format(','.join(cols), ','.join(values))
213 224
        res.append((sql, tuple(param)))
......
232 243
        import uuid
233 244

  
234 245
        try:
246
            _type = node.attrib['Type'] if 'Type' in node.attrib else 'Vendor Package'
247

  
235 248
            uidNode = node.find('UID')
236 249
            uid = uidNode.text if uidNode is not None else uuid.uuid4()  # generate UUID
237 250
            pointNode = node.find('POINT')
238 251
            strPoints = pointNode.text
239 252
            points = []
240
            qPoints = []
241 253
            for strPoint in strPoints.split(QEngineeringVendorItem.DELIMITER):
242 254
                point = strPoint.split(',')
243
                points.append([float(point[0]), float(point[1])])
244
                qPoints.append(QPoint(float(point[0]), float(point[1])))
245
            vendorArea = QPolygonF(qPoints)
246
            vendorItem = QEngineeringVendorItem(vendorArea, points, uid=uid)
247
            vendorItem.area = node.find('AREA').text
255
                points.append(QPoint(float(point[0]), float(point[1])))
256
            polygon = QPolygonF(points)
257
            item = QEngineeringVendorItem(polygon, type=_type, uid=uid)
258
            item.area = node.find('AREA').text
248 259

  
249 260
            for prop_node in node.iter('PROPERTY'):
250
                matches = [prop for prop in vendorItem._properties.keys() if
261
                matches = [prop for prop in item._properties.keys() if
251 262
                           prop.Attribute == prop_node.attrib['Attribute']]
252 263
                if matches:
253
                    vendorItem._properties[matches[0]] = matches[0].parse_value(
264
                    item._properties[matches[0]] = matches[0].parse_value(
254 265
                        prop_node.text) if prop_node.text else ''
255
            vendorItem.setToolTip(str(vendorItem.uid))
266
            item.setToolTip(str(item.uid))
256 267

  
257 268
            attributeValue = node.find('ASSOCIATIONS')
258 269
            if attributeValue is not None:
259 270
                for assoc in attributeValue.iter('ASSOCIATION'):
260 271
                    _type = assoc.attrib['TYPE']
261
                    if not _type in vendorItem._associations:
262
                        vendorItem._associations[_type] = []
263
                    vendorItem._associations[_type].append(uuid.UUID(assoc.text))
272
                    if not _type in item._associations:
273
                        item._associations[_type] = []
274
                    item._associations[_type].append(uuid.UUID(assoc.text))
264 275
        except Exception as ex:
265 276
            from App import App
266 277
            from AppDocData import MessageType
......
269 280
                                                          sys.exc_info()[-1].tb_lineno)
270 281
            App.mainWnd().addMessage.emit(MessageType.Error, message)
271 282

  
272
        return vendorItem
273

  
274
    '''
275
    def associations(self):
276
        """ return associated instance """
277
        import uuid
278

  
279
        res = []
280
        for key in self._associations.keys():
281
            for assoc in self._associations[key]:
282
                # find owner with uid
283
                if assoc and type(assoc) is uuid.UUID:
284
                    matches = [x for x in self.scene().items() if hasattr(x, 'uid') and str(x.uid) == str(assoc)]
285
                    if matches: res.append(matches[0]) # TODO: need to update association with instance
286
                # up to here
287
                elif assoc:
288
                    res.append(assoc)
289

  
290
        return res
291
    '''
283
        return item
292 284

  
293 285
    def toXml(self):
294 286
        from xml.etree.ElementTree import Element, SubElement, dump, ElementTree
295 287

  
296 288
        try:
297 289
            node = Element('VENDOR')
290
            node.attrib['Type'] = self.type
298 291
            uidNode = Element('UID')
299 292
            uidNode.text = str(self.uid)
300 293
            node.append(uidNode)
DTI_PID/DTI_PID/UI/Configuration.ui
6 6
   <rect>
7 7
    <x>0</x>
8 8
    <y>0</y>
9
    <width>704</width>
10
    <height>871</height>
9
    <width>617</width>
10
    <height>577</height>
11 11
   </rect>
12 12
  </property>
13 13
  <property name="font">
......
43 43
         </property>
44 44
         <layout class="QGridLayout" name="gridLayout_8">
45 45
          <item row="0" column="0">
46
           <layout class="QVBoxLayout" name="verticalLayout_9">
47
            <item>
48
             <layout class="QHBoxLayout" name="horizontalLayout_16">
49
              <item alignment="Qt::AlignVCenter">
50
               <widget class="QLabel" name="label_10">
51
                <property name="maximumSize">
52
                 <size>
53
                  <width>230</width>
54
                  <height>16777215</height>
55
                 </size>
56
                </property>
57
                <property name="text">
58
                 <string>Minimum Detection Size : </string>
59
                </property>
60
               </widget>
61
              </item>
62
              <item>
63
               <widget class="QSpinBox" name="spinBoxMinimumSize"/>
64
              </item>
65
             </layout>
46
           <layout class="QGridLayout" name="gridLayout_27">
47
            <item row="0" column="0">
48
             <widget class="QLabel" name="label_10">
49
              <property name="maximumSize">
50
               <size>
51
                <width>230</width>
52
                <height>16777215</height>
53
               </size>
54
              </property>
55
              <property name="text">
56
               <string>Minimum Detection Size : </string>
57
              </property>
58
             </widget>
66 59
            </item>
67
            <item>
68
             <layout class="QHBoxLayout" name="horizontalLayout_20">
69
              <item>
70
               <widget class="QLabel" name="label_33">
71
                <property name="minimumSize">
72
                 <size>
73
                  <width>230</width>
74
                  <height>0</height>
75
                 </size>
76
                </property>
77
                <property name="maximumSize">
78
                 <size>
79
                  <width>230</width>
80
                  <height>16777215</height>
81
                 </size>
82
                </property>
83
                <property name="text">
84
                 <string>Unrecognition Ignore Step : </string>
85
                </property>
86
               </widget>
87
              </item>
88
              <item>
89
               <widget class="QSpinBox" name="spinBoxUnrecognitionIgnoreStep">
90
                <property name="maximum">
91
                 <number>10</number>
92
                </property>
93
               </widget>
94
              </item>
95
             </layout>
60
            <item row="0" column="1">
61
             <widget class="QSpinBox" name="spinBoxMinimumSize"/>
96 62
            </item>
97
            <item>
98
             <layout class="QHBoxLayout" name="horizontalLayout_6">
99
              <item>
100
               <widget class="QLabel" name="label_29">
101
                <property name="maximumSize">
102
                 <size>
103
                  <width>230</width>
104
                  <height>16777215</height>
105
                 </size>
106
                </property>
107
                <property name="text">
108
                 <string>Drawing Thickness Reinforcement Step : </string>
109
                </property>
110
               </widget>
111
              </item>
112
              <item>
113
               <widget class="QSpinBox" name="spinBoxDilateSize">
114
                <property name="maximum">
115
                 <number>10</number>
116
                </property>
117
               </widget>
118
              </item>
119
             </layout>
63
            <item row="1" column="1">
64
             <widget class="QSpinBox" name="spinBoxUnrecognitionIgnoreStep">
65
              <property name="maximum">
66
               <number>10</number>
67
              </property>
68
             </widget>
120 69
            </item>
121
            <item>
122
             <layout class="QHBoxLayout" name="horizontalLayout_10">
123
              <item>
124
               <widget class="QLabel" name="label_32">
125
                <property name="maximumSize">
126
                 <size>
127
                  <width>230</width>
128
                  <height>16777215</height>
129
                 </size>
130
                </property>
131
                <property name="text">
132
                 <string>Drawing Flattening Step : </string>
133
                </property>
134
               </widget>
135
              </item>
136
              <item>
137
               <widget class="QSpinBox" name="spinBoxFlatSize"/>
138
              </item>
139
             </layout>
70
            <item row="2" column="0">
71
             <widget class="QLabel" name="label_29">
72
              <property name="maximumSize">
73
               <size>
74
                <width>230</width>
75
                <height>16777215</height>
76
               </size>
77
              </property>
78
              <property name="text">
79
               <string>Drawing Thickness Reinforcement Step : </string>
80
              </property>
81
             </widget>
82
            </item>
83
            <item row="2" column="1">
84
             <widget class="QSpinBox" name="spinBoxDilateSize">
85
              <property name="maximum">
86
               <number>10</number>
87
              </property>
88
             </widget>
89
            </item>
90
            <item row="1" column="0">
91
             <widget class="QLabel" name="label_33">
92
              <property name="minimumSize">
93
               <size>
94
                <width>230</width>
95
                <height>0</height>
96
               </size>
97
              </property>
98
              <property name="maximumSize">
99
               <size>
100
                <width>230</width>
101
                <height>16777215</height>
102
               </size>
103
              </property>
104
              <property name="text">
105
               <string>Unrecognition Ignore Step : </string>
106
              </property>
107
             </widget>
108
            </item>
109
            <item row="3" column="0">
110
             <widget class="QLabel" name="label_32">
111
              <property name="maximumSize">
112
               <size>
113
                <width>230</width>
114
                <height>16777215</height>
115
               </size>
116
              </property>
117
              <property name="text">
118
               <string>Drawing Flattening Step : </string>
119
              </property>
120
             </widget>
121
            </item>
122
            <item row="3" column="1">
123
             <widget class="QSpinBox" name="spinBoxFlatSize"/>
140 124
            </item>
141 125
           </layout>
142 126
          </item>
......
150 134
         </property>
151 135
         <layout class="QGridLayout" name="gridLayout_14">
152 136
          <item row="0" column="0">
153
           <layout class="QVBoxLayout" name="verticalLayout_5">
154
            <item>
155
             <layout class="QHBoxLayout" name="horizontalLayout_14">
156
              <item>
157
               <widget class="QLabel" name="label_19">
158
                <property name="text">
159
                 <string>OCR Source : </string>
160
                </property>
161
               </widget>
162
              </item>
163
              <item>
164
               <widget class="QComboBox" name="comboBoxOCRData">
165
                <property name="minimumSize">
166
                 <size>
167
                  <width>200</width>
168
                  <height>0</height>
169
                 </size>
170
                </property>
171
                <property name="maximumSize">
172
                 <size>
173
                  <width>200</width>
174
                  <height>16777215</height>
175
                 </size>
176
                </property>
177
               </widget>
178
              </item>
179
              <item>
180
               <spacer name="horizontalSpacer">
181
                <property name="orientation">
182
                 <enum>Qt::Horizontal</enum>
183
                </property>
184
                <property name="sizeHint" stdset="0">
185
                 <size>
186
                  <width>40</width>
187
                  <height>20</height>
188
                 </size>
189
                </property>
190
               </spacer>
191
              </item>
192
             </layout>
137
           <layout class="QGridLayout" name="gridLayout_25">
138
            <item row="4" column="3">
139
             <widget class="QSpinBox" name="maxTextSizeSpinBox">
140
              <property name="sizePolicy">
141
               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
142
                <horstretch>0</horstretch>
143
                <verstretch>0</verstretch>
144
               </sizepolicy>
145
              </property>
146
              <property name="value">
147
               <number>60</number>
148
              </property>
149
             </widget>
193 150
            </item>
194
            <item>
195
             <layout class="QHBoxLayout" name="horizontalLayout_11">
196
              <item>
197
               <widget class="QLabel" name="label_7">
198
                <property name="text">
199
                 <string>Detected string : </string>
200
                </property>
201
               </widget>
202
              </item>
203
              <item>
204
               <widget class="QLineEdit" name="lineEditWhiteCharList"/>
205
              </item>
206
             </layout>
151
            <item row="4" column="1">
152
             <widget class="QSpinBox" name="minTextSizeSpinBox">
153
              <property name="sizePolicy">
154
               <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
155
                <horstretch>0</horstretch>
156
                <verstretch>0</verstretch>
157
               </sizepolicy>
158
              </property>
159
              <property name="maximumSize">
160
               <size>
161
                <width>16777215</width>
162
                <height>16777215</height>
163
               </size>
164
              </property>
165
              <property name="value">
166
               <number>30</number>
167
              </property>
168
             </widget>
207 169
            </item>
208
            <item>
209
             <layout class="QHBoxLayout" name="horizontalLayout_26">
210
              <item>
211
               <widget class="QLabel" name="label_37">
212
                <property name="text">
213
                 <string>Allowed Single Text : </string>
214
                </property>
215
               </widget>
216
              </item>
217
              <item>
218
               <widget class="QLineEdit" name="lineEditSingleText"/>
219
              </item>
220
             </layout>
170
            <item row="4" column="2">
171
             <widget class="QLabel" name="label_18">
172
              <property name="text">
173
               <string>Maximum Text Size : </string>
... 이 차이점은 표시할 수 있는 최대 줄수를 초과해서 이 차이점은 잘렸습니다.

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)