]> cloud.milkyroute.net Git - dolphin.git/commit
Fix crashes in KFileItemModel::removeItems()
authorFrank Reininghaus <frank78ac@googlemail.com>
Tue, 29 Jan 2013 18:08:28 +0000 (19:08 +0100)
committerFrank Reininghaus <frank78ac@googlemail.com>
Tue, 29 Jan 2013 18:08:28 +0000 (19:08 +0100)
commit8371fb6d75e4c6985b0fe7a2c5bdb55783dfd811
tree7cd226e8a71231ffdfa3ab9e4a4784df64d3deee
parentef248162d028fd96e974da9fb7a8fb5b3336a8d6
Fix crashes in KFileItemModel::removeItems()

These crashes were caused by the recent commit
ff3267c6dcd0f6d0621b3a96b5462a9581a03883. It introduced two problems:

a) A logic error in the code that removes the ItemData pointers from
   m_itemData that could cause crashes if multiple item ranges are
   removed, and there were un-removed items behind the last one.
b) The implicit assumption that any call of removeItems() will actually
   result in items being removed in the model. This is incorrect if
   the model is first cleared and then the hidden-files setting is
   modified, which happens if "Save view properties for each folder" is
   enabled, and a folder where hidden files are shown is left. In that
   case, the dir lister emits itemsDeleted for the hidden items after
   they have been removed from the model due to the folder change.

I'll add a unit test covering these issues soon.

Many thanks to Romário Rios and Hrvoje Senjan for testing!

BUG: 314046
src/kitemviews/kfileitemmodel.cpp