개정판 6b99140a
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