프로젝트

일반

사용자정보

개정판 7fed3e09

ID7fed3e09a3806987e449c5f67059b5faa66ad084
상위 15ccd2b6
하위 6ce13b5a

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

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

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