Align MkColJob finish signal with the other jobs
authorHannah von Reth <hannah.vonreth@owncloud.com>
Wed, 17 Feb 2021 13:30:26 +0000 (14:30 +0100)
committerMatthieu Gallien <matthieu.gallien@nextcloud.com>
Mon, 23 Aug 2021 07:40:27 +0000 (09:40 +0200)
src/gui/folderwizard.cpp
src/gui/folderwizard.h
src/gui/owncloudsetupwizard.cpp
src/gui/owncloudsetupwizard.h
src/libsync/networkjobs.cpp
src/libsync/networkjobs.h
src/libsync/propagateremotemkdir.cpp
src/libsync/propagateupload.h
src/libsync/propagateuploadng.cpp

index b55cb58e961b5ded4be46264a6642262e3b6f298..3200f4210ed9dcb793d8a49692e9db33b1abbe6b 100644 (file)
@@ -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<void (MkColJob::*)(QNetworkReply::NetworkError)>(&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<MkColJob *>(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<MkColJob *>(sender())->path());
+    slotLsColFolderEntry();
 }
 
 void FolderWizardRemotePath::slotHandleMkdirNetworkError(QNetworkReply *reply)
index 58ffa69c053d4a49a32fec16dbd56a1274ff650a..7e7dd9c3214edeeb5cb74b966179f7b4a877d0ce 100644 (file)
@@ -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 &);
index ce0dd773fb4e76611a3876057b9080c924f0e224..6b87ca3d28e5a6db952f39d0a370319c7d150262 100644 (file)
@@ -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<int>(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<int>(error)));
     } else if (error == QNetworkReply::OperationCanceledError) {
         _ocWizard->displayError(tr("The remote folder creation failed because the provided credentials "
                                    "are wrong!"
index 4762de1cd88081869c225e01b310aa558d7954fb..877c6703d52a56d784e7b5052380a2318c80ef37 100644 (file)
@@ -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();
 
index 763367988177ec136d8dc0d71278c267486a1ebc..adcc9bc4f035a208e67fd6ab310ada477eb213df 100644 (file)
@@ -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;
 }
 
index 8e88853bc61e1ac809d917e2a4fd1c0a9ffd9e07..c52883b07859704dd434bb3d0b823fd849df9fbc 100644 (file)
@@ -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;
 };
 
index 27661c6110396c034bc570b5f0055a070000d841..4e27b42a8180b58971ab7ceaae18354eb8910dea 100644 (file)
@@ -61,8 +61,7 @@ void PropagateRemoteMkdir::start()
     _job = new DeleteJob(propagator()->account(),
         propagator()->fullRemotePath(_item->_file),
         this);
-    connect(static_cast<DeleteJob*>(_job.data()), &DeleteJob::finishedSignal,
-            this, &PropagateRemoteMkdir::slotMkdir);
+    connect(qobject_cast<DeleteJob *>(_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<MkColJob *>(_job), &MkColJob::finishedWithError, this, &PropagateRemoteMkdir::slotMkcolJobFinished);
+    connect(qobject_cast<MkColJob *>(_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<QNetworkReply::NetworkError>(&MkColJob::finished),
-            this, &PropagateRemoteMkdir::slotMkcolJobFinished);
+    connect(job, &MkColJob::finishedWithError, this, &PropagateRemoteMkdir::slotMkcolJobFinished);
+    connect(job, &MkColJob::finishedWithoutError, this, &PropagateRemoteMkdir::slotMkcolJobFinished);
     _job = job;
     _job->start();
 }
index 33d1f209b30e71764cfd3c4694e18a372cbd4203..7238a0f326407d88689c5d5ce859ba8271d8c0c0 100644 (file)
@@ -418,7 +418,7 @@ private slots:
     void slotPropfindFinishedWithError();
     void slotPropfindIterate(const QString &name, const QMap<QString, QString> &properties);
     void slotDeleteJobFinished();
-    void slotMkColFinished(QNetworkReply::NetworkError);
+    void slotMkColFinished();
     void slotPutFinished();
     void slotMoveJobFinished();
     void slotUploadProgress(qint64, qint64);
index 62d1fca0389375b92cb5010dcaeb4a87a44ff78b..b99fc06cce444b97bff3f30058700d8c9e537cd7 100644 (file)
@@ -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<MkColJob *>(sender());