feat: Use version filter when searching mods
This commit is contained in:
@ -3,6 +3,8 @@
|
||||
#include <QString>
|
||||
#include <QList>
|
||||
|
||||
#include "Version.h"
|
||||
|
||||
namespace ModPlatform {
|
||||
class ListModel;
|
||||
}
|
||||
@ -22,7 +24,7 @@ class ModAPI {
|
||||
QString search;
|
||||
QString sorting;
|
||||
ModLoaderType mod_loader;
|
||||
QString version;
|
||||
std::list<Version> versions;
|
||||
};
|
||||
|
||||
virtual void searchMods(CallerType* caller, SearchArgs&& args) const = 0;
|
||||
@ -30,7 +32,7 @@ class ModAPI {
|
||||
|
||||
struct VersionSearchArgs {
|
||||
QString addonId;
|
||||
QList<QString> mcVersions;
|
||||
std::list<Version> mcVersions;
|
||||
ModLoaderType loader;
|
||||
};
|
||||
|
||||
@ -53,4 +55,16 @@ class ModAPI {
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
protected:
|
||||
inline auto getGameVersionsString(std::list<Version> mcVersions) const -> QString
|
||||
{
|
||||
QString s;
|
||||
for(auto& ver : mcVersions){
|
||||
s += ver.toString();
|
||||
if(ver != mcVersions.back())
|
||||
s += ",";
|
||||
}
|
||||
return s;
|
||||
}
|
||||
};
|
||||
|
@ -22,7 +22,7 @@ class FlameAPI : public NetworkModAPI {
|
||||
.arg(args.search)
|
||||
.arg(args.sorting)
|
||||
.arg(args.mod_loader)
|
||||
.arg(args.version);
|
||||
.arg(getGameVersionsString(args.versions));
|
||||
};
|
||||
|
||||
inline auto getVersionsURL(VersionSearchArgs& args) const -> QString override
|
||||
|
@ -27,7 +27,7 @@ class ModrinthAPI : public NetworkModAPI {
|
||||
.arg(args.search)
|
||||
.arg(args.sorting)
|
||||
.arg(getModLoaderString(args.mod_loader))
|
||||
.arg(args.version);
|
||||
.arg(getGameVersionsString(args.versions));
|
||||
};
|
||||
|
||||
inline auto getVersionsURL(VersionSearchArgs& args) const -> QString override
|
||||
@ -40,17 +40,6 @@ class ModrinthAPI : public NetworkModAPI {
|
||||
.arg(getModLoaderString(args.loader));
|
||||
};
|
||||
|
||||
inline auto getGameVersionsString(QList<QString> mcVersions) const -> QString
|
||||
{
|
||||
QString s;
|
||||
for(int i = 0; i < mcVersions.count(); i++){
|
||||
s += mcVersions.at(i);
|
||||
if(i < mcVersions.count() - 1)
|
||||
s += ",";
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
static auto getModLoaderString(ModLoaderType type) -> const QString
|
||||
{
|
||||
if (type == Unspecified)
|
||||
|
Reference in New Issue
Block a user