개정판 edc78461
issue #587: reseved word has orthogonal line as owner
Change-Id: Ia1e194230602026165ec5c6b82015b1ebd6e957b
DTI_PID/DTI_PID/Shapes/EngineeringReservedWordTextItem.py | ||
---|---|---|
29 | 29 |
import sys |
30 | 30 |
|
31 | 31 |
try: |
32 |
# find line onwer parallel |
|
32 | 33 |
self.onwer = None |
33 | 34 |
dist = min(self.sceneBoundingRect().height(), self.sceneBoundingRect().width()) * 2 |
34 | 35 |
center = self.sceneBoundingRect().center() |
... | ... | |
74 | 75 |
|
75 | 76 |
if selected is not None: |
76 | 77 |
self.owner = selected |
78 |
return |
|
77 | 79 |
#print(self.owner) |
80 |
## up to here |
|
81 |
|
|
82 |
# fine line owner orthogonal |
|
83 |
if self.sceneBoundingRect().height() < self.sceneBoundingRect().width(): |
|
84 |
lines = vLines |
|
85 |
else: |
|
86 |
lines = hLines |
|
87 |
|
|
88 |
minDist = 30 |
|
89 |
for line in lines: |
|
90 |
dl = min(self.sceneBoundingRect().height(), self.sceneBoundingRect().width()) / 10 |
|
91 |
dx = dl if (line.connectors[0].sceneConnectPoint[0] - line.connectors[1].sceneConnectPoint[0]) > 0 else -dl |
|
92 |
dy = -dl if (line.connectors[0].sceneConnectPoint[1] - line.connectors[1].sceneConnectPoint[1]) > 0 else dl |
|
93 |
|
|
94 |
startPoint = line.endPoint() |
|
95 |
for index in range(30): |
|
96 |
point = (startPoint[0] + index * dx, startPoint[1] + index * dy) |
|
97 |
if self.sceneBoundingRect().contains(point[0], point[1]): |
|
98 |
if index < minDist: |
|
99 |
minDist = index |
|
100 |
selected = line |
|
101 |
break |
|
102 |
|
|
103 |
if selected is not None: |
|
104 |
self.owner = selected |
|
78 | 105 |
|
79 | 106 |
except Exception as ex: |
80 | 107 |
from App import App |
내보내기 Unified diff