프로젝트

일반

사용자정보

개정판 6b99140a

ID6b99140ad81ad6982cca24ca9a290142cb00c960
상위 3be6727a
하위 4d73f27f, 0ebafb60

gaqhf 이(가) 6년 이상 전에 추가함

dev issue #622: symbol 회전 후 저장시 문제 해결

차이점 보기:

DTI_PID/DTI_PID/Shapes/SymbolSvgItem.py
593 593

  
594 594
            rect = self.sceneBoundingRect()
595 595
            locNode = Element('LOCATION')
596
            locNode.text = '{},{}'.format(rect.left(), rect.top())
596
            locNode.text = '{},{}'.format(self.loc[0], self.loc[1])
597 597
            node.append(locNode)
598 598

  
599 599
            sizeNode = Element('SIZE')
......
623 623
                attributesNode.append(attributeNode)
624 624
            node.append(attributesNode)
625 625

  
626
            currentPointModeIndexNode = Element('CURRENTPOINTMODEINDEX')
627
            currentPointModeIndexNode.text = str(self.currentPointModeIndex)
628
            node.append(currentPointModeIndexNode)
629

  
626 630
        except Exception as ex:
627 631
            print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno))
628 632

  
......
700 704
                    for attr in attributes.iter('SYMBOLATTRIBUTE'):
701 705
                        item[0].attrs.append(attr.text)
702 706

  
707
                currentPointModeIndex = node.find('CURRENTPOINTMODEINDEX')
708
                if currentPointModeIndex is not None:
709
                    item[0].currentPointModeIndex = int(currentPointModeIndex.text)
703 710
                item[1] = owner
704 711
        except Exception as ex:
705 712
            print('error occured({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, sys.exc_info()[-1].tb_lineno))
......
830 837
    '''
831 838
    def addSvgItemToScene(self, scene):
832 839
        transform = QTransform()
833
        if (1.57 == self.angle) or (4.71 == self.angle):
834
            transform.translate(self.loc[0] + self.size[0]*0.5,self.loc[1] + self.size[1]*0.5)
835
            transform.rotateRadians(-self.angle)
836
            transform.translate(-self.size[1]*0.5, -self.size[0]*0.5)
837
        elif 3.14 == self.angle:
838
            transform.translate(self.loc[0] + self.size[0]*0.5,self.loc[1] + self.size[1]*0.5)
839
            transform.rotateRadians(-self.angle)
840
            transform.translate(-self.size[0]*0.5, -self.size[1]*0.5)
841
        else:
842
            transform.translate(self.loc[0],self.loc[1])
840
        transform.translate(self.loc[0] + self.symbolOrigin[0], self.loc[1] + self.symbolOrigin[1])
841
        transform.rotateRadians(self.angle)
842
        currentPoint = self.getCurrentPoint()
843
        transform.translate(-currentPoint[0], -currentPoint[1])
844

  
843 845
        self.setTransform(transform)
844 846
        scene.addItem(self)
845 847

  

내보내기 Unified diff