Skip to content

Commit

Permalink
fix reply bug when combining sources and extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
mgn-norm committed Oct 9, 2022
1 parent 9912b76 commit 98b354a
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 8 deletions.
6 changes: 2 additions & 4 deletions src/models/ExtensionModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ void ExtensionModel::classBegin() { }
*****************************************************************************/
void ExtensionModel::componentComplete()
{
_networkManager->get("extension/list");
_networkManager->getExtensions("extension/list");

connect(
_networkManager,
&NetworkManager::receivedReply,
&NetworkManager::receiveExtensions,
this,
&ExtensionModel::receivedReply);
}
Expand All @@ -48,8 +48,6 @@ void ExtensionModel::componentComplete()
*****************************************************************************/
void ExtensionModel::receivedReply(const QJsonDocument& reply)
{
disconnect(_networkManager, &NetworkManager::receivedReply, this, nullptr);

beginResetModel();
_extensions.clear();

Expand Down
6 changes: 2 additions & 4 deletions src/models/SourcesModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ void SourcesModel::classBegin() { }
*****************************************************************************/
void SourcesModel::componentComplete()
{
_networkManager->get("source/list");
_networkManager->getSources("source/list");

connect(
_networkManager,
&NetworkManager::receivedReply,
&NetworkManager::receiveSources,
this,
&SourcesModel::receivedReply);
}
Expand All @@ -48,8 +48,6 @@ void SourcesModel::componentComplete()
*****************************************************************************/
void SourcesModel::receivedReply(const QJsonDocument& reply)
{
disconnect(_networkManager, &NetworkManager::receivedReply, this, nullptr);

beginResetModel();
_sources.clear();

Expand Down
33 changes: 33 additions & 0 deletions src/networkmanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,25 @@ void NetworkManager::getUpdates(const QString &endpoint)
getEndpoint(endpoint, &NetworkManager::updatesReply);
}

/********************************************************************
*
* get()
*
********************************************************************/
void NetworkManager::getSources(const QString &endpoint)
{
getEndpoint(endpoint, &NetworkManager::sourcesReply);
}
/********************************************************************
*
* get()
*
********************************************************************/
void NetworkManager::getExtensions(const QString &endpoint)
{
getEndpoint(endpoint, &NetworkManager::extensionsReply);
}

/********************************************************************
*
* post()
Expand Down Expand Up @@ -232,6 +251,20 @@ void NetworkManager::chaptersReply() { emit receiveChapters(processReply()); }
********************************************************************/
void NetworkManager::updatesReply() { emit receiveUpdates(processReply()); }

/********************************************************************
*
* userReply()
*
********************************************************************/
void NetworkManager::sourcesReply() { emit receiveSources(processReply()); }

/********************************************************************
*
* userReply()
*
********************************************************************/
void NetworkManager::extensionsReply() { emit receiveExtensions(processReply()); }

/********************************************************************
*
* patchReply()
Expand Down
6 changes: 6 additions & 0 deletions src/networkmanager.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,17 @@ class NetworkManager : public QObject, public QQmlNetworkAccessManagerFactory
void receivedReply(const QJsonDocument &reply);
void receiveChapters(const QJsonDocument &reply);
void receiveUpdates(const QJsonDocument &reply);
void receiveSources(const QJsonDocument &reply);
void receiveExtensions(const QJsonDocument &reply);
void abortChapterRequest();
void receivePatch();

private slots:
void endpointReply();
void chaptersReply();
void updatesReply();
void sourcesReply();
void extensionsReply();
void patchReply();

public:
Expand All @@ -53,6 +57,8 @@ private slots:
const std::function<void(const QJsonDocument &)> &func);
void getChapters(const QString &endpoint);
void getUpdates(const QString &endpoint);
void getSources(const QString &endpoint);
void getExtensions(const QString &endpoint);
void deleteResource(const QString &endpoint);
// TODO needs similar to patch for extra arguments
void post(const QString &endpoint, const QUrlQuery &query);
Expand Down

0 comments on commit 98b354a

Please sign in to comment.