프로젝트

일반

사용자정보

개정판 9c878e3e

ID9c878e3ec8b3115902c0b9f9755d773dc38f6ddf
상위 17c1a084
하위 e21d2ad9, ffd6e50e

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

issue #000: fix symbol move

Change-Id: If1a9a43e784920c2b38db678c7a24b447152ba18

차이점 보기:

DTI_PID/DTI_PID/Shapes/SymbolSvgItem.py
373 373
    def itemChange(self, change, value):
374 374
        """ call signals when item's position or rotation is changed """
375 375
        if not self.scene(): return super().itemChange(change, value)
376
            
376

  
377 377
        if change == QGraphicsItem.ItemPositionChange or change == QGraphicsItem.ItemRotationChange:
378 378
            for conn in self.connectors:
379 379
                conn.sceneConnectPoint = (conn.sceneBoundingRect().center().x(), conn.sceneBoundingRect().center().y())
......
830 830
                self.angle = angle
831 831
                self.loc = [x - self.symbolOrigin[0], y - self.symbolOrigin[1]]
832 832
                self.origin = [x, y]
833
                scene = self.scene()
834
                scene.removeItem(self)
835
                self.addSvgItemToScene(scene)
833
                #scene = self.scene()
834
                #scene.removeItem(self)
835
                #self.addSvgItemToScene(scene)
836
                self.rotate(self.getCurrentPoint(), self.angle)
836 837
                self.setZValue(z)
837 838
        elif event.key() == Qt.Key_Escape:
838 839
            if hasattr(self, '_rotating'):
......
846 847

  
847 848
                del self._rotating
848 849
        elif event.key() == Qt.Key_Up:  ### translate up/down/left/right symbol
849
            self.moveBy(0, -1)
850
            self.loc[1] = self.loc[1] - 1
851
            self.origin[1] = self.origin[1] - 1
852
            self.rotate(self.getCurrentPoint(), self.angle)
850 853
        elif event.key() == Qt.Key_Down:
851
            self.moveBy(0, 1)
854
            self.loc[1] = self.loc[1] + 1
855
            self.origin[1] = self.origin[1] + 1
856
            self.rotate(self.getCurrentPoint(), self.angle)
852 857
        elif event.key() == Qt.Key_Left:
853
            self.moveBy(-1, 0)
858
            self.loc[0] = self.loc[0] - 1
859
            self.origin[0] = self.origin[0] - 1
860
            self.rotate(self.getCurrentPoint(), self.angle)        
854 861
        elif event.key() == Qt.Key_Right:
855
            self.moveBy(1, 0)
862
            self.loc[0] = self.loc[0] + 1
863
            self.origin[0] = self.origin[0] + 1
864
            self.rotate(self.getCurrentPoint(), self.angle)
856 865
           
857 866
    '''
858 867
        @brief      connect attribute
......
1057 1066
            node.append(connectionNode)
1058 1067

  
1059 1068
            locNode = Element('LOCATION')
1069
            locNode.text = '{},{}'.format(self.loc[0], self.loc[1])
1070
            '''
1060 1071
            # calculate symbol's left-top corner
1061 1072
            transform = QTransform()
1062 1073
            transform.translate(self.scenePos().x(), self.scenePos().y())
......
1064 1075
            loc = transform.map(QPointF(self.symbolOrigin[0], self.symbolOrigin[1]))
1065 1076
            # up to here
1066 1077
            locNode.text = '{},{}'.format(loc.x() - self.symbolOrigin[0], loc.y() - self.symbolOrigin[1])
1078
            '''
1067 1079
            node.append(locNode)
1068 1080

  
1069 1081
            sizeNode = Element('SIZE')
......
1565 1577
        @date       2018.07.24
1566 1578
    '''
1567 1579
    def rotate(self, standardPoint, angle):
1568
        self.setRotation(0) # force to emit itemChange signal
1580
        #self.setRotation(0) # force to emit itemChange signal
1569 1581
        self.setTransform(self.get_transform(standardPoint, angle))
1570 1582

  
1571 1583
    '''

내보내기 Unified diff

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