NOISSUE reimplement package dependencies

It is now stored as a hashmap
There is also a parentUid to limit depsolving by encapsulating by version
This commit is contained in:
Petr Mrázek
2017-03-24 02:26:06 +01:00
parent 77f27a628f
commit da4ae1bc1e
10 changed files with 118 additions and 143 deletions

View File

@ -43,6 +43,9 @@
#include "MultiMC.h"
#include <meta/Index.h>
#include <meta/VersionList.h>
class IconProxy : public QIdentityProxyModel
{
Q_OBJECT
@ -372,7 +375,7 @@ int VersionPage::doUpdate()
void VersionPage::on_forgeBtn_clicked()
{
auto vlist = ENV.getVersionList("net.minecraftforge");
auto vlist = ENV.metadataIndex()->get("net.minecraftforge");
if(!vlist)
{
return;
@ -391,7 +394,7 @@ void VersionPage::on_forgeBtn_clicked()
void VersionPage::on_liteloaderBtn_clicked()
{
auto vlist = ENV.getVersionList("com.liteloader");
auto vlist = ENV.metadataIndex()->get("com.liteloader");
if(!vlist)
{
return;

View File

@ -34,17 +34,15 @@ using namespace Meta;
static QString formatRequires(const VersionPtr &version)
{
QStringList lines;
for (const Reference &ref : version->requires())
auto & reqs = version->requires();
auto iter = reqs.begin();
while (iter != reqs.end())
{
const QString readable = ENV.metadataIndex()->hasUid(ref.uid()) ? ENV.metadataIndex()->get(ref.uid())->humanReadable() : ref.uid();
if (ref.version().isEmpty())
{
lines.append(readable);
}
else
{
lines.append(QString("%1 (%2)").arg(readable, ref.version()));
}
auto &uid = iter.key();
auto &version = iter.value();
const QString readable = ENV.metadataIndex()->hasUid(uid) ? ENV.metadataIndex()->get(uid)->humanReadable() : uid;
lines.append(QString("%1 (%2)").arg(readable, version));
iter++;
}
return lines.join('\n');
}