Selection descriptor
Introduce new class "SelectionDescriptor".
Copy of the class docu:
Describes a selection (various possibilities and the current one).
Usually a selection is presented as a combo box. Right now with SessionModel still in place, in most cases a selection changes the current item of a group item, i.e. it changes the class of a certain child item (e.g. XRotationItem*/YRotationItem*/...).
The template parameter defines the type of the current item. This can be a pointer to a common base class (like RotationItem*), but it also can be a std::variant<...>, which is useful if no dedicated common base class exists (like for the roughness items LayerZeroRoughnessItem and LayerBasicRoughnessItem).
By using this class, the underlying data scheme is hidden from the user of the data. This e.g. eases SessionItem migration. The underlying implementation can be a GroupItem, a simple pointer member, a std::variant or any other construction to define a selection.