개정판 daeca09e
issue #655: before save, add
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 |
|
내보내기 Unified diff