@@ -432,12 +432,8 @@ void DrawViewPart::postHlrTasks(void)
432
432
addReferencesToGeom ();
433
433
addShapes2d ();
434
434
435
- // dimensions and balloons need to be recomputed here because their
435
+ // balloons need to be recomputed here because their
436
436
// references will be invalid until the geometry exists
437
- std::vector<TechDraw::DrawViewDimension*> dims = getDimensions ();
438
- for (auto & d : dims) {
439
- d->recomputeFeature ();
440
- }
441
437
std::vector<TechDraw::DrawViewBalloon*> bals = getBalloons ();
442
438
for (auto & b : bals) {
443
439
b->recomputeFeature ();
@@ -457,6 +453,24 @@ void DrawViewPart::postHlrTasks(void)
457
453
requestPaint ();
458
454
}
459
455
456
+ // run any tasks that need to been done after faces are available
457
+ void DrawViewPart::postFaceExtractionTasks (void )
458
+ {
459
+ // Some centerlines depend on faces so we could not add CL geometry before now
460
+ addCenterLinesToGeom ();
461
+
462
+ // Dimensions need to be recomputed here because their
463
+ // references will be invalid until all the geometry exists,
464
+ // specifically cosmetic centerlines
465
+ std::vector<TechDraw::DrawViewDimension*> dims = getDimensions ();
466
+ for (auto & d : dims) {
467
+ d->recomputeFeature ();
468
+ }
469
+
470
+ requestPaint ();
471
+ }
472
+
473
+
460
474
// ! make faces from the edge geometry
461
475
void DrawViewPart::extractFaces ()
462
476
{
@@ -662,8 +676,9 @@ void DrawViewPart::onFacesFinished(void)
662
676
QObject::disconnect (connectFaceWatcher);
663
677
showProgressMessage (getNameInDocument (), " has finished extracting faces" );
664
678
665
- // some centerlines depend on faces so we could not add CL geometry before now
666
- addCenterLinesToGeom ();
679
+ // Now we can recompute Dimensions and do other tasks possibly depending on Face extraction
680
+ postFaceExtractionTasks ();
681
+
667
682
requestPaint ();
668
683
}
669
684
0 commit comments