Update size order for folders

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
Trial97 2024-06-10 00:18:00 +03:00
parent 242ddbb7e1
commit 29d32f0d9a
No known key found for this signature in database
GPG Key ID: 55EF5DA53DB36318
9 changed files with 15 additions and 19 deletions

View File

@ -65,12 +65,12 @@ std::pair<Version, Version> DataPack::compatibleVersions() const
return s_pack_format_versions.constFind(m_pack_format).value();
}
int DataPack::compare(const Resource& other, SortType type, Qt::SortOrder order) const
int DataPack::compare(const Resource& other, SortType type) const
{
auto const& cast_other = static_cast<DataPack const&>(other);
switch (type) {
default:
return Resource::compare(other, type, order);
return Resource::compare(other, type);
case SortType::PACK_FORMAT: {
auto this_ver = packFormat();
auto other_ver = cast_other.packFormat();

View File

@ -56,7 +56,7 @@ class DataPack : public Resource {
bool valid() const override;
[[nodiscard]] int compare(Resource const& other, SortType type, Qt::SortOrder order = Qt::SortOrder::AscendingOrder) const override;
[[nodiscard]] int compare(Resource const& other, SortType type) const override;
[[nodiscard]] bool applyFilter(QRegularExpression filter) const override;
protected:

View File

@ -78,11 +78,11 @@ void Mod::setDetails(const ModDetails& details)
m_local_details = details;
}
int Mod::compare(const Resource& other, SortType type, Qt::SortOrder order) const
int Mod::compare(const Resource& other, SortType type) const
{
auto cast_other = dynamic_cast<Mod const*>(&other);
if (!cast_other)
return Resource::compare(other, type, order);
return Resource::compare(other, type);
switch (type) {
default:
@ -90,7 +90,7 @@ int Mod::compare(const Resource& other, SortType type, Qt::SortOrder order) cons
case SortType::NAME:
case SortType::DATE:
case SortType::SIZE:
return Resource::compare(other, type, order);
return Resource::compare(other, type);
case SortType::VERSION: {
auto this_ver = Version(version());
auto other_ver = Version(cast_other->version());

View File

@ -88,7 +88,7 @@ class Mod : public Resource {
bool valid() const override;
[[nodiscard]] int compare(Resource const& other, SortType type, Qt::SortOrder order = Qt::SortOrder::AscendingOrder) const override;
[[nodiscard]] int compare(Resource const& other, SortType type) const override;
[[nodiscard]] bool applyFilter(QRegularExpression filter) const override;
// Delete all the files of this mod

View File

@ -79,7 +79,7 @@ static void removeThePrefix(QString& string)
string = string.trimmed();
}
int Resource::compare(const Resource& other, SortType type, Qt::SortOrder order) const
int Resource::compare(const Resource& other, SortType type) const
{
switch (type) {
default:
@ -105,12 +105,11 @@ int Resource::compare(const Resource& other, SortType type, Qt::SortOrder order)
return -1;
break;
case SortType::SIZE: {
auto order_op = order == Qt::SortOrder::AscendingOrder ? 1 : -1;
if (this->type() != other.type()) {
if (this->type() == ResourceType::FOLDER)
return -1 * order_op;
return -1;
if (other.type() == ResourceType::FOLDER)
return 1 * order_op;
return 1;
}
if (sizeInfo() > other.sizeInfo())

View File

@ -55,11 +55,8 @@ class Resource : public QObject {
* > 0: 'this' comes after 'other'
* = 0: 'this' is equal to 'other'
* < 0: 'this' comes before 'other'
* the order is used to force items to be allways at top and not used for sorting
*/
[[nodiscard]] virtual int compare(Resource const& other,
SortType type = SortType::NAME,
Qt::SortOrder order = Qt::SortOrder::AscendingOrder) const;
[[nodiscard]] virtual int compare(Resource const& other, SortType type = SortType::NAME) const;
/** Returns whether the given filter should filter out 'this' (false),
* or if such filter includes the Resource (true).

View File

@ -615,7 +615,7 @@ SortType ResourceFolderModel::columnToSortKey(size_t column) const
auto const& resource_left = model->at(source_left.row());
auto const& resource_right = model->at(source_right.row());
auto compare_result = resource_left.compare(resource_right, column_sort_key, sortOrder());
auto compare_result = resource_left.compare(resource_right, column_sort_key);
if (compare_result == 0)
return QSortFilterProxyModel::lessThan(source_left, source_right);

View File

@ -94,12 +94,12 @@ std::pair<Version, Version> ResourcePack::compatibleVersions() const
return s_pack_format_versions.constFind(m_pack_format).value();
}
int ResourcePack::compare(const Resource& other, SortType type, Qt::SortOrder order) const
int ResourcePack::compare(const Resource& other, SortType type) const
{
auto const& cast_other = static_cast<ResourcePack const&>(other);
switch (type) {
default:
return Resource::compare(other, type, order);
return Resource::compare(other, type);
case SortType::PACK_FORMAT: {
auto this_ver = packFormat();
auto other_ver = cast_other.packFormat();

View File

@ -44,7 +44,7 @@ class ResourcePack : public Resource {
bool valid() const override;
[[nodiscard]] int compare(Resource const& other, SortType type, Qt::SortOrder order = Qt::SortOrder::AscendingOrder) const override;
[[nodiscard]] int compare(Resource const& other, SortType type) const override;
[[nodiscard]] bool applyFilter(QRegularExpression filter) const override;
protected: