mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
fix display of folder sizes for empty folders
also fixes 1 byte error in size calculation for all folders
This commit is contained in:
parent
d74853ef85
commit
acc42f9189
|
@ -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))) {
|
||||
|
|
Loading…
Reference in a new issue