On 03/10/2014 04:02 PM, Vincent van Ravesteijn wrote:
Richard Heck schreef op 10-3-2014 20:54:
On 03/10/2014 03:32 PM, Jürgen Spitzmüller wrote:
2014-03-10 19:55 GMT+01:00 Vincent van Ravesteijn:

    The problem is caused by 50bcd6ed7 (Use the master buffer's
    param when compiling as a child (#8893)).


OK, then we need to re-add the children's authors at these two points, apparently. What's the best way to do this?

Another issue about master-child relationships. Having two separate copies of these structures just causes all kinds of problems. There is a big part of me that thinks that, if a document is opened as a child, then it should not be treated as having its own BufferParams at all. Though I know this will cause all kinds of problems.

For the present, I don't see how we can just add the authors from the children at this sort of point. We could see this same kind of problem if View>Source were open (which, again, could be Uwe's problem). So, if we are going to modify the BufferParams, they'll stay modified, and we might as well do it at the beginning of the validation or export routines. I guess we could introduce a temporary BufferParams, but that would be messy at best, and it would probably iterate, as well: We'd end up with tons of temporary copies.

I'm trying to think if there is some way we could modify what the master Buffer regards as its authorlist when we are in the process of exporting. Since validate() is only called during export, that would also take care of that case. I.e., the thought would be to change BufferParams::authors(), at least the const & version, so that it returns something with the children in it if we're exporting. At present, only Buffer knows if we are exporting, but MarkAsExporting could easily be modified to deal with that.


Yes, I think we should create a BufferParams when we start exporting. Collecting all data from the childs and merge it with master's, and pass it along with the export routines.

I wonder though whether this is doable.

If we revert the offending commit, we will be back to 2.0.x behaviour. Wouldn't this be acceptable?

It wouldn't be terrible. But we should definitely try to deal with the root cause somehow.

Richard

Reply via email to