On Wed, Mar 14, 2007 at 11:09:03AM +0100, Abdelrazak Younes wrote: > >I'd rather do: > > > >- if (layout->labeltype == LABEL_SENSITIVE) { > >+ if (cur.innerInsetOfType(InsetBase::CAPTION_CODE) || > >layout->labeltype == LABEL_SENSITIVE) { > > Yes. That's what I meant in my previous comment (obviously InsetCaption > derives from InsetText, not LyXText). > > But instead of using 'cur' I'd rather have a new method in LyXText: > > InsetText * parent(); > InsetText const * parent() const; > > Then the above code will be > + if (parent()->lyxCode() == InsetBase::CAPTION_CODE) || > layout->labeltype == LABEL_SENSITIVE) { > > That would of course mean that we pass the Parent at LyXText > construction. I think that having access to the parent InsetText will > remove may hacks in the code.
Not having the parents has benefits, too. Removing the parent was one of the efforts in giving paragraphs (and consequently contained insets) a value-semantic. Access to the parent was given by DocIterators (or a cursor for that matter) This effort was not finished 100%. I am not sure why. However, it is probably time to decide whether we want parents (i.e. basically a treelike structure with simpla navigation but ugoly copy semantics as needed for undo) or not (i.e. sometimes cumbersome naviation but simple copies) - and than go for it 100%. Andre'