RenderViewStrategy & RendererImplementationBase3D::strategy() const { assert(m_emptyStrategy); if (auto s = strategyIfEnabled()) { return *s; } return *m_emptyStrategy; }
TEST_F(DataMapping_test, ViewAndPlotViewCleanedUp) { auto img = vtkSmartPointer<vtkImageData>::New(); img->SetDimensions(4, 6, 1); img->AllocateScalars(VTK_FLOAT, 1); auto imageObject = std::make_unique<ImageDataObject>("TestImage", *img); auto imgPointer = imageObject.get(); env->dataSetHander.takeData(std::move(imageObject)); QPointer<AbstractRenderView> view, plotView; { QMainWindow mainWindow; view = env->mapping.openInRenderView({ imgPointer }); ASSERT_TRUE(view); mainWindow.addDockWidget(Qt::LeftDockWidgetArea, view->dockWidgetParent()); auto impl3D = dynamic_cast<RendererImplementation3D *>(&view->implementation()); ASSERT_TRUE(impl3D); auto impl3Dtest = static_cast<TestRendererImplementation3D *>(impl3D); // hacked... auto strategy = dynamic_cast<RenderViewStrategy2D *>(impl3Dtest->strategyIfEnabled()); ASSERT_TRUE(strategy); strategy->startProfilePlot(); ASSERT_EQ(2, env->mapping.renderViews().size()); auto first = env->mapping.renderViews()[0]; auto second = env->mapping.renderViews()[1]; plotView = view == first ? second : first; mainWindow.addDockWidget(Qt::LeftDockWidgetArea, plotView->dockWidgetParent()); qApp->processEvents(); env.reset(); } ASSERT_FALSE(view); ASSERT_FALSE(plotView); }