프로젝트

일반

사용자정보

개정판 360c8441

ID360c84419628c63649d04c5925e2d0b20044830f
상위 ab1f8288
하위 49dca490

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

issue #641: block drawing db save and load

Change-Id: I2d514dcd4db92ebfab969350fc1a41e7ca628ec9

차이점 보기:

DTI_PID/DTI_PID/AppDocData.py
1998 1998
        return res
1999 1999

  
2000 2000

  
2001
    def update_symbol_shape(self, symbol, image_file, svg_file):
2001
    def update_symbol_shape(self, symbol_name, image_file, svg_file, image_display_file):
2002 2002
        """update symbol shape"""
2003 2003

  
2004 2004
        with self.project.database.connect() as conn:
......
2023 2023
                    cols.append('Svg=?')
2024 2024
                    params.append(svg_blob_data)
2025 2025

  
2026
                sql = f"update Symbol set {','.join(cols)} where UID={symbol}"
2026
                image_display_blob_data = None
2027
                if image_file and os.path.isfile(image_display_file):
2028
                    with open(image_file, 'rb') as file:
2029
                        image_display_blob_data = file.read()
2030
                    cols.append('Image_display=?')
2031
                    params.append(image_display_blob_data)
2032

  
2033
                sql = f"update Symbol set {','.join(cols)} where Name='{symbol_name}'"
2027 2034
                # Convert data into tuple format
2028 2035
                cursor.execute(self.project.database.to_sql(sql), tuple(params))
2029 2036
                conn.commit()
......
3469 3476

  
3470 3477
                    if drawing.UID is None:
3471 3478
                        sql = self.project.database.to_sql(
3472
                            'insert into Drawings(UID, [NAME], [DATETIME], [Image]) values(?, ?, ?, ?)')
3473
                        param = tuple([str(uuid.uuid4()), drawing.name, '', image_blob_data])
3479
                            'insert into Drawings(UID, [NAME], [DATETIME]) values(?, ?, ?, ?)')
3480
                        param = tuple([str(uuid.uuid4()), drawing.name, ''])
3481
                        #param = tuple([str(uuid.uuid4()), drawing.name, '', image_blob_data])
3474 3482
                    else:
3475
                        sql = self.project.database.to_sql("update Drawings set [NAME]=?,[DATETIME]=?,[Image]=? where UID=?")
3476
                        param = (drawing.name, drawing.datetime, image_blob_data, str(drawing.UID))
3483
                        sql = self.project.database.to_sql("update Drawings set [NAME]=?,[DATETIME]=? where UID=?")
3484
                        param = (drawing.name, drawing.datetime, str(drawing.UID))
3485
                        #param = (drawing.name, drawing.datetime, image_blob_data, str(drawing.UID))
3477 3486

  
3478 3487
                    cursor.execute(sql, param)
3479 3488

  
DTI_PID/DTI_PID/Drawing.py
103 103
        """getter of drawing image"""
104 104

  
105 105
        app_doc_data = AppDocData.instance()
106
        _bytes = app_doc_data.read_drawing_shape(self.UID)
106
        #_bytes = app_doc_data.read_drawing_shape(self.UID)
107
        _bytes = None
107 108
        if _bytes: return _bytes
108 109

  
109 110
        file_path = os.path.join(app_doc_data.project.getDrawingFilePath(), self.name)
DTI_PID/DTI_PID/Scripts/MSSQL/ID2.sql
1181 1181
    Flip               INTEGER,
1182 1182
    Image              VARCHAR(MAX),
1183 1183
    Svg                VARCHAR(MAX),
1184
    Image_display      VARCHAR(MAX),
1184 1185
    FOREIGN KEY (
1185 1186
        SymbolType_UID
1186 1187
    )
......
1222 1223
                          NOT NULL,
1223 1224
    NAME     VARCHAR(256) NOT NULL,
1224 1225
    DATETIME TEXT,
1225
    OCCUPIED VARCHAR(256)
1226
    OCCUPIED VARCHAR(256),
1227
    Image    varbinary(max)
1226 1228
);
1227 1229

  
1228 1230
CREATE TABLE Components (
DTI_PID/DTI_PID/SymbolEditorDialog.py
91 91
                self.ui.rotateRightButton.setEnabled(False)
92 92
                self.ui.flipHorizontalButton.setEnabled(False)
93 93
                self.ui.flipVerticalButton.setEnabled(False)
94
                self.ui.spinBoxhasInstrumentLabel(False)
94
                self.ui.spinBoxhasInstrumentLabel.setEnabled(False)
95 95

  
96 96
            # unused function
97 97
            self.ui.immediateInsertLabel.setHidden(True)
......
570 570
        app_doc_data = AppDocData.instance()
571 571
        if isValid:
572 572
            if self.selectedSymbol is None:
573
                isSuccess, fileType, fileName, image_file_path = app_doc_data.insertSymbol(
573
                isSuccess, fileType, SymName, image_file_path = app_doc_data.insertSymbol(
574 574
                    self.makeSymbolData(self.ui.imageView.image().width(), self.ui.imageView.image().height()))
575 575
            else:
576
                isSuccess, fileType, fileName, image_file_path = app_doc_data.updateSymbol(
576
                isSuccess, fileType, SymName, image_file_path = app_doc_data.updateSymbol(
577 577
                    self.makeSymbolData(self.ui.imageView.image().width(), self.ui.imageView.image().height()))
578 578

  
579 579
            if isSuccess and not self.display:
......
595 595

  
596 596
                        normal_color = self.ui.comboBoxNormalColor.itemData(self.ui.comboBoxNormalColor.currentIndex())
597 597
                        hover_color = self.ui.comboBoxHoverColor.itemData(self.ui.comboBoxHoverColor.currentIndex())
598
                        svg_file_path = os.path.join(svgLocation, fileName + ".svg")
598
                        svg_file_path = os.path.join(svgLocation, SymName + ".svg")
599 599
                        potrace.convertImageToSvg(image_file_path, svg_file_path, normalColor=normal_color,
600 600
                                                  hoverColor=hover_color)
601 601

  
602
                        app_doc_data.update_symbol_shape(self.selectedSymbol.uid, image_file_path, svg_file_path)
602
                        app_doc_data.update_symbol_shape(SymName, image_file_path, svg_file_path, None)
603 603
                        self.isAccepted = True
604 604
                        if self.ui.checkBoxChange.isChecked():
605 605
                            self.changeSymbolInfo()
606 606
                        QDialog.accept(self)
607 607
                except Exception as ex:
608 608
                    if self.selectedSymbol is None:
609
                        self.resetInsertSymbol(image_file_path, fileName)
609
                        self.resetInsertSymbol(image_file_path, SymName)
610 610
                    else:
611
                        self.resetUpdateSymbol(image_file_path, fileName)  # update roll back 으로 변경해야함
611
                        self.resetUpdateSymbol(image_file_path, SymName)  # update roll back 으로 변경해야함
612 612
                    self.isAccepted = False
613 613
                    QMessageBox.about(self.ui.buttonBox, self.tr('Error'),
614 614
                                      self.tr('Error occurs during saving symbol, please check data.'))
......
630 630

  
631 631
                        normal_color = self.ui.comboBoxNormalColor.itemData(self.ui.comboBoxNormalColor.currentIndex())
632 632
                        hover_color = self.ui.comboBoxHoverColor.itemData(self.ui.comboBoxHoverColor.currentIndex())
633
                        svg_file_path = os.path.join(svgLocation, fileName + ".svg")
633
                        svg_file_path = os.path.join(svgLocation, SymName + ".svg")
634 634
                        potrace.convertImageToSvg(path, svg_file_path, normalColor=normal_color, hoverColor=hover_color)
635 635

  
636
                        app_doc_data.update_symbol_shape(self.selectedSymbol.uid, None, svg_file_path)
636
                        app_doc_data.update_symbol_shape(SymName, None, svg_file_path, path)
637 637
                        QDialog.accept(self)
638 638
                except Exception as ex:
639
                    self.resetUpdateSymbol(image_file_path, fileName, self.display)  # update roll back 으로 변경해야함
639
                    self.resetUpdateSymbol(image_file_path, SymName, self.display)  # update roll back 으로 변경해야함
640 640
                    self.isAccepted = False
641 641
                    QMessageBox.about(self.ui.buttonBox, self.tr('Error'),
642 642
                                      self.tr('Error occurs during saving symbol, please check data.'))

내보내기 Unified diff

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