diff options
Diffstat (limited to 'src/main/python/shapes/line.py')
-rw-r--r-- | src/main/python/shapes/line.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/main/python/shapes/line.py b/src/main/python/shapes/line.py index 856869d..4e5271a 100644 --- a/src/main/python/shapes/line.py +++ b/src/main/python/shapes/line.py @@ -5,6 +5,18 @@ from PyQt5.QtCore import Qt, QPointF, QRectF, QLineF, pyqtSignal from collections import defaultdict +#For extending Lines for repositioned Rectangular Line Grips +rLGPlus = {} +f = open('./shapes/rLGPlus.txt','r') +dataRead = f.readlines()[1:] +for line in dataRead: + + if not line.__contains__(',') : + rLGPlus[line.strip()] = [] + else: + grips = line.strip().split(',') + rLGPlus[list(rLGPlus.keys())[-1]].append(grips) + class Grabber(QGraphicsPathItem): """ Extends QGraphicsPathItem to create grabber for line for moving a particular segment @@ -796,6 +808,31 @@ class Line(QGraphicsPathItem): def updatePath(self): """ update path when svg item moves """ + #Adjusting line for repositioned retangular grips + if self.startGripItem.parentItem().__class__.__name__ in list(rLGPlus.keys()): + for tgrip in rLGPlus[self.startGripItem.parentItem().__class__.__name__]: + if(float(tgrip[3]) == 0): + if self.startGripItem.m_location == tgrip[0]: + tempx,tempy = int(tgrip[1]),int(tgrip[2]) + self.startPoint.setX(self.startPoint.x()+tempx) + self.startPoint.setY(self.startPoint.y()+tempy) + else: + if self.startGripItem.m_location == tgrip[0] and self.startGripItem.size == float(tgrip[3]): + tempx,tempy = int(tgrip[1]),int(tgrip[2]) + self.startPoint.setX(self.startPoint.x()+tempx) + self.startPoint.setY(self.startPoint.y()+tempy) + if self.endGripItem.parentItem().__class__.__name__ in list(rLGPlus.keys()): + for tgrip in rLGPlus[self.endGripItem.parentItem().__class__.__name__]: + if(float(tgrip[3]) == 0): + if self.endGripItem.m_location == tgrip[0]: + tempx,tempy = int(tgrip[1]),int(tgrip[2]) + self.endPoint.setX(self.endPoint.x()+tempx) + self.endPoint.setY(self.endPoint.y()+tempy) + else: + if self.endGripItem.m_location == tgrip[0] and self.endGripItems.size == float(tgrip[3]): + tempx,tempy = int(tgrip[1]),int(tgrip[2]) + self.endPoint.setX(self.endPoint.x()+tempx) + self.endPoint.setY(self.endPoint.y()+tempy) path = QPainterPath(self.startPoint) self.updatePoints() |