프로젝트

일반

사용자정보

개정판 8e44b27f

ID8e44b27fe344ec062b069ae33748c5f3e1bdd9ad
상위 8223f09c
하위 3f1cbcdb

함의성이(가) 약 4년 전에 추가함

issue #000: line stream no case setting test

Change-Id: I2826405e5a145c9f27297e163a81f56c1a2339f5

차이점 보기:

DTI_PID/DTI_PID/ImportTextFromPDFDialog.py
133 133
                    unknowns.clear()
134 134
                    """up to here"""
135 135

  
136
                    """add text from autocad file to id xml file"""
136
                    """add text from pdf file to id xml file"""
137 137
                    rects = []
138 138

  
139 139
                    for blk_tbl_record in pdf_xml_root.iter('Text'):
......
322 322
                    node = item.toXml()
323 323
                elif item.area == 'Drawing' and type(_item) is not QEngineeringTextItem:
324 324
                    node = item.toXml()
325
                elif item.area == 'Drawing':
325
                elif False:#item.area == 'Drawing':
326 326
                    app_doc_data.getReplaceTables()
327 327
                    app_doc_data.getCustomTables()
328 328
                    app_doc_data.loadSymbolAttributeCodeTables()
......
336 336
                            if area.contains([loc[0], loc[1]]):
337 337
                                node = item.toXml()
338 338
                                break
339
                else: # allow all text item
340
                    node = item.toXml()
339 341

  
340 342
                if node:
341 343
                    nodes.append(node)
DTI_PID/DTI_PID/StreamlineDialog.py
28 28
        if role in [Qt.BackgroundRole]:
29 29
            item = super(FromToModel, self).item(index.row(), index.column())
30 30

  
31
            if index.column() in [1, 2]:
31
            if index.column() in [1, 2, 3]:
32 32
                uid = item.data(Qt.UserRole)
33 33
                if not uid:
34 34
                    return self._need_to_pick_backcolor
......
98 98
        QDialog.__init__(self, parent)
99 99
        self._from_to_widgets = {}
100 100
        self._from_to_models = {}
101
        self._case_combobox = {}
102
        self.case_list = []
103
        self._default_box_color = None
101 104

  
102 105
        self.ui = Ui_StreamlineDialog()
103 106
        self.ui.setupUi(self)
......
138 141
        if not hmbs:
139 142
            return
140 143

  
144
        for data in hmbs[0].datas:
145
            self.case_list.append(data[0].case)
146

  
141 147
        model= HmbModel()
142 148
        header = ['UID', 'Stream No']
143 149

  
......
160 166
        for col in range(self.ui.tableViewStreamNo.model().columnCount()):
161 167
            self.ui.tableViewStreamNo.setColumnHidden(col, col != 1)  # hide all columns except index is 1
162 168

  
169
    def caseChanged(self, text):
170
        box = self.sender()
171
        row, column = self._case_combobox[box]
172

  
173
        item = self.ui.tableViewFromTo.model().item(row, column)
174
        item.setData(text, Qt.UserRole)
175
        item._new = True
176
        pal = box.palette()
177
        if self._default_box_color is None:
178
            self._default_box_color = pal.color(QPalette.Button)
179
        pal.setColor(QPalette.Button, QColor(Qt.yellow))
180
        box.setPalette(pal)
181

  
182
        row = self.ui.tableViewStreamNo.selectionModel().currentIndex().row()
183
        self.ui.tableViewStreamNo.model().item(row, 1)._new = True
184

  
163 185
    def on_selection_changed(self, selection):
164 186
        """show stream line from, to related to selected hmb"""
165 187

  
......
167 189
            row = selection.indexes()[0].row()
168 190
            stream_no = self.ui.tableViewStreamNo.model().item(row, 1).text()
169 191

  
192
            app_doc_data = AppDocData.instance()
193

  
170 194
            if stream_no not in self._from_to_models:
171 195
                model = FromToModel()
172 196
                self._from_to_models[stream_no] = model
173 197
                self.ui.tableViewFromTo.setModel(model)
174 198

  
175
                app_doc_data = AppDocData.instance()
176 199
                rows = app_doc_data.get_stream_from_to(stream_no=stream_no)
177 200
                if rows:
178 201
                    for row_ in rows:
......
189 212
                        drawing_item.setData(row_['Drawing_UID'], Qt.UserRole)
190 213

  
191 214
                        case = row_['Case'] if row_['Case'] else ''
192
                        case_item = QStandardItem(case)
193
                        case_item.setData(case, Qt.UserRole)
194

  
215
                        case_item = QStandardItem('')
216
                        if case in self.case_list:
217
                            case_item.setData(case, Qt.UserRole)
218
                        else:
219
                            case_item.setData(self.case_list[0], Qt.UserRole)
195 220
                        items = [drawing_item, from_item, to_item, case_item]
196 221
                        model.appendRow(items)
197 222

  
......
202 227
            self.ui.tableViewFromTo.setModel(model)
203 228
            self.ui.tableViewFromTo.resizeColumnsToContents()
204 229

  
230
            '''
231
            comboboxs = []
232
            caseCombobox = QComboBox()
233
            caseCombobox.addItems(self.case_list)
234
            caseCombobox.setCurrentText(case)
235
            caseCombobox.currentTextChanged.connect(self.caseChanged)
236
            comboboxs.append(caseCombobox)
237
            '''
238

  
205 239
            self._from_to_widgets.clear()
240
            self._case_combobox.clear()
206 241
            for row_ in range(self.ui.tableViewFromTo.model().rowCount()):
207 242
                i = self.ui.tableViewFromTo.model().index(row_, 1)
208
                data = self.ui.tableViewFromTo.model().data(i, Qt.DisplayRole)
243
                data = self.ui.tableViewFromTo.model().data(i, Qt.UserRole)
209 244
                from_button = FromToWidget(self.ui.tableViewFromTo, 1, data)
210 245
                self.ui.tableViewFromTo.setIndexWidget(i, from_button)
211 246
                self._from_to_widgets[from_button] = (row_, 1)
212 247

  
213 248
                i = self.ui.tableViewFromTo.model().index(row_, 2)
214
                data = self.ui.tableViewFromTo.model().data(i, Qt.DisplayRole)
249
                data = self.ui.tableViewFromTo.model().data(i, Qt.UserRole)
215 250
                to_button = FromToWidget(self.ui.tableViewFromTo, 2, data)
216 251
                self.ui.tableViewFromTo.setIndexWidget(i, to_button)
217 252
                self._from_to_widgets[to_button] = (row_, 2)
218 253

  
254
                i = self.ui.tableViewFromTo.model().index(row_, 3)
255
                data = self.ui.tableViewFromTo.model().data(i, Qt.UserRole)
256
                case_item = self.ui.tableViewFromTo.model().itemFromIndex(i)
257
                j = self.ui.tableViewFromTo.model().index(row_, 0)
258
                drawing_uid = self.ui.tableViewFromTo.model().data(j, Qt.UserRole)
259
                caseCombobox = QComboBox()
260
                caseCombobox.addItems(self.case_list)
261
                caseCombobox.setCurrentText(data)
262
                caseCombobox.currentTextChanged.connect(self.caseChanged)
263
                self.ui.tableViewFromTo.setIndexWidget(i, caseCombobox)
264
                self._case_combobox[caseCombobox] = (row_, 3)
265
                if drawing_uid != app_doc_data.activeDrawing.UID:
266
                    caseCombobox.setEnabled(False)
267
                if hasattr(case_item, '_new') and case_item._new:
268
                    pal = caseCombobox.palette()
269
                    pal.setColor(QPalette.Button, QColor(Qt.yellow))
270
                    caseCombobox.setPalette(pal)
271

  
219 272
            """Properties"""
220 273
            if not self.ui.tableViewProperties.model():
221 274
                model_property = QStandardItemModel()
......
332 385
                to_ = model.item(row, 2)
333 386
                to_uid = to_.data(Qt.UserRole)
334 387
                case_ = model.item(row, 3)
335
                case_ = case_.data(Qt.UserRole)
388
                case__ = case_.data(Qt.UserRole)
336 389

  
337 390
                if hasattr(drawing_, '_new') and drawing_._new:
338 391
                    drawing_._new = False
......
343 396
                if hasattr(case_, '_new') and case_._new:
344 397
                    case_._new = False
345 398

  
346
                from_to_data.append((drawing_uid, from_uid, to_uid, stream_no, case_))
399
                from_to_data.append((drawing_uid, from_uid, to_uid, stream_no, case__))
347 400

  
348 401
            AppDocData.save_stream_line_data([stream_no, from_to_data])
349 402

  
403
        if self._default_box_color:
404
            for box in self._case_combobox.keys():
405
                pal = box.palette()
406
                pal.setColor(QPalette.Button, self._default_box_color)
407
                box.setPalette(pal)
408

  
350 409
        QMessageBox.about(self, self.tr("Information"), self.tr('Successfully saved.'))
351 410

  
352 411
    def accept(self):

내보내기 Unified diff

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