#3214 Use template function to get referencing objects of specified type

This commit is contained in:
Magne Sjaastad
2018-08-15 13:01:11 +02:00
parent 97c3b9efea
commit 59f9d189e5
8 changed files with 45 additions and 58 deletions
@@ -221,17 +221,18 @@ void RimGridView::replaceRangeFilterCollectionWithOverride()
//--------------------------------------------------------------------------------------------------
RimViewController* RimGridView::viewController() const
{
RimViewController* viewController = nullptr;
std::vector<caf::PdmObjectHandle*> reffingObjs;
std::vector<RimViewController*> objects;
this->objectsWithReferringPtrFieldsOfType(objects);
this->objectsWithReferringPtrFields(reffingObjs);
for (size_t i = 0; i < reffingObjs.size(); ++i)
for (auto v : objects)
{
viewController = dynamic_cast<RimViewController*>(reffingObjs[i]);
if (viewController) break;
if (v)
{
return v;
}
}
return viewController;
return nullptr;
}
//--------------------------------------------------------------------------------------------------
@@ -352,18 +353,18 @@ void RimGridView::selectOverlayInfoConfig()
//--------------------------------------------------------------------------------------------------
RimViewLinker* RimGridView::viewLinkerIfMasterView() const
{
RimViewLinker* viewLinker = nullptr;
std::vector<caf::PdmObjectHandle*> reffingObjs;
std::vector<RimViewLinker*> objects;
this->objectsWithReferringPtrFieldsOfType(objects);
this->objectsWithReferringPtrFields(reffingObjs);
for (size_t i = 0; i < reffingObjs.size(); ++i)
for (auto viewLinker : objects)
{
viewLinker = dynamic_cast<RimViewLinker*>(reffingObjs[i]);
if (viewLinker) break;
if (viewLinker)
{
return viewLinker;
}
}
return viewLinker;
return nullptr;
}