개정판 a831ada4
issue #: fix LineNoTracer with manual endbreak
Change-Id: I16c0fba96704278c851097bb33fc164e518c223e
DTI_PID/DTI_PID/LineNoTracer.py | ||
---|---|---|
60 | 60 |
_from = lineno.prop('From') |
61 | 61 |
_to = lineno.prop('To') |
62 | 62 |
if _from and _to and lineno.empty(): |
63 |
connected_items = self.find_connected_objects(_from, to=_to) |
|
63 |
connected_items = self.find_connected_objects(_from, to=_to, primary=True)
|
|
64 | 64 |
if _from in connected_items and _to in connected_items: |
65 | 65 |
start = connected_items.index(_from) |
66 | 66 |
end = connected_items.index(_to) |
... | ... | |
254 | 254 |
humkyung 2018.05.17 try to connect both symbol and line |
255 | 255 |
humkyung 2018.06.22 order connected objects |
256 | 256 |
''' |
257 |
def find_connected_objects(self, start, to=None): |
|
257 |
def find_connected_objects(self, start, to=None, primary=False):
|
|
258 | 258 |
from EngineeringLineItem import QEngineeringLineItem |
259 | 259 |
from EngineeringEquipmentItem import QEngineeringEquipmentItem |
260 | 260 |
from SymbolSvgItem import SymbolSvgItem |
... | ... | |
276 | 276 |
#print('obj={} pool={}'.format(obj, pool)) |
277 | 277 |
|
278 | 278 |
match = False |
279 |
for end_break in self._end_breaks: |
|
280 |
if obj is end_break.owner or obj is end_break.prop('Connected Item'): |
|
281 |
match = True |
|
282 |
break |
|
279 |
if not primary: |
|
280 |
for end_break in self._end_breaks: |
|
281 |
if obj is end_break.owner or obj is end_break.prop('Connected Item'): |
|
282 |
match = True |
|
283 |
break |
|
283 | 284 |
|
284 | 285 |
if issubclass(type(obj), QEngineeringEquipmentItem): |
285 | 286 |
visited.pop(visited.index(obj)) |
내보내기 Unified diff