개정판 7fed3e09
issue #622: AppDocData item members are used only recognition for attach later except tracerLineNos
Change-Id: I56d19a63ed3e2cb426823f45616f35f8d502d4aa
DTI_PID/DTI_PID/AppDocData.py | ||
---|---|---|
78 | 78 |
self._imgSrc = None |
79 | 79 |
|
80 | 80 |
self._areas = [] |
81 |
self._colors = None |
|
82 |
self._lineNoProperties = None |
|
83 |
self._lineTypes = None |
|
84 |
self._lineTypeConfigs = None |
|
85 |
self._activeDrawing = None |
|
86 |
self._hmbTable = None |
|
87 |
self._titleBlockProperties = None |
|
88 |
self.needReOpening = None |
|
89 |
|
|
90 |
# item members are used only recognition except tracerLineNos for trim line no |
|
81 | 91 |
self.equipments = [] |
82 | 92 |
self.lineNos = [] |
83 | 93 |
self.lines = [] |
... | ... | |
87 | 97 |
self.allItems = [] |
88 | 98 |
self.tracerLineNos = [] |
89 | 99 |
self.lineIndicators = [] |
90 |
self._colors = None |
|
91 |
self._lineNoProperties = None |
|
92 |
self._lineTypes = None |
|
93 |
self._lineTypeConfigs = None |
|
94 |
self._activeDrawing = None |
|
95 |
self._hmbTable = None |
|
96 |
self._titleBlockProperties = None |
|
97 |
self.needReOpening = None |
|
98 | 100 |
|
99 | 101 |
# caches |
100 | 102 |
self._configs = None |
DTI_PID/DTI_PID/Commands/LoadCommand.py | ||
---|---|---|
147 | 147 |
item = SymbolSvgItem.fromXml(symbol) |
148 | 148 |
if item is not None: |
149 | 149 |
symbols.append(item) |
150 |
app_doc_data.symbols.append(item) |
|
150 |
#app_doc_data.symbols.append(item)
|
|
151 | 151 |
item.addSvgItemToScene(scene) |
152 | 152 |
else: |
153 | 153 |
pt = [float(x) for x in symbol.find('LOCATION').text.split(',')] |
... | ... | |
358 | 358 |
item = SymbolSvgItem.from_database(symbol) |
359 | 359 |
if item is not None: |
360 | 360 |
symbols.append(item) |
361 |
app_doc_data.symbols.append(item) |
|
361 |
#app_doc_data.symbols.append(item)
|
|
362 | 362 |
item.addSvgItemToScene(scene) |
363 | 363 |
else: |
364 | 364 |
pt = [float(symbol['X']), float(symbol['Y'])] |
DTI_PID/DTI_PID/Commands/SaveWorkCommand.py | ||
---|---|---|
12 | 12 |
display_message = pyqtSignal(Enum, str) |
13 | 13 |
show_progress = pyqtSignal(int) |
14 | 14 |
|
15 |
def __init__(self): |
|
15 |
def __init__(self, target_scene):
|
|
16 | 16 |
QThread.__init__(self) |
17 | 17 |
self.resultStr = None |
18 |
self.target_scene = target_scene |
|
18 | 19 |
|
19 | 20 |
def __del__(self): |
20 | 21 |
self.wait() |
... | ... | |
34 | 35 |
try: |
35 | 36 |
appDocData = AppDocData.instance() |
36 | 37 |
|
37 |
items = appDocData.allItems |
|
38 |
all_items = self.target_scene.items() |
|
39 |
|
|
40 |
items = [] |
|
41 |
|
|
42 |
for item in all_items: |
|
43 |
if issubclass(type(item), QEngineeringAbstractItem): |
|
44 |
items.append(item) |
|
38 | 45 |
|
39 | 46 |
''' |
40 | 47 |
titleBlockProps = appDocData.getTitleBlockProperties() |
... | ... | |
55 | 62 |
|
56 | 63 |
appDocData.saveToDatabase(db_items, self.show_progress) |
57 | 64 |
|
58 |
self.resultStr = SaveWorkCommand.save_to_xml() |
|
65 |
self.resultStr = SaveWorkCommand.save_to_xml(items)
|
|
59 | 66 |
|
60 | 67 |
""" update drawing's modified time """ |
61 | 68 |
drawings = appDocData.getDrawings() |
... | ... | |
71 | 78 |
self.display_message.emit(MessageType.Error, message) |
72 | 79 |
|
73 | 80 |
@staticmethod |
74 |
def save_to_xml(): |
|
81 |
def save_to_xml(allItems):
|
|
75 | 82 |
""" save recognized items to xml file """ |
76 | 83 |
import XmlGenerator as xg |
77 | 84 |
from AppDocData import AppDocData |
... | ... | |
79 | 86 |
app_doc_data = AppDocData.instance() |
80 | 87 |
path = os.path.join(app_doc_data.getCurrentProject().getTempPath(), app_doc_data.imgName + '.xml') |
81 | 88 |
xml, result = xg.write_to_xml(path, app_doc_data.activeDrawing.width, app_doc_data.activeDrawing.height, |
82 |
app_doc_data.allItems, app_doc_data.tracerLineNos)
|
|
89 |
allItems, app_doc_data.tracerLineNos) |
|
83 | 90 |
if xml: |
84 | 91 |
from xml.etree import ElementTree |
85 | 92 |
ElementTree.ElementTree(xml).write(path) |
DTI_PID/DTI_PID/MainWindow.py | ||
---|---|---|
736 | 736 |
self.itemTreeWidget.sceneChanged(self.graphicsView.scene().items()) |
737 | 737 |
|
738 | 738 |
def dbUpdate(self): |
739 |
""" no more used """ |
|
739 | 740 |
"""db update when save or recognition""" |
740 | 741 |
|
741 | 742 |
try: |
... | ... | |
829 | 830 |
|
830 | 831 |
items = self.graphicsView.scene().items() |
831 | 832 |
|
833 |
''' |
|
832 | 834 |
# for check line disappear bug |
833 | 835 |
disappear_lines = [line for line in app_doc_data.lines if line not in items] |
836 |
''' |
|
834 | 837 |
|
838 |
''' |
|
835 | 839 |
for item in items: |
836 | 840 |
if issubclass(type(item), QEngineeringAbstractItem): |
837 | 841 |
app_doc_data.allItems.append(item) |
838 | 842 |
if issubclass(type(item), QEngineeringTextItem): |
839 | 843 |
app_doc_data.texts.append(item) |
844 |
''' |
|
840 | 845 |
|
846 |
''' |
|
841 | 847 |
# for check line disappear bug |
842 | 848 |
if disappear_lines: |
843 | 849 |
app_doc_data.allItems.extend(disappear_lines) |
844 | 850 |
for dis_line in disappear_lines: |
845 | 851 |
self.addMessage.emit(MessageType.Check, f"disapper line from scene : {str(dis_line)}") |
852 |
''' |
|
846 | 853 |
|
854 |
''' |
|
847 | 855 |
itemTypes = [] |
848 | 856 |
for item in items: |
849 | 857 |
typeExist = False |
... | ... | |
853 | 861 |
break |
854 | 862 |
if not typeExist: |
855 | 863 |
itemTypes.append(type(item)) |
864 |
''' |
|
856 | 865 |
|
857 |
self._save_work_cmd = SaveWorkCommand() |
|
866 |
self._save_work_cmd = SaveWorkCommand(self.graphicsView.scene())
|
|
858 | 867 |
self._save_work_cmd.show_progress.connect(self.progress_bar.setValue) |
859 | 868 |
self._save_work_cmd.display_message.connect(self.onAddMessage) |
860 | 869 |
self._save_work_cmd.finished.connect(self.save_finished) |
... | ... | |
2190 | 2199 |
for drawing, tree_item in checked_drawings.items(): |
2191 | 2200 |
drawing.datetime = _now |
2192 | 2201 |
tree_item.setText(1, _now) |
2193 |
app_doc_data.saveDrawings(checked_drawings.keys()) |
|
2202 |
#app_doc_data.saveDrawings(checked_drawings.keys())
|
|
2194 | 2203 |
self.changeViewCheckedState(True) |
2195 | 2204 |
# up to here |
2196 | 2205 |
except Exception as ex: |
... | ... | |
2686 | 2695 |
if item is not None: |
2687 | 2696 |
item.transfer.onRemoved.connect(self.itemRemoved) |
2688 | 2697 |
symbols.append(item) |
2689 |
app_doc_data.symbols.append(item) |
|
2698 |
#app_doc_data.symbols.append(item)
|
|
2690 | 2699 |
item.addSvgItemToScene(self.graphicsView.scene()) |
2691 | 2700 |
else: |
2692 | 2701 |
pt = [float(x) for x in symbol.find('LOCATION').text.split(',')] |
DTI_PID/DTI_PID/RecognitionDialog.py | ||
---|---|---|
2617 | 2617 |
try: |
2618 | 2618 |
for item in scene.items(): |
2619 | 2619 |
if issubclass(type(item), QEngineeringVendorItem): |
2620 |
#app_doc_data.symbols.append(item) |
|
2621 | 2620 |
app_doc_data.allItems.append(item) |
2622 | 2621 |
|
2623 |
# symbol need to be attached for scene position
|
|
2622 |
# symbol |
|
2624 | 2623 |
for symbol in app_doc_data.symbols: |
2625 | 2624 |
if issubclass(type(symbol), SymbolSvgItem): |
2626 | 2625 |
symbol.addSvgItemToScene(scene) |
2627 | 2626 |
else: |
2628 | 2627 |
scene.addItem(symbol) |
2629 | 2628 |
|
2630 |
# text no need to be attached |
|
2631 |
''' |
|
2629 |
# text |
|
2632 | 2630 |
for text in app_doc_data.texts: |
2633 | 2631 |
text.addTextItemToScene(scene) |
2634 | 2632 |
|
2635 |
for lineNo in app_doc_data.tracerLineNos: |
|
2636 |
lineNo.addTextItemToScene(scene) |
|
2637 |
''' |
|
2633 |
#for lineNo in app_doc_data.tracerLineNos: |
|
2634 |
# lineNo.addTextItemToScene(scene) |
|
2638 | 2635 |
|
2639 | 2636 |
# remove lines which is located inside symbol |
2640 | 2637 |
for symbol in app_doc_data.symbols: |
... | ... | |
2657 | 2654 |
scene.addItem(unknown) |
2658 | 2655 |
|
2659 | 2656 |
# save scene |
2660 |
SaveWorkCommand.save_to_database() |
|
2661 |
SaveWorkCommand.save_to_xml() |
|
2657 |
save = SaveWorkCommand(scene) |
|
2658 |
save.run() |
|
2659 |
#SaveWorkCommand.save_to_database() |
|
2660 |
#SaveWorkCommand.save_to_xml() |
|
2662 | 2661 |
except Exception as ex: |
2663 | 2662 |
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, |
2664 | 2663 |
sys.exc_info()[-1].tb_lineno) |
내보내기 Unified diff