Ignore application of default styles in DockerStylesComboModel

Review Request #110506 - Created May 18, 2013 and submitted

Information
Elvis Stansvik
calligra
master
319048
Reviewers
calligra
pstirnweiss
During the loading of the attached document (from bug #319048 ), DockerStylesComboModel::styleApplied is called with the default paragraph style as argument.

The function assumes that the source model can provide an index for the supplied style (see the calls to indexForCharacterStyle). But the source model explicitly avoids adding items for the default styles, so these calls will return an invalid index, which results in a -1 being added as a row to m_usedStyles. In the next call to styleApplied, this will result in an invalid internalId being used to try to get the corresponding style from the style manager. The invalid style pointer is then used, resulting in the crash described in the bug.

The attached patch turns DockerStylesComboModel::styleApplied into a no-op if the supplied style is either the default character style or the default paragraph styles, since there will never be any items for these in the source model.

I'm not sure this is the correct fix, so would be great if e.g. Pierre could have a look.
Tried to load the attached document before/after the fix. And the problem seems solved.

Files


Issues

  • 1
  • 0
  • 0
  • 1
Description From Last Updated
I'm not 100% sure but I think the test for the stylesType is not needed as a default style should ... Thorsten Zachmann Thorsten Zachmann
Thorsten Zachmann
Elvis Stansvik
Elvis Stansvik
Camilla Boemann
Commit Hook
Elvis Stansvik
Review request changed

Status: Closed (submitted)

Loading...