[Qt5] Emit signal when api has finished processing all pending work (#8884)

* Fixes #8864

* More elegant solution

* Rerun sample generation

* Fix whitespace that was fixed in merge conflict
This commit is contained in:
Sean Kelly
2021-03-05 12:43:26 -08:00
committed by GitHub
parent 3a40818519
commit a13b222764
8 changed files with 130 additions and 0 deletions

View File

@@ -238,6 +238,12 @@ void PFXPetApi::addPet(const PFXPet &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::addPetCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -297,6 +303,12 @@ void PFXPetApi::deletePet(const qint64 &pet_id, const QVariant &api_key) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::deletePetCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -422,6 +434,12 @@ void PFXPetApi::findPetsByStatus(const QList<QString> &status) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::findPetsByStatusCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -557,6 +575,12 @@ void PFXPetApi::findPetsByTags(const QList<QString> &tags) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::findPetsByTagsCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -624,6 +648,12 @@ void PFXPetApi::getPetById(const qint64 &pet_id) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::getPetByIdCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -666,6 +696,12 @@ void PFXPetApi::updatePet(const PFXPet &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::updatePetCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -731,6 +767,12 @@ void PFXPetApi::updatePetWithForm(const qint64 &pet_id, const QVariant &name, co
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::updatePetWithFormCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -796,6 +838,12 @@ void PFXPetApi::uploadFile(const qint64 &pet_id, const QVariant &additional_meta
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXPetApi::uploadFileCallback);
connect(this, &PFXPetApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}

View File

@@ -165,6 +165,7 @@ signals:
void uploadFileSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void abortRequestsSignal();
void allPendingRequestsCompleted();
};
} // namespace test_namespace

View File

@@ -242,6 +242,12 @@ void PFXStoreApi::deleteOrder(const QString &order_id) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXStoreApi::deleteOrderCallback);
connect(this, &PFXStoreApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -284,6 +290,12 @@ void PFXStoreApi::getInventory() {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXStoreApi::getInventoryCallback);
connect(this, &PFXStoreApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -347,6 +359,12 @@ void PFXStoreApi::getOrderById(const qint64 &order_id) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXStoreApi::getOrderByIdCallback);
connect(this, &PFXStoreApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -389,6 +407,12 @@ void PFXStoreApi::placeOrder(const PFXOrder &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXStoreApi::placeOrderCallback);
connect(this, &PFXStoreApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}

View File

@@ -117,6 +117,7 @@ signals:
void placeOrderSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void abortRequestsSignal();
void allPendingRequestsCompleted();
};
} // namespace test_namespace

View File

@@ -238,6 +238,12 @@ void PFXUserApi::createUser(const PFXUser &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::createUserCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -279,6 +285,12 @@ void PFXUserApi::createUsersWithArrayInput(const QList<PFXUser> &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::createUsersWithArrayInputCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -320,6 +332,12 @@ void PFXUserApi::createUsersWithListInput(const QList<PFXUser> &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::createUsersWithListInputCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -373,6 +391,12 @@ void PFXUserApi::deleteUser(const QString &username) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::deleteUserCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -426,6 +450,12 @@ void PFXUserApi::getUserByName(const QString &username) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::getUserByNameCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -498,6 +528,12 @@ void PFXUserApi::loginUser(const QString &username, const QString &password) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::loginUserCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -538,6 +574,12 @@ void PFXUserApi::logoutUser() {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::logoutUserCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}
@@ -594,6 +636,12 @@ void PFXUserApi::updateUser(const QString &username, const PFXUser &body) {
connect(worker, &PFXHttpRequestWorker::on_execution_finished, this, &PFXUserApi::updateUserCallback);
connect(this, &PFXUserApi::abortRequestsSignal, worker, &QObject::deleteLater);
connect(worker, &QObject::destroyed, [this](){
if(findChildren<PFXHttpRequestWorker>().count() == 0){
emit allPendingRequestsCompleted();
}
});
worker->execute(&input);
}

View File

@@ -159,6 +159,7 @@ signals:
void updateUserSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void abortRequestsSignal();
void allPendingRequestsCompleted();
};
} // namespace test_namespace