프로젝트

일반

사용자정보

개정판 daeca09e

IDdaeca09e434c2ce9be8bbdebb2cfb31fe62e0015
상위 33d113ad
하위 fb096e18

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

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

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