No description
Find a file
Frank Reininghaus 84b40da88d Make the code that removes items from KFileItemModel more robust
When we remove items from the model, we called the function
KFileItemModel::removeItems(const KFileItemList&, RemoveItemsBehavior).
This function then looked up the indexes of the items using the hash
m_items. This is wasteful in the situations when the indexes of the
removed items are known in advance (like when an expanded folder is
collapsed in Details View), and it can cause trouble if one item is
contained in the model multiple times (can happen when searching, and a
file both matches the search and is a child of a folder that matches
the search). Even if expanding folders in the search results list might
not be particularly useful most of the time, it makes sense to make the
model more robust to prevent crashes and other unexpected behavior in
such situations.

This patch makes the following changes to achieve that goal:

* Change the argument of removeItems() from KFileItemList to
  KItemRangeList. To make this work, the "look the indexes up in
  m_items" code is moved from that function to slotItemsDeleted(). In
  the other places where removeItems() is called, the indexes are
  calculated directly (which is not more difficult than determining the
  removed items as a KFileItemList, if one considers that we needed the
  function childItems(KFileItem) for that, which is not needed any more
  with this patch).

* Also removeFilteredChildren() takes a KItemRangeList now. Rather than
  putting the parent KFileItems into a QSet for O(1) lookup (which
  prevents O(N^2) worst case behavior for the entire function), it uses
  a QSet<ItemData*> now, which should even be more efficient (hashing a
  pointer is cheaper than hashing a KFileItem/KUrl).

BUG: 324371
BUG: 325359
FIXED-IN: 4.12.0
REVIEW: 113070
2013-10-07 09:26:51 +02:00
doc add info about plugins available in KHTML view only 2013-09-08 10:34:50 +02:00
dolphin Make the code that removes items from KFileItemModel more robust 2013-10-07 09:26:51 +02:00
kdepasswd SVN_SILENT made messages (.desktop file) 2013-08-15 03:59:57 +00:00
kdialog interpret backslash escapes in some more options 2012-07-01 13:19:23 +02:00
keditbookmarks Move bookmarks in reverse order so that their address remains valid. 2013-05-05 10:01:05 +02:00
kfind SVN_SILENT made messages (.desktop file) 2013-03-15 14:57:44 +01:00
konq-plugins SVN_SILENT made messages (.desktop file) 2013-10-06 04:10:57 +00:00
konqueror Merge remote-tracking branch 'origin/KDE/4.11' 2013-10-06 20:49:42 +02:00
lib SVN_SILENT made messages (.desktop file) 2013-08-25 04:11:41 +00:00
nsplugins SVN_SILENT made messages (.desktop file) 2013-10-06 04:10:57 +00:00
plasma SVN_SILENT made messages (.desktop file) 2013-08-05 06:51:18 +00:00
CMakeLists.txt Also list packages searched with the QUIET keyword 2013-06-28 16:38:17 +02:00
config-apps.h.cmake Dolphin reporting opened locations to activity manager 2012-08-15 08:22:30 +02:00
ConfigureChecks.cmake fix kinfocenter 2008-03-03 12:42:28 +00:00
COPYING readd missing copyright files 2011-02-28 17:34:12 +01:00
COPYING.DOC readd missing copyright files 2011-02-28 17:34:12 +01:00
COPYING.LIB readd missing copyright files 2011-02-28 17:34:12 +01:00
CTestConfig.cmake -add ctest config files for the dashboards at my.cdash.org 2010-03-22 22:05:44 +00:00
Mainpage.dox Typo in URL for doplhin 2008-09-16 18:19:06 +00:00
README Add apps/ and workspace/ directories along with README files so 2005-08-31 09:29:34 +00:00

KDE Base Applications consists of what runs on the desktop.  This module isn't a complete collection of essential applications that a user would expect on a desktop (such as e-mail and calculator).  This packages is the basic set of applications beyond the workspace that KDE applications can assume are installed.  These applications should have no problem running on Windows, OS X, Gnome, etc as stand alone applications if the user wanted to use them there.