On Sat, May 05, 2018 at 05:11:31PM +0000, Scott Kostyshak wrote: > On Sat, May 05, 2018 at 04:05:49PM +0000, Richard Kimberly Heck wrote: > > On 05/05/2018 11:56 AM, Scott Kostyshak wrote: > > > The attached patch is an attempt to only show the "Accept Change" and > > > "Reject Change" options in the context menu when there is a change in > > > the selection. > > > > > > It works well except if the selection is inside an inset. For example, > > > when in a LyX Note, ppos_beg and ppos_end refer to the position within > > > the note. Does each inset have its own ParagraphList? If so, how do I > > > access it? > > > > If it's an InsetText, then it has its own Text object, which has paragraphs: > > ParagraphList const & pars = theInset.text().paragraphs(); > > Thanks, Riki. that's exactly what I needed. New patch attached. > > The next problem is that I need to check all paragraphs on all depths. > For example, if there is a change inside a LyX Note, and I select the > LyX Note from the outside of the inset, isChanged() is false because I > guess it checks whether the entire note was changed, not the contents of > the note. > > I'll look into this.
I'm unsure what approach to take. One option would be to define "isChanged()" to return true if there is a change in the paragraph or in any paragraph within the paragraph. I think that currently, isChanged() checks only the top-level paragraph. I have no idea if this is a reasonable change to make. If that is not a correct approach, then I suppose that I need to check each paragraph on all levels myself. In this case, is there a way to iterate through all paragraphs and nested paragraphs of a selection? If there is not currently a way, would this be useful as a new helper method? Scott
signature.asc
Description: PGP signature