Commit acc42f91 authored by Ilia Kats's avatar Ilia Kats
Browse files

fix display of folder sizes for empty folders

also fixes 1 byte error in size calculation for all folders
parent d74853ef
Pipeline #44383 passed with stage
in 6 minutes and 49 seconds
......@@ -53,20 +53,16 @@ QString KFileItemListWidgetInformant::roleText(const QByteArray& role,
if (role == "size") {
if (values.value("isDir").toBool()) {
// The item represents a directory.
if (!roleValue.isNull()) {
const int count = values.value("count").toInt();
if (count > 0) {
if (DetailsModeSettings::directorySizeCount()) {
// Show the number of sub directories instead of the file size of the directory.
text = i18ncp("@item:intable", "%1 item", "%1 items", count);
} else {
// if we have directory size available
if (roleValue != -1) {
const KIO::filesize_t size = roleValue.value<KIO::filesize_t>();
text = KFormat().formatByteSize(size);
}
}
if (!roleValue.isNull() && roleValue != -1) {
// The item represents a directory.
if (DetailsModeSettings::directorySizeCount()) {
// Show the number of sub directories instead of the file size of the directory.
const int count = values.value("count").toInt();
text = i18ncp("@item:intable", "%1 item", "%1 items", count);
} else {
// if we have directory size available
const KIO::filesize_t size = roleValue.value<KIO::filesize_t>();
text = KFormat().formatByteSize(size);
}
}
} else {
......
......@@ -776,9 +776,7 @@ void KFileItemModelRolesUpdater::slotDirectoryContentsCountReceived(const QStrin
if (getSizeRole) {
data.insert("count", count);
if (size != -1) {
data.insert("size", QVariant::fromValue(size));
}
data.insert("size", QVariant::fromValue(size));
}
if (getIsExpandableRole) {
data.insert("isExpandable", count > 0);
......
......@@ -35,6 +35,7 @@ KDirectoryContentsCounterWorker::CountResult walkDir(const QString &dirPath,
auto dir = QT_OPENDIR(QFile::encodeName(dirPath));
if (dir) {
count = 0;
size = 0;
QT_STATBUF buf;
while ((dirEntry = QT_READDIR(dir))) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment