@@ -321,7 +321,7 @@ def boundingRect(self):
321
321
322
322
:py:meth:`controlPointRect`, :py:meth:`scaledBoundingRect`
323
323
"""
324
- if self .__data .boundingRect is None :
324
+ if self .__data .boundingRect is None or self . __data . boundingRect . width () < 0 :
325
325
return QRectF ()
326
326
return self .__data .boundingRect
327
327
@@ -337,7 +337,7 @@ def controlPointRect(self):
337
337
338
338
:py:meth:`boundingRect()`, :py:meth:`scaledBoundingRect()`
339
339
"""
340
- if self .__data .pointRect is None :
340
+ if self .__data .pointRect is None or self . __data . pointRect . width () < 0 :
341
341
return QRectF ()
342
342
return self .__data .pointRect
343
343
@@ -407,7 +407,10 @@ def defaultSize(self):
407
407
408
408
:py:meth:`setDefaultSize()`, :py:meth:`boundingRect()`
409
409
"""
410
- if self .__data .defaultSize is not None :
410
+ if (
411
+ self .__data .defaultSize is not None
412
+ and not self .__data .defaultSize .isEmpty ()
413
+ ):
411
414
return self .__data .defaultSize
412
415
return self .boundingRect ().size ()
413
416
@@ -487,9 +490,10 @@ def render(self, *args):
487
490
sx = 1.0
488
491
sy = 1.0
489
492
if self .__data .pointRect is not None :
490
- sx = rect .width () / self .__data .pointRect .width ()
491
- if self .__data .pointRect is not None :
492
- sy = rect .height () / self .__data .pointRect .height ()
493
+ if self .__data .pointRect .width () > 0.0 :
494
+ sx = rect .width () / self .__data .pointRect .width ()
495
+ if self .__data .pointRect .height () > 0.0 :
496
+ sy = rect .height () / self .__data .pointRect .height ()
493
497
scalePens = not bool (self .__data .renderHints & self .RenderPensUnscaled )
494
498
for info in self .__data .pathInfos :
495
499
ssx = info .scaleFactorX (self .__data .pointRect , rect , scalePens )
@@ -741,13 +745,13 @@ def updateBoundingRect(self, rect):
741
745
cr = painter .clipRegion ().boundingRect ()
742
746
cr = painter .transform ().mapRect (cr )
743
747
br &= cr
744
- if self .__data .boundingRect is None :
748
+ if self .__data .boundingRect is None and self . __data . boundingRect . width () < 0 :
745
749
self .__data .boundingRect = br
746
750
else :
747
751
self .__data .boundingRect |= br
748
752
749
753
def updateControlPointRect (self , rect ):
750
- if self .__data .pointRect is None :
754
+ if self .__data .pointRect is None and self . __data . pointRect . width () < 0.0 :
751
755
self .__data .pointRect = rect
752
756
else :
753
757
self .__data .pointRect |= rect
0 commit comments