I have made two substantial changes to the piectable related to styles:
(1) when applying a style to something that already has a style, we first remove all attributes and properties associated with the old style and only then add the attributes and properties of the new style. In the past we simply applied the properties of the new style over all existing properties which meant that the result was not the formating of the new style but a union of all previously used styles. (2) when applying Paragraph style, we apply it to the Paragraph alone not to the paragraph contents. In the past we did the latter, i.e., applying Normal to a block resulted in all spans having also the attribute style="Normal"; this is wrong. (Note that runs retrieve their formating both from the block and span APs, so that any character properties defined in Normal automatically filter down the runs, without the need to apply Normal directly to the runs). This change greatly simplifies changeStruxFmt, and once we are satisified the new code is working, we can simplify it further (at the moment this has been done so that it would could be easily reverted). These changes go some way toward fixing major bug 1939; there is one more issue that needs to be resolved, and on which I need Martin's input. Because the list-specific attributes are not part of the style definitions, applying say Normal style to a list style will not remove the numbering, etc. It would seem to me that the best thing would be to add function to the style class bool isNumbered(), which would return true for all the list styles, numbered headings, etc., and which could be used to determine whether to remove the list-specific attributes and related stuff. Tomas changed: a number of piecetable files
