개정판 daeca09e
issue #655: before save, add
DTI_PID/DTI_PID/ItemDataExportDialog.py | ||
---|---|---|
29 | 29 |
self.viewTables = [] |
30 | 30 |
|
31 | 31 |
self.delimiter = '!-!' |
32 |
self.initialTables = [] |
|
32 | 33 |
|
33 | 34 |
self.sceneLineData = {} |
34 | 35 |
self.sceneEquipData = {} |
... | ... | |
318 | 319 |
self.settingInstrumentData() |
319 | 320 |
self.settingNoteData() |
320 | 321 |
|
322 |
for table in self.viewTables: |
|
323 |
self.initialTables.append(table.horizontalHeader().saveState()) |
|
321 | 324 |
self.sortListOrder() |
322 | 325 |
except Exception as ex: |
323 | 326 |
print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)) |
... | ... | |
336 | 339 |
try: |
337 | 340 |
docData = AppDocData.instance() |
338 | 341 |
for index in range(len(self.viewTables)): |
342 |
self.viewTables[index].horizontalHeader().restoreState(self.initialTables[index]) |
|
339 | 343 |
self.columnOrder[index] = docData.getConfigs(dbListOrderName[index], str(index))[0].value.split(self.delimiter) |
340 | 344 |
|
341 | 345 |
for reverse in range(len(self.columnOrder[index]) - 1, 0, -1): |
... | ... | |
343 | 347 |
currentCol = [] |
344 | 348 |
for i in range(len(self.columnListAll[index])): |
345 | 349 |
currentCol.append(self.viewTables[index].horizontalHeader().visualIndex(i)) |
346 |
#currentCol.append(self.viewTables[index].horizontalHeaderItem(i).text()) |
|
347 | 350 |
|
348 | 351 |
for columnNum in range(len(self.columnListAll[index])): |
349 | 352 |
if targetCol == self.columnListAll[index][columnNum]: |
350 | 353 |
self.viewTables[index].horizontalHeader().moveSection(currentCol[columnNum], 1) |
351 | 354 |
break |
352 |
|
|
353 |
# hidecolumn 하기 |
|
355 |
for unvisibleCol in range(len(self.columnListAll[index])): |
|
356 |
self.viewTables[index].hideColumn(unvisibleCol) |
|
357 |
visibleCols = [] |
|
358 |
for visibleCol in range(1, len(self.columnOrder[index])): |
|
359 |
visibleCols.append(self.viewTables[index].horizontalHeader().logicalIndex(visibleCol)) |
|
360 |
for visibleCol in visibleCols: |
|
361 |
self.viewTables[index].showColumn(visibleCol) |
|
354 | 362 |
except Exception as ex: |
355 | 363 |
print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno)) |
356 | 364 |
from App import App |
DTI_PID/DTI_PID/ItemDataFormatDialog.py | ||
---|---|---|
28 | 28 |
self.columnOrder = columnOrder |
29 | 29 |
|
30 | 30 |
self.delimiter = '!-!' |
31 |
self.selectedCol = None |
|
31 | 32 |
|
32 | 33 |
self.listWidgets = [] |
33 | 34 |
self.tableWidgets = [] |
... | ... | |
43 | 44 |
self.tableWidgets.append(self.ui.tableWidgetInstrument) |
44 | 45 |
self.tableWidgets.append(self.ui.tableWidgetNote) |
45 | 46 |
|
47 |
self.sections = [] |
|
48 |
self.sections.append(self.lineSectionClicked) |
|
49 |
self.sections.append(self.equipmentSectionClicked) |
|
50 |
self.sections.append(self.valveSectionClicked) |
|
51 |
self.sections.append(self.instrumentSectionClicked) |
|
52 |
self.sections.append(self.noteSectionClicked) |
|
53 |
|
|
46 | 54 |
# attribute list setting |
47 | 55 |
for index in range(len(self.listWidgets)): |
56 |
self.listWidgets[index].itemDoubleClicked.connect(self.listItemDoubleClicked) |
|
48 | 57 |
for header in range(1, len(columnListAll[index])): |
49 | 58 |
item = QListWidgetItem(columnListAll[index][header]) |
50 | 59 |
self.listWidgets[index].addItem(item) |
... | ... | |
58 | 67 |
self.tableWidgets[index].horizontalHeader().setHighlightSections(True) |
59 | 68 |
self.tableWidgets[index].setColumnCount(len(self.columnOrder[index])) |
60 | 69 |
self.tableWidgets[index].setHorizontalHeaderLabels(self.columnOrder[index]) |
61 |
self.tableWidgets[index].horizontalHeader().sectionClicked.connect(self.sectionClicked)
|
|
70 |
self.tableWidgets[index].horizontalHeader().sectionClicked.connect(self.sections[index])
|
|
62 | 71 |
for listIndex in range(len(self.columnOrder[index])): |
63 | 72 |
self.tableWidgets[index].horizontalHeaderItem(listIndex).setSizeHint(QSize(25, 25)) |
64 | 73 |
self.tableWidgets[index].setColumnWidth(listIndex, len(self.columnOrder[index][listIndex]) * 8 + 10) |
... | ... | |
73 | 82 |
for index in range(len(self.tableWidgets)): |
74 | 83 |
headerCount = self.tableWidgets[index].columnCount() |
75 | 84 |
currentCol = [] |
85 |
logicalList = [] |
|
86 |
for logicalCol in range(headerCount): |
|
87 |
logicalList.append(self.tableWidgets[index].horizontalHeaderItem(logicalCol).text()) |
|
76 | 88 |
for i in range(len(self.columnListAll[index])): |
77 | 89 |
currentCol.append(self.tableWidgets[index].horizontalHeader().logicalIndex(i)) |
78 | 90 |
|
79 | 91 |
value = '' |
80 | 92 |
for header in currentCol: |
81 |
value += self.columnOrder[index][header] + self.delimiter |
|
93 |
if header is -1: |
|
94 |
continue |
|
95 |
value += logicalList[header] + self.delimiter |
|
82 | 96 |
value = value[:-len(self.delimiter)] |
83 | 97 |
configs.append(Config(dbListOrderName[index], str(index), value)) |
84 | 98 |
|
85 | 99 |
docData.saveConfigs(configs) |
86 | 100 |
|
101 |
def listItemDoubleClicked(self, item): |
|
102 |
print('dc') |
|
103 |
|
|
104 |
|
|
87 | 105 |
def pushButtonCloseClicked(self): |
88 | 106 |
QDialog.reject(self) |
89 | 107 |
|
90 |
def sectionClicked(self, logicalIndex): |
|
91 |
print(logicalIndex) |
|
108 |
def sectionClicked(self, table, logicalIndex): |
|
109 |
print(table.objectName() + ' : ' + str(logicalIndex)) |
|
110 |
table.setCurrentCell(0, logicalIndex) |
|
111 |
self.selectedCol = [table, logicalIndex] |
|
112 |
|
|
113 |
|
|
114 |
def keyPressEvent(self, event): |
|
115 |
try: |
|
116 |
if event.key() == Qt.Key_Delete and self.selectedCol is not None: |
|
117 |
self.selectedCol[0].removeColumn(self.selectedCol[1]) |
|
118 |
|
|
119 |
QDialog.keyPressEvent(self, event) |
|
120 |
except Exception as ex: |
|
121 |
message = 'error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno) |
|
122 |
self.addMessage.emit(MessageType.Error, message) |
|
123 |
|
|
124 |
def lineSectionClicked(self, logicalIndex): |
|
125 |
self.sectionClicked(self.tableWidgets[0], logicalIndex) |
|
126 |
|
|
127 |
def equipmentSectionClicked(self, logicalIndex): |
|
128 |
self.sectionClicked(self.tableWidgets[1], logicalIndex) |
|
129 |
|
|
130 |
def valveSectionClicked(self, logicalIndex): |
|
131 |
self.sectionClicked(self.tableWidgets[2], logicalIndex) |
|
132 |
|
|
133 |
def instrumentSectionClicked(self, logicalIndex): |
|
134 |
self.sectionClicked(self.tableWidgets[3], logicalIndex) |
|
135 |
|
|
136 |
def noteSectionClicked(self, logicalIndex): |
|
137 |
self.sectionClicked(self.tableWidgets[4], logicalIndex) |
|
138 |
|
DTI_PID/DTI_PID/ItemDataFormat_UI.py | ||
---|---|---|
101 | 101 |
self.horizontalLayout_3.addWidget(self.pushButton_3) |
102 | 102 |
self.verticalLayout_2.addLayout(self.horizontalLayout_3) |
103 | 103 |
self.tableWidgetEquipment = QtWidgets.QTableWidget(self.verticalLayoutWidget_2) |
104 |
self.tableWidgetEquipment.setRowCount(0)
|
|
104 |
self.tableWidgetEquipment.setRowCount(1)
|
|
105 | 105 |
self.tableWidgetEquipment.setObjectName("tableWidgetEquipment") |
106 | 106 |
self.tableWidgetEquipment.setColumnCount(0) |
107 | 107 |
self.tableWidgetEquipment.verticalHeader().setVisible(False) |
... | ... | |
137 | 137 |
self.horizontalLayout_4.addWidget(self.pushButton_5) |
138 | 138 |
self.verticalLayout_3.addLayout(self.horizontalLayout_4) |
139 | 139 |
self.tableWidgetValve = QtWidgets.QTableWidget(self.verticalLayoutWidget_3) |
140 |
self.tableWidgetValve.setRowCount(0)
|
|
140 |
self.tableWidgetValve.setRowCount(1)
|
|
141 | 141 |
self.tableWidgetValve.setObjectName("tableWidgetValve") |
142 | 142 |
self.tableWidgetValve.setColumnCount(0) |
143 | 143 |
self.tableWidgetValve.verticalHeader().setVisible(False) |
... | ... | |
173 | 173 |
self.horizontalLayout_5.addWidget(self.pushButton_7) |
174 | 174 |
self.verticalLayout_4.addLayout(self.horizontalLayout_5) |
175 | 175 |
self.tableWidgetInstrument = QtWidgets.QTableWidget(self.verticalLayoutWidget_4) |
176 |
self.tableWidgetInstrument.setRowCount(0)
|
|
176 |
self.tableWidgetInstrument.setRowCount(1)
|
|
177 | 177 |
self.tableWidgetInstrument.setObjectName("tableWidgetInstrument") |
178 | 178 |
self.tableWidgetInstrument.setColumnCount(0) |
179 | 179 |
self.tableWidgetInstrument.verticalHeader().setVisible(False) |
... | ... | |
209 | 209 |
self.horizontalLayout_6.addWidget(self.pushButton_9) |
210 | 210 |
self.verticalLayout_5.addLayout(self.horizontalLayout_6) |
211 | 211 |
self.tableWidgetNote = QtWidgets.QTableWidget(self.verticalLayoutWidget_5) |
212 |
self.tableWidgetNote.setRowCount(0)
|
|
212 |
self.tableWidgetNote.setRowCount(1)
|
|
213 | 213 |
self.tableWidgetNote.setObjectName("tableWidgetNote") |
214 | 214 |
self.tableWidgetNote.setColumnCount(0) |
215 | 215 |
self.tableWidgetNote.verticalHeader().setVisible(False) |
DTI_PID/DTI_PID/UI/ItemDataFormat.ui | ||
---|---|---|
221 | 221 |
<item> |
222 | 222 |
<widget class="QTableWidget" name="tableWidgetEquipment"> |
223 | 223 |
<property name="rowCount"> |
224 |
<number>0</number>
|
|
224 |
<number>1</number>
|
|
225 | 225 |
</property> |
226 | 226 |
<attribute name="verticalHeaderVisible"> |
227 | 227 |
<bool>false</bool> |
228 | 228 |
</attribute> |
229 |
<row/> |
|
229 | 230 |
</widget> |
230 | 231 |
</item> |
231 | 232 |
</layout> |
... | ... | |
300 | 301 |
<item> |
301 | 302 |
<widget class="QTableWidget" name="tableWidgetValve"> |
302 | 303 |
<property name="rowCount"> |
303 |
<number>0</number>
|
|
304 |
<number>1</number>
|
|
304 | 305 |
</property> |
305 | 306 |
<attribute name="verticalHeaderVisible"> |
306 | 307 |
<bool>false</bool> |
307 | 308 |
</attribute> |
309 |
<row/> |
|
308 | 310 |
</widget> |
309 | 311 |
</item> |
310 | 312 |
</layout> |
... | ... | |
379 | 381 |
<item> |
380 | 382 |
<widget class="QTableWidget" name="tableWidgetInstrument"> |
381 | 383 |
<property name="rowCount"> |
382 |
<number>0</number>
|
|
384 |
<number>1</number>
|
|
383 | 385 |
</property> |
384 | 386 |
<attribute name="verticalHeaderVisible"> |
385 | 387 |
<bool>false</bool> |
386 | 388 |
</attribute> |
389 |
<row/> |
|
387 | 390 |
</widget> |
388 | 391 |
</item> |
389 | 392 |
</layout> |
... | ... | |
458 | 461 |
<item> |
459 | 462 |
<widget class="QTableWidget" name="tableWidgetNote"> |
460 | 463 |
<property name="rowCount"> |
461 |
<number>0</number>
|
|
464 |
<number>1</number>
|
|
462 | 465 |
</property> |
463 | 466 |
<attribute name="verticalHeaderVisible"> |
464 | 467 |
<bool>false</bool> |
465 | 468 |
</attribute> |
469 |
<row/> |
|
466 | 470 |
</widget> |
467 | 471 |
</item> |
468 | 472 |
</layout> |
내보내기 Unified diff