refactor: move NetJob away from ModModel to ModAPI

This is done so that 1. ModAPI behaves more like an actual API instead
of just a helper, and 2. Allows for more easily creating other mod
providers that may or may not use network tasks (foreshadowing lol)
This commit is contained in:
flow
2022-03-07 16:22:57 -03:00
parent 39bd04f06f
commit f714adf6d2
14 changed files with 230 additions and 135 deletions

View File

@ -1,9 +1,10 @@
#pragma once
#include <qjsondocument.h>
#include <QAbstractListModel>
#include "modplatform/ModIndex.h"
#include "modplatform/ModAPI.h"
#include "modplatform/ModIndex.h"
#include "net/NetJob.h"
class ModPage;
@ -26,6 +27,8 @@ class ListModel : public QAbstractListModel {
QVariant data(const QModelIndex& index, int role) const override;
Qt::ItemFlags flags(const QModelIndex& index) const override;
void setActiveJob(NetJob::Ptr ptr) { jobPtr = ptr; }
bool canFetchMore(const QModelIndex& parent) const override;
void fetchMore(const QModelIndex& parent) override;
@ -34,10 +37,14 @@ class ListModel : public QAbstractListModel {
virtual void requestModVersions(const ModPlatform::IndexedPack& current);
protected slots:
virtual void searchRequestFinished() = 0;
public slots:
virtual void searchRequestFinished(QJsonDocument& doc) = 0;
void searchRequestFailed(QString reason);
void versionRequestSucceeded(QJsonDocument doc, QString addonId);
protected slots:
void logoFailed(QString logo);
void logoLoaded(QString logo, QIcon out);