Merge pull request #27 from flowln/ftb_install_improve

This commit is contained in:
Sefa Eyeoglu
2022-10-19 13:51:35 +02:00
committed by GitHub
10 changed files with 129 additions and 114 deletions

View File

@ -103,6 +103,8 @@ void ListModel::getLogo(const QString &logo, const QString &logoUrl, LogoCallbac
void ListModel::request()
{
m_aborted = false;
beginResetModel();
modpacks.clear();
endResetModel();
@ -117,6 +119,12 @@ void ListModel::request()
QObject::connect(netJob, &NetJob::failed, this, &ListModel::requestFailed);
}
void ListModel::abortRequest()
{
m_aborted = jobPtr->abort();
jobPtr.reset();
}
void ListModel::requestFinished()
{
jobPtr.reset();
@ -162,6 +170,9 @@ void ListModel::requestPack()
void ListModel::packRequestFinished()
{
if (!jobPtr || m_aborted)
return;
jobPtr.reset();
remainingPacks.removeOne(currentPack);

View File

@ -47,9 +47,13 @@ public:
QVariant data(const QModelIndex &index, int role) const override;
void request();
void abortRequest();
void getLogo(const QString &logo, const QString &logoUrl, LogoCallback callback);
[[nodiscard]] bool isMakingRequest() const { return jobPtr.get(); }
[[nodiscard]] bool wasAborted() const { return m_aborted; }
private slots:
void requestFinished();
void requestFailed(QString reason);
@ -65,6 +69,8 @@ private:
void requestLogo(QString file, QString url);
private:
bool m_aborted = false;
QList<ModpacksCH::Modpack> modpacks;
LogoMap m_logoMap;

View File

@ -105,7 +105,7 @@ void FtbPage::retranslate()
void FtbPage::openedImpl()
{
if(!initialised)
if(!initialised || listModel->wasAborted())
{
listModel->request();
initialised = true;
@ -114,6 +114,12 @@ void FtbPage::openedImpl()
suggestCurrent();
}
void FtbPage::closedImpl()
{
if (listModel->isMakingRequest())
listModel->abortRequest();
}
void FtbPage::suggestCurrent()
{
if(!isOpened)

View File

@ -78,6 +78,7 @@ public:
void retranslate() override;
void openedImpl() override;
void closedImpl() override;
bool eventFilter(QObject * watched, QEvent * event) override;