From: Peter Penz Date: Sat, 9 Jun 2012 11:34:27 +0000 (+0200) Subject: Folders Panel: Also count directory links X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/dbf233ea28fc895e9e4c235cd95a9adba0c977a8?ds=sidebyside Folders Panel: Also count directory links ... otherwise no expansion toggle will be shown. The implementation is a compromise between performance and correctness: If the directory contains links that are not directories, an unnecessary expansion toggle will be shown. But this is better than showing no expansion toggle in case if the directory contains links that point to other directories. BUG: 299997 FIXED-IN: 4.9.0 --- diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp index 5418c3f9c..e07d1135e 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -1085,9 +1085,14 @@ int KFileItemModelRolesUpdater::subItemsCount(const QString& path) const } } - // If only directories are counted, consider an unknown file type also - // as directory instead of trying to do an expensive stat() (see bug 292642). - if (!showFoldersOnly || dirEntry->d_type == DT_DIR || dirEntry->d_type == DT_UNKNOWN) { + // If only directories are counted, consider an unknown file type and links also + // as directory instead of trying to do an expensive stat() + // (see bugs 292642 and 299997). + const bool countEntry = !showFoldersOnly || + dirEntry->d_type == DT_DIR || + dirEntry->d_type == DT_LNK || + dirEntry->d_type == DT_UNKNOWN; + if (countEntry) { ++count; } }