프로젝트

일반

사용자정보

개정판 daeca09e

IDdaeca09e434c2ce9be8bbdebb2cfb31fe62e0015
상위 33d113ad
하위 fb096e18

함의성이(가) 6년 이상 전에 추가함

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

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