Skip to content

Commit eb9d897

Browse files
committed
Fix crash
1 parent 326ca03 commit eb9d897

File tree

1 file changed

+10
-16
lines changed

1 file changed

+10
-16
lines changed

src/Interface/Modules/Render/ViewScene.cc

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ namespace
7070
//------------------------------------------------------------------------------
7171
ViewSceneDialog::ViewSceneDialog(const std::string& name, ModuleStateHandle state,
7272
QWidget* parent /* = 0 */)
73-
: ModuleDialogGeneric(state, parent), mConfigurationDock(nullptr), shown_(false),
73+
: ModuleDialogGeneric(state, parent), mConfigurationDock(nullptr), shown_(false),
7474
shiftdown_(false), selected_(false),
7575
clippingPlaneIndex_(0),screenshotTaker_(nullptr), saveScreenshotOnNewGeometry_(false),
7676
gid_(new DialogIdGenerator(name))
@@ -130,7 +130,7 @@ ViewSceneDialog::ViewSceneDialog(const std::string& name, ModuleStateHandle stat
130130
//Set background Color
131131
auto colorStr = state_->getValue(Modules::Render::ViewScene::BackgroundColor).toString();
132132
bgColor_ = checkColorSetting(colorStr, Qt::black);
133-
133+
134134
auto spire = mSpire.lock();
135135
spire->setBackgroundColor(bgColor_);
136136
}
@@ -154,13 +154,13 @@ void ViewSceneDialog::setInitialLightValues()
154154

155155
auto light1str = state_->getValue(Modules::Render::ViewScene::Light1Color).toString();
156156
QColor light1 = checkColorSetting(light1str, Qt::white);
157-
157+
158158
auto light2str = state_->getValue(Modules::Render::ViewScene::Light2Color).toString();
159159
QColor light2 = checkColorSetting(light2str, Qt::white);
160-
160+
161161
auto light3str = state_->getValue(Modules::Render::ViewScene::Light3Color).toString();
162162
QColor light3 = checkColorSetting(light3str, Qt::white);
163-
163+
164164
auto spire = mSpire.lock();
165165
if (spire)
166166
{
@@ -401,34 +401,30 @@ void ViewSceneDialog::closeEvent(QCloseEvent *evt)
401401

402402
void ViewSceneDialog::newGeometryValue()
403403
{
404-
LOG_DEBUG("ViewSceneDialog::asyncExecute before locking");
405-
406404
Guard lock(Modules::Render::ViewScene::mutex_.get());
407405

408-
LOG_DEBUG("ViewSceneDialog::asyncExecute after locking");
409-
410406
auto spire = mSpire.lock();
411407
if (!spire)
412408
return;
413409
spire->removeAllGeomObjects();
414-
410+
415411
std::vector<QString> displayNames;
416412
std::vector<std::string> validObjects;
417-
Modules::Render::ViewScene::GeomListPtr portGeometries;
413+
std::vector<GeometryBaseHandle> allGeoms;
414+
418415
// Grab the geomData transient value.
419416
auto geomDataTransient = state_->getTransientValue(Parameters::GeomData);
420417
if (geomDataTransient && !geomDataTransient->empty())
421418
{
422-
portGeometries = transient_value_cast<Modules::Render::ViewScene::GeomListPtr>(geomDataTransient);
419+
auto portGeometries = transient_value_cast<Modules::Render::ViewScene::GeomListPtr>(geomDataTransient);
423420
if (!portGeometries)
424421
{
425422
LOG_DEBUG("Logical error: ViewSceneDialog received an empty list.");
426423
return;
427424
}
425+
std::copy(portGeometries->begin(), portGeometries->end(), std::back_inserter(allGeoms));
428426
}
429427

430-
std::vector<GeometryBaseHandle> allGeoms(portGeometries->begin(), portGeometries->end());
431-
432428
if (scaleBarGeom_ && scaleBar_.visible)
433429
{
434430
allGeoms.push_back(scaleBarGeom_);
@@ -440,7 +436,6 @@ void ViewSceneDialog::newGeometryValue()
440436
}
441437

442438
displayNames = mConfigurationDock->visibleItems().synchronize(allGeoms);
443-
444439
int port = 0;
445440
for (auto it = allGeoms.begin(); it != allGeoms.end(); ++it, ++port)
446441
{
@@ -456,7 +451,6 @@ void ViewSceneDialog::newGeometryValue()
456451
}
457452
}
458453
}
459-
460454
if (!validObjects.empty())
461455
spire->gcInvalidObjects(validObjects);
462456

0 commit comments

Comments
 (0)