From d16befd1fd68cd19c9cce2d2a2d22cac030eb183 Mon Sep 17 00:00:00 2001 From: Hannah von Reth Date: Wed, 17 Feb 2021 14:30:26 +0100 Subject: [PATCH] Align MkColJob finish signal with the other jobs --- src/gui/folderwizard.cpp | 16 +++++++--------- src/gui/folderwizard.h | 2 +- src/gui/owncloudsetupwizard.cpp | 18 ++++++++++-------- src/gui/owncloudsetupwizard.h | 2 +- src/libsync/networkjobs.cpp | 6 +++++- src/libsync/networkjobs.h | 5 +++-- src/libsync/propagateremotemkdir.cpp | 10 +++++----- src/libsync/propagateupload.h | 2 +- src/libsync/propagateuploadng.cpp | 8 +++++--- 9 files changed, 38 insertions(+), 31 deletions(-) diff --git a/src/gui/folderwizard.cpp b/src/gui/folderwizard.cpp index b55cb58e96..3200f4210e 100644 --- a/src/gui/folderwizard.cpp +++ b/src/gui/folderwizard.cpp @@ -201,21 +201,19 @@ void FolderWizardRemotePath::slotCreateRemoteFolder(const QString &folder) auto *job = new MkColJob(_account, fullPath, this); /* check the owncloud configuration file and query the ownCloud */ - connect(job, static_cast(&MkColJob::finished), + connect(job, &MkColJob::finishedWithoutError, this, &FolderWizardRemotePath::slotCreateRemoteFolderFinished); connect(job, &AbstractNetworkJob::networkError, this, &FolderWizardRemotePath::slotHandleMkdirNetworkError); job->start(); } -void FolderWizardRemotePath::slotCreateRemoteFolderFinished(QNetworkReply::NetworkError error) +void FolderWizardRemotePath::slotCreateRemoteFolderFinished() { - if (error == QNetworkReply::NoError) { - qCDebug(lcWizard) << "webdav mkdir request finished"; - showWarn(tr("Folder was successfully created on %1.").arg(Theme::instance()->appNameGUI())); - slotRefreshFolders(); - _ui.folderEntry->setText(static_cast(sender())->path()); - slotLsColFolderEntry(); - } + qCDebug(lcWizard) << "webdav mkdir request finished"; + showWarn(tr("Folder was successfully created on %1.").arg(Theme::instance()->appNameGUI())); + slotRefreshFolders(); + _ui.folderEntry->setText(static_cast(sender())->path()); + slotLsColFolderEntry(); } void FolderWizardRemotePath::slotHandleMkdirNetworkError(QNetworkReply *reply) diff --git a/src/gui/folderwizard.h b/src/gui/folderwizard.h index 58ffa69c05..7e7dd9c321 100644 --- a/src/gui/folderwizard.h +++ b/src/gui/folderwizard.h @@ -92,7 +92,7 @@ protected slots: void showWarn(const QString & = QString()) const; void slotAddRemoteFolder(); void slotCreateRemoteFolder(const QString &); - void slotCreateRemoteFolderFinished(QNetworkReply::NetworkError error); + void slotCreateRemoteFolderFinished(); void slotHandleMkdirNetworkError(QNetworkReply *); void slotHandleLsColNetworkError(QNetworkReply *); void slotUpdateDirectories(const QStringList &); diff --git a/src/gui/owncloudsetupwizard.cpp b/src/gui/owncloudsetupwizard.cpp index ce0dd773fb..6b87ca3d28 100644 --- a/src/gui/owncloudsetupwizard.cpp +++ b/src/gui/owncloudsetupwizard.cpp @@ -536,26 +536,28 @@ void OwncloudSetupWizard::createRemoteFolder() _ocWizard->appendToConfigurationLog(tr("creating folder on Nextcloud: %1").arg(_remoteFolder)); auto *job = new MkColJob(_ocWizard->account(), _remoteFolder, this); - connect(job, SIGNAL(finished(QNetworkReply::NetworkError)), SLOT(slotCreateRemoteFolderFinished(QNetworkReply::NetworkError))); + connect(job, &MkColJob::finishedWithError, this, &OwncloudSetupWizard::slotCreateRemoteFolderFinished); + connect(job, &MkColJob::finishedWithoutError, this, [this] { + _ocWizard->appendToConfigurationLog(tr("Remote folder %1 created successfully.").arg(_remoteFolder)); + finalizeSetup(true); + }); job->start(); } -void OwncloudSetupWizard::slotCreateRemoteFolderFinished(QNetworkReply::NetworkError error) +void OwncloudSetupWizard::slotCreateRemoteFolderFinished(QNetworkReply *reply) { + auto error = reply->error(); qCDebug(lcWizard) << "** webdav mkdir request finished " << error; // disconnect(ownCloudInfo::instance(), SIGNAL(webdavColCreated(QNetworkReply::NetworkError)), // this, SLOT(slotCreateRemoteFolderFinished(QNetworkReply::NetworkError))); bool success = true; - - if (error == QNetworkReply::NoError) { - _ocWizard->appendToConfigurationLog(tr("Remote folder %1 created successfully.").arg(_remoteFolder)); - } else if (error == 202) { + if (error == 202) { _ocWizard->appendToConfigurationLog(tr("The remote folder %1 already exists. Connecting it for syncing.").arg(_remoteFolder)); } else if (error > 202 && error < 300) { - _ocWizard->displayError(tr("The folder creation resulted in HTTP error code %1").arg((int)error), false); + _ocWizard->displayError(tr("The folder creation resulted in HTTP error code %1").arg(static_cast(error)), false); - _ocWizard->appendToConfigurationLog(tr("The folder creation resulted in HTTP error code %1").arg((int)error)); + _ocWizard->appendToConfigurationLog(tr("The folder creation resulted in HTTP error code %1").arg(static_cast(error))); } else if (error == QNetworkReply::OperationCanceledError) { _ocWizard->displayError(tr("The remote folder creation failed because the provided credentials " "are wrong!" diff --git a/src/gui/owncloudsetupwizard.h b/src/gui/owncloudsetupwizard.h index 4762de1cd8..877c6703d5 100644 --- a/src/gui/owncloudsetupwizard.h +++ b/src/gui/owncloudsetupwizard.h @@ -65,7 +65,7 @@ private slots: void slotCreateLocalAndRemoteFolders(const QString &, const QString &); void slotRemoteFolderExists(QNetworkReply *); - void slotCreateRemoteFolderFinished(QNetworkReply::NetworkError); + void slotCreateRemoteFolderFinished(QNetworkReply *reply); void slotAssistantFinished(int); void slotSkipFolderConfiguration(); diff --git a/src/libsync/networkjobs.cpp b/src/libsync/networkjobs.cpp index 7633679881..adcc9bc4f0 100644 --- a/src/libsync/networkjobs.cpp +++ b/src/libsync/networkjobs.cpp @@ -182,7 +182,11 @@ bool MkColJob::finished() qCInfo(lcMkColJob) << "MKCOL of" << reply()->request().url() << "FINISHED WITH STATUS" << replyStatusString(); - emit finished(reply()->error()); + if (reply()->error() != QNetworkReply::NoError) { + Q_EMIT finishedWithError(reply()); + } else { + Q_EMIT finishedWithoutError(); + } return true; } diff --git a/src/libsync/networkjobs.h b/src/libsync/networkjobs.h index 8e88853bc6..c52883b078 100644 --- a/src/libsync/networkjobs.h +++ b/src/libsync/networkjobs.h @@ -273,9 +273,10 @@ public: void start() override; signals: - void finished(QNetworkReply::NetworkError); + void finishedWithError(QNetworkReply *reply); + void finishedWithoutError(); -private slots: +private: bool finished() override; }; diff --git a/src/libsync/propagateremotemkdir.cpp b/src/libsync/propagateremotemkdir.cpp index 27661c6110..4e27b42a81 100644 --- a/src/libsync/propagateremotemkdir.cpp +++ b/src/libsync/propagateremotemkdir.cpp @@ -61,8 +61,7 @@ void PropagateRemoteMkdir::start() _job = new DeleteJob(propagator()->account(), propagator()->fullRemotePath(_item->_file), this); - connect(static_cast(_job.data()), &DeleteJob::finishedSignal, - this, &PropagateRemoteMkdir::slotMkdir); + connect(qobject_cast(_job), &DeleteJob::finishedSignal, this, &PropagateRemoteMkdir::slotMkdir); _job->start(); } @@ -76,7 +75,8 @@ void PropagateRemoteMkdir::slotStartMkcolJob() _job = new MkColJob(propagator()->account(), propagator()->fullRemotePath(_item->_file), this); - connect(_job, SIGNAL(finished(QNetworkReply::NetworkError)), this, SLOT(slotMkcolJobFinished())); + connect(qobject_cast(_job), &MkColJob::finishedWithError, this, &PropagateRemoteMkdir::slotMkcolJobFinished); + connect(qobject_cast(_job), &MkColJob::finishedWithoutError, this, &PropagateRemoteMkdir::slotMkcolJobFinished); _job->start(); } @@ -95,8 +95,8 @@ void PropagateRemoteMkdir::slotStartEncryptedMkcolJob(const QString &path, const propagator()->fullRemotePath(filename), {{"e2e-token", _uploadEncryptedHelper->folderToken() }}, this); - connect(job, qOverload(&MkColJob::finished), - this, &PropagateRemoteMkdir::slotMkcolJobFinished); + connect(job, &MkColJob::finishedWithError, this, &PropagateRemoteMkdir::slotMkcolJobFinished); + connect(job, &MkColJob::finishedWithoutError, this, &PropagateRemoteMkdir::slotMkcolJobFinished); _job = job; _job->start(); } diff --git a/src/libsync/propagateupload.h b/src/libsync/propagateupload.h index 33d1f209b3..7238a0f326 100644 --- a/src/libsync/propagateupload.h +++ b/src/libsync/propagateupload.h @@ -418,7 +418,7 @@ private slots: void slotPropfindFinishedWithError(); void slotPropfindIterate(const QString &name, const QMap &properties); void slotDeleteJobFinished(); - void slotMkColFinished(QNetworkReply::NetworkError); + void slotMkColFinished(); void slotPutFinished(); void slotMoveJobFinished(); void slotUploadProgress(qint64, qint64); diff --git a/src/libsync/propagateuploadng.cpp b/src/libsync/propagateuploadng.cpp index 62d1fca038..b99fc06cce 100644 --- a/src/libsync/propagateuploadng.cpp +++ b/src/libsync/propagateuploadng.cpp @@ -249,13 +249,15 @@ void PropagateUploadFileNG::startNewUpload() headers["OC-Total-Length"] = QByteArray::number(_fileToUpload._size); auto job = new MkColJob(propagator()->account(), chunkUrl(), headers, this); - connect(job, SIGNAL(finished(QNetworkReply::NetworkError)), - this, SLOT(slotMkColFinished(QNetworkReply::NetworkError))); + connect(job, &MkColJob::finishedWithError, + this, &PropagateUploadFileNG::slotMkColFinished); + connect(job, &MkColJob::finishedWithoutError, + this, &PropagateUploadFileNG::slotMkColFinished); connect(job, &QObject::destroyed, this, &PropagateUploadFileCommon::slotJobDestroyed); job->start(); } -void PropagateUploadFileNG::slotMkColFinished(QNetworkReply::NetworkError) +void PropagateUploadFileNG::slotMkColFinished() { propagator()->_activeJobList.removeOne(this); auto job = qobject_cast(sender());