Making collapsables derive from InsetText raises some problems, mainly there is one cached dimension/position missing. This problem is semi-addressed in insettext by not using its cached dim_ but use instead the dimension of its LyXText. dim_ is then overwritten in InsetCollapsable.
The problem is that then for instance InsetText::ascent (who uses dim_) still refers to the ascent of the InsetCollapsable. In fact, once dim_ is overwritten there is no way of accessing the InsetText dimension from outside. So: either we add an insetdim_ member in InsetCollapsable and store the InsetText's dimension there, and we continue to overwrite dim_ (I have a patch for this), or we add an collapsabledim_ member and we overload all methods accessing dim_ to use that one instead. The last option seems the cleanest to me, but a lot of burden and duplication. All this raises some doubts about the 'cleaningness' of deriving collapsables from insettext IMHO. Alfredo