#3255 Add convenience methods to caf::SelectionManager

This commit is contained in:
Gaute Lindkvist committed 2018-08-22 13:04:00 +02:00
1 parent 3ddf559856
commit 12202fe4e6
1 file changed
+26
@@ -121,6 +121,32 @@ public:
}
}
template <typename T>
T* selectedItemOfType(int selectionLevel = 0)
{
std::vector<T*> typedObjects;
this->objectsByType<T>(&typedObjects, selectionLevel);
if (!typedObjects.empty())
{
return typedObjects.front();
}
return nullptr;
}
template <typename T>
T* selectedItemAncestorOfType(int selectionLevel = 0)
{
PdmUiItem* item = this->selectedItem(selectionLevel);
PdmObjectHandle* selectedObject = dynamic_cast<PdmObjectHandle*>(item);
if (selectedObject)
{
T* ancestor = nullptr;
selectedObject->firstAncestorOrThisOfType(ancestor);
return ancestor;
}
return nullptr;
}
private:
SelectionManager();