Merge pull request #3690 from jamierocks/ftb-search-edge
NOISSUE Fix edgecase where new searches won't be processed
This commit is contained in:
commit
5400d4e613
@ -106,21 +106,22 @@ void ListModel::getLogo(const QString &logo, const QString &logoUrl, LogoCallbac
|
|||||||
|
|
||||||
void ListModel::searchWithTerm(const QString &term)
|
void ListModel::searchWithTerm(const QString &term)
|
||||||
{
|
{
|
||||||
if(currentSearchTerm == term && currentSearchTerm.isNull() == term.isNull()) {
|
if(searchState != Failed && currentSearchTerm == term && currentSearchTerm.isNull() == term.isNull()) {
|
||||||
|
// unless the search has failed, then there is no need to perform an identical search.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
currentSearchTerm = term;
|
currentSearchTerm = term;
|
||||||
|
|
||||||
if(jobPtr) {
|
if(jobPtr) {
|
||||||
jobPtr->abort();
|
jobPtr->abort();
|
||||||
searchState = ResetRequested;
|
jobPtr.reset();
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
modpacks.clear();
|
modpacks.clear();
|
||||||
endResetModel();
|
endResetModel();
|
||||||
searchState = None;
|
searchState = None;
|
||||||
}
|
|
||||||
performSearch();
|
performSearch();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,15 +155,7 @@ void ListModel::searchRequestFailed(QString reason)
|
|||||||
jobPtr.reset();
|
jobPtr.reset();
|
||||||
remainingPacks.clear();
|
remainingPacks.clear();
|
||||||
|
|
||||||
if(searchState == ResetRequested) {
|
searchState = Failed;
|
||||||
beginResetModel();
|
|
||||||
modpacks.clear();
|
|
||||||
endResetModel();
|
|
||||||
|
|
||||||
performSearch();
|
|
||||||
} else {
|
|
||||||
searchState = Finished;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ListModel::requestPack()
|
void ListModel::requestPack()
|
||||||
|
@ -57,7 +57,8 @@ private:
|
|||||||
None,
|
None,
|
||||||
CanPossiblyFetchMore,
|
CanPossiblyFetchMore,
|
||||||
ResetRequested,
|
ResetRequested,
|
||||||
Finished
|
Finished,
|
||||||
|
Failed,
|
||||||
} searchState = None;
|
} searchState = None;
|
||||||
NetJobPtr jobPtr;
|
NetJobPtr jobPtr;
|
||||||
int currentPack;
|
int currentPack;
|
||||||
|
Loading…
Reference in New Issue
Block a user