프로젝트

일반

사용자정보

개정판 3e04ac55

ID3e04ac55c2427f08580e86fa293db73e51c117eb
상위 7dc68732
하위 98012828, 8efcb2dd

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

convert point test

Change-Id: I36660af5cbbc478f4c6687a0b88edf008ed3fad7

차이점 보기:

DTI_PID/DTI_PID/Commands/SelectAttributeCommand.py
170 170
        @brief      Find TextItem contain Point
171 171
        @author     kyouho
172 172
        @date       18.07.19
173
        @ no more used
173 174
    '''
174 175
    def findTextItemInPoint(self, point):
175 176
        from EngineeringTextItem import QEngineeringTextItem
......
185 186
        @brief      Find Symbol Item contain Point
186 187
        @author     kyouho
187 188
        @date       18.07.19
189
        @ no more used
188 190
    '''
189 191
    def findSymbolItemInPoint(self, point):
190 192
        from SymbolSvgItem import SymbolSvgItem
DTI_PID/DTI_PID/QtImageViewer.py
739 739
                configs = AppDocData.instance().getConfigs('Data', 'Grid')
740 740
                grid = int(configs[0].value) if 1 == len(configs) else -1
741 741
                if grid == 1:
742
                    svg.origin = [round(origin.x), round(origin.y)]
743
                    svg.loc = [round(origin.x - svg.symbolOrigin[0]), round(origin.y - svg.symbolOrigin[1])]
744
                    '''
742 745
                    if not svg.symbolConvertingOrigin:
743 746
                        svg.origin = [round(origin.x), round(origin.y)]
744 747
                        svg.loc = [round(origin.x - svg.symbolOrigin[0]), round(origin.y - svg.symbolOrigin[1])]
745 748
                    else:
746 749
                        svg.origin = [round(origin.x - svg.symbolConvertingOrigin[0] + svg.symbolOrigin[0]), round(origin.y - svg.symbolConvertingOrigin[1] + svg.symbolOrigin[1])]
747 750
                        svg.loc = [round(origin.x - svg.symbolConvertingOrigin[0]), round(origin.y - svg.symbolConvertingOrigin[1])]
751
                    '''
748 752
                else:
753
                    svg.origin = [round(origin.x, 1), round(origin.y, 1)]
754
                    svg.loc = [round(origin.x - svg.symbolOrigin[0], 1), round(origin.y - svg.symbolOrigin[1], 1)]
755
                    '''
749 756
                    if not svg.symbolConvertingOrigin:
750 757
                        svg.origin = [round(origin.x, 1), round(origin.y, 1)]
751 758
                        svg.loc = [round(origin.x - svg.symbolOrigin[0], 1), round(origin.y - svg.symbolOrigin[1], 1)]
752 759
                    else:
753 760
                        svg.origin = [round(origin.x - svg.symbolConvertingOrigin[0] + svg.symbolOrigin[0], 1), round(origin.y - svg.symbolConvertingOrigin[1] + svg.symbolOrigin[1], 1)]
754 761
                        svg.loc = [round(origin.x - svg.symbolConvertingOrigin[0], 1), round(origin.y - svg.symbolConvertingOrigin[1], 1)]
762
                    '''
755 763
                svg.angle = items[0].angle()
756 764

  
757 765
                svg.addSvgItemToScene(scene, True if not auto else False)
......
799 807
                configs = AppDocData.instance().getConfigs('Data', 'Grid')
800 808
                grid = int(configs[0].value) if 1 == len(configs) else -1
801 809
                if grid == 1:
810
                    svg.origin = [round(scenePos.x()), round(scenePos.y())]
811
                    svg.loc = [round(scenePos.x() - svg.symbolOrigin[0]), round(scenePos.y() - svg.symbolOrigin[1])]
812
                    '''
802 813
                    if not svg.symbolConvertingOrigin:
803 814
                        svg.origin = [round(scenePos.x()), round(scenePos.y())]
804 815
                        svg.loc = [round(scenePos.x() - svg.symbolOrigin[0]), round(scenePos.y() - svg.symbolOrigin[1])]
805 816
                    else:
806 817
                        svg.origin = [round(scenePos.x() - svg.symbolConvertingOrigin[0] + svg.symbolOrigin[0]), round(scenePos.y() - svg.symbolConvertingOrigin[1] + svg.symbolOrigin[1])]
807 818
                        svg.loc = [round(scenePos.x() - svg.symbolConvertingOrigin[0]), round(scenePos.y() - svg.symbolConvertingOrigin[1])]
819
                    '''
808 820
                else:
821
                    svg.origin = [round(scenePos.x(), 1), round(scenePos.y(), 1)]
822
                    svg.loc = [round(scenePos.x() - svg.symbolOrigin[0], 1), round(scenePos.y() - svg.symbolOrigin[1], 1)]
823
                    '''
809 824
                    if not svg.symbolConvertingOrigin:
810 825
                        svg.origin = [round(scenePos.x(), 1), round(scenePos.y(), 1)]
811 826
                        svg.loc = [round(scenePos.x() - svg.symbolOrigin[0], 1), round(scenePos.y() - svg.symbolOrigin[1], 1)]
812 827
                    else:
813 828
                        svg.origin = [round(scenePos.x() - svg.symbolConvertingOrigin[0] + svg.symbolOrigin[0], 1), round(scenePos.y() - svg.symbolConvertingOrigin[1] + svg.symbolOrigin[1], 1)]
814 829
                        svg.loc = [round(scenePos.x() - svg.symbolConvertingOrigin[0], 1), round(scenePos.y() - svg.symbolConvertingOrigin[1], 1)]
830
                    '''
815 831

  
816 832
                if len(svg.connectors) == 1:
817 833
                    # single connection item assistant
DTI_PID/DTI_PID/Shapes/SymbolSvgItem.py
533 533
        """ call signals when item's position or rotation is changed """
534 534
        if not self.scene(): return super().itemChange(change, value)
535 535

  
536
        if (change == QGraphicsItem.ItemPositionHasChanged or change == QGraphicsItem.ItemRotationHasChanged or
537
                change == QGraphicsItem.ItemScaleHasChanged):
536
        if change == QGraphicsItem.ItemPositionHasChanged or change == QGraphicsItem.ItemRotationHasChanged or \
537
                change == QGraphicsItem.ItemScaleHasChanged:
538 538
            from EngineeringLineItem import QEngineeringLineItem
539 539
            for connector in self.connectors:
540 540
                if connector.connectedItem is not None and type(connector.connectedItem) is QEngineeringLineItem:
......
544 544
                    for conn in line.connectors:
545 545
                        conn.transfer.onPosChanged.emit(conn)
546 546

  
547
            self.size[0], self.size[1] = round(self.sceneBoundingRect().width()), \
548
                                         round(self.sceneBoundingRect().height())
547
            self.size[0], self.size[1] = round(self.sceneBoundingRect().width()), round(self.sceneBoundingRect().height())
548
            self.loc[0], self.loc[1] = round(self.sceneBoundingRect().top()), round(self.sceneBoundingRect().left())
549 549

  
550 550
            scene_origin = self.mapToScene(self.transformOriginPoint())
551 551

  
......
1115 1115
        @brief      Find TextItem contain Point
1116 1116
        @author     kyouho
1117 1117
        @date       18.07.17
1118
        @ no more used
1118 1119
    '''
1119 1120
    def findTextItemInPoint(self, point):
1120 1121
        from EngineeringTextItem import QEngineeringTextItem
......
1132 1133
        @brief      Check Overlap
1133 1134
        @author     kyouho
1134 1135
        @date       18.07.17
1136
        @ no more used
1135 1137
    '''
1136 1138
    def isOverlapItemAndPoint(self, item, point):
1137 1139
        x = point.x()
......
1261 1263
            modifiers = QApplication.keyboardModifiers()
1262 1264
            delta = 10 if modifiers == Qt.ControlModifier else 1
1263 1265

  
1264
            self.loc[1] = self.loc[1] - delta
1266
            #self.loc[1] = self.loc[1] - delta
1265 1267
            #self.origin[1] = self.origin[1] - delta
1266 1268
            self.moveBy(0, -delta)
1267 1269
        elif event.key() == Qt.Key_Down:
1268 1270
            modifiers = QApplication.keyboardModifiers()
1269 1271
            delta = 10 if modifiers == Qt.ControlModifier else 1
1270 1272

  
1271
            self.loc[1] = self.loc[1] + delta
1273
            #self.loc[1] = self.loc[1] + delta
1272 1274
            #self.origin[1] = self.origin[1] + delta
1273 1275
            self.moveBy(0, delta)
1274 1276
        elif event.key() == Qt.Key_Left:
1275 1277
            modifiers = QApplication.keyboardModifiers()
1276 1278
            delta = 10 if modifiers == Qt.ControlModifier else 1
1277 1279

  
1278
            self.loc[0] = self.loc[0] - delta
1280
            #self.loc[0] = self.loc[0] - delta
1279 1281
            #self.origin[0] = self.origin[0] - delta
1280 1282
            self.moveBy(-delta, 0)
1281 1283
        elif event.key() == Qt.Key_Right:
1282 1284
            modifiers = QApplication.keyboardModifiers()
1283 1285
            delta = 10 if modifiers == Qt.ControlModifier else 1
1284 1286

  
1285
            self.loc[0] = self.loc[0] + delta
1287
            #self.loc[0] = self.loc[0] + delta
1286 1288
            #self.origin[0] = self.origin[0] + delta
1287 1289
            self.moveBy(delta, 0)
1288 1290
        elif event.key() == Qt.Key_Plus or event.key() == 61:
......
2508 2510
        if self.flip:
2509 2511
            self.flip_symbol()
2510 2512

  
2511
        self.setTransformOriginPoint(QPointF(self.symbolOrigin[0], self.symbolOrigin[1]))
2513
        if not self.symbolConvertingOrigin:
2514
            self.setTransformOriginPoint(QPointF(self.symbolOrigin[0], self.symbolOrigin[1]))
2515
            self.moveBy(-self.symbolOrigin[0], -self.symbolOrigin[1])
2516
            self.setRotation(math.degrees(self.angle))
2517
            self.moveBy(self.origin[0], self.origin[1])
2518
        else:
2519
            self.setTransformOriginPoint(QPointF(self.symbolConvertingOrigin[0], self.symbolConvertingOrigin[1]))
2520
            self.moveBy(-self.symbolConvertingOrigin[0], -self.symbolConvertingOrigin[1])
2521
            self.setRotation(math.degrees(self.angle))
2522
            self.moveBy(self.origin[0], self.origin[1])
2523
            self.setTransformOriginPoint(QPointF(self.symbolOrigin[0], self.symbolOrigin[1]))
2524

  
2525
            dx = abs(self.symbolOrigin[0] - self.symbolConvertingOrigin[0])
2526
            dy = abs(self.symbolOrigin[1] - self.symbolConvertingOrigin[1])
2527

  
2528
            #self.moveBy(round(math.sin(self.angle) * dx + math.cos(self.angle) * dy), (round(math.sin(self.angle) * dx + math.cos(self.angle) * dy)))
2512 2529

  
2513
        self.moveBy(-self.symbolOrigin[0], -self.symbolOrigin[1])
2514
        self.setRotation(math.degrees(self.angle))
2515
        self.moveBy(self.origin[0], self.origin[1])
2530
            #transform = QTransform()
2531
            #transform.translate(self.symbolConvertingOrigin[0], self.symbolConvertingOrigin[1])
2532
            ##transform.map(self.symbolConvertingOrigin[0], self.symbolConvertingOrigin[1])
2533
            #transform.rotate(math.degrees(self.angle))
2534
            #transform.translate(-self.symbolConvertingOrigin[0], -self.symbolConvertingOrigin[1])
2535
            #self.setTransform(transform)
2516 2536

  
2517 2537
        scene.addItem(self)
2518 2538
        self.size[0], self.size[1] = round(self.sceneBoundingRect().width()), round(self.sceneBoundingRect().height())
2539
        self.loc[0], self.loc[1] = round(self.sceneBoundingRect().top()), round(self.sceneBoundingRect().left())
2540

  
2541
        scene_origin = self.mapToScene(self.transformOriginPoint())
2542

  
2543
        configs = AppDocData.instance().getConfigs('Data', 'Grid')
2544
        grid = int(configs[0].value) if 1 == len(configs) else -1
2545
        if grid == 1:
2546
            self.origin = [round(scene_origin.x()), round(scene_origin.y())]
2547
        else:
2548
            self.origin = [scene_origin.x(), scene_origin.y()]
2519 2549

  
2520 2550
        if undoable:
2521 2551
            from CreateCommand import CreateCommand

내보내기 Unified diff

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