개정판 360c8441
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