made folder size reflect the number of elements
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
parent
6b777653a5
commit
26931475ae
@ -110,7 +110,7 @@ QVariant ModFolderModel::data(const QModelIndex& index, int role) const
|
||||
return provider.value();
|
||||
}
|
||||
case SizeColumn:
|
||||
return StringUtils::humanReadableFileSize(m_resources[row]->size(), true);
|
||||
return m_resources[row]->sizeStr();
|
||||
default:
|
||||
return QVariant();
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include <QRegularExpression>
|
||||
|
||||
#include "FileSystem.h"
|
||||
#include "StringUtils.h"
|
||||
|
||||
Resource::Resource(QObject* parent) : QObject(parent) {}
|
||||
|
||||
@ -19,18 +20,18 @@ void Resource::setFile(QFileInfo file_info)
|
||||
parseFile();
|
||||
}
|
||||
|
||||
qint64 calculateFileSize(const QFileInfo& file)
|
||||
QString calculateFileSize(const QFileInfo& file)
|
||||
{
|
||||
if (file.isDir()) {
|
||||
QDirIterator it(file.absoluteFilePath(), QDir::Files, QDirIterator::Subdirectories);
|
||||
qint64 total = 0;
|
||||
while (it.hasNext()) {
|
||||
it.next();
|
||||
total += it.fileInfo().size();
|
||||
auto dir = QDir(file.absoluteFilePath());
|
||||
dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot);
|
||||
auto count = dir.count();
|
||||
auto str = QObject::tr("item");
|
||||
if (count != 1)
|
||||
str = QObject::tr("items");
|
||||
return QString("%1 %2").arg(QString::number(count), str);
|
||||
}
|
||||
return total;
|
||||
}
|
||||
return file.size();
|
||||
return StringUtils::humanReadableFileSize(file.size(), true);
|
||||
}
|
||||
|
||||
void Resource::parseFile()
|
||||
@ -41,7 +42,7 @@ void Resource::parseFile()
|
||||
|
||||
m_internal_id = file_name;
|
||||
|
||||
m_size = calculateFileSize(m_file_info);
|
||||
m_size_str = calculateFileSize(m_file_info);
|
||||
if (m_file_info.isDir()) {
|
||||
m_type = ResourceType::FOLDER;
|
||||
m_name = file_name;
|
||||
@ -106,9 +107,9 @@ std::pair<int, bool> Resource::compare(const Resource& other, SortType type) con
|
||||
return { -1, type == SortType::DATE };
|
||||
break;
|
||||
case SortType::SIZE: {
|
||||
if (size() > other.size())
|
||||
if (fileinfo().size() > other.fileinfo().size())
|
||||
return { 1, type == SortType::SIZE };
|
||||
if (size() < other.size())
|
||||
if (fileinfo().size() < other.fileinfo().size())
|
||||
return { -1, type == SortType::SIZE };
|
||||
break;
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ class Resource : public QObject {
|
||||
[[nodiscard]] auto internal_id() const -> QString { return m_internal_id; }
|
||||
[[nodiscard]] auto type() const -> ResourceType { return m_type; }
|
||||
[[nodiscard]] bool enabled() const { return m_enabled; }
|
||||
[[nodiscard]] qint64 size() const { return m_size; }
|
||||
[[nodiscard]] QString sizeStr() const { return m_size_str; }
|
||||
|
||||
[[nodiscard]] virtual auto name() const -> QString { return m_name; }
|
||||
[[nodiscard]] virtual bool valid() const { return m_type != ResourceType::UNKNOWN; }
|
||||
@ -118,5 +118,5 @@ class Resource : public QObject {
|
||||
bool m_is_resolving = false;
|
||||
bool m_is_resolved = false;
|
||||
int m_resolution_ticket = 0;
|
||||
qint64 m_size = 0;
|
||||
QString m_size_str;
|
||||
};
|
||||
|
@ -417,7 +417,7 @@ QVariant ResourceFolderModel::data(const QModelIndex& index, int role) const
|
||||
case DateColumn:
|
||||
return m_resources[row]->dateTimeChanged();
|
||||
case SizeColumn:
|
||||
return StringUtils::humanReadableFileSize(m_resources[row]->size(), true);
|
||||
return m_resources[row]->sizeStr();
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ QVariant ResourcePackFolderModel::data(const QModelIndex& index, int role) const
|
||||
case DateColumn:
|
||||
return m_resources[row]->dateTimeChanged();
|
||||
case SizeColumn:
|
||||
return StringUtils::humanReadableFileSize(m_resources[row]->size(), true);
|
||||
return m_resources[row]->sizeStr();
|
||||
|
||||
default:
|
||||
return {};
|
||||
|
@ -79,7 +79,7 @@ QVariant TexturePackFolderModel::data(const QModelIndex& index, int role) const
|
||||
case DateColumn:
|
||||
return m_resources[row]->dateTimeChanged();
|
||||
case SizeColumn:
|
||||
return StringUtils::humanReadableFileSize(m_resources[row]->size(), true);
|
||||
return m_resources[row]->sizeStr();
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user