From db447c4676d5717805f2e821ecfed4ba0c5b9b5e Mon Sep 17 00:00:00 2001 From: Camila Date: Mon, 20 Sep 2021 15:31:03 +0200 Subject: [PATCH] Refactor OcsShareJob creation. Signed-off-by: Camila --- src/gui/sharemanager.cpp | 24 ++++++++++-------------- src/gui/sharemanager.h | 10 +++++++++- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/gui/sharemanager.cpp b/src/gui/sharemanager.cpp index fec6b1bef..4490ff067 100644 --- a/src/gui/sharemanager.cpp +++ b/src/gui/sharemanager.cpp @@ -235,18 +235,12 @@ QString LinkShare::getLabel() const void LinkShare::setName(const QString &name) { - auto *job = new OcsShareJob(_account); - connect(job, &OcsShareJob::shareJobFinished, this, &LinkShare::slotNameSet); - connect(job, &OcsJob::ocsError, this, &LinkShare::slotOcsError); - job->setName(getId(), name); + createShareJob(&LinkShare::slotNameSet)->setName(getId(), name); } void LinkShare::setNote(const QString ¬e) { - auto *job = new OcsShareJob(_account); - connect(job, &OcsShareJob::shareJobFinished, this, &LinkShare::slotNoteSet); - connect(job, &OcsJob::ocsError, this, &LinkShare::slotOcsError); - job->setNote(getId(), note); + createShareJob(&LinkShare::slotNoteSet)->setNote(getId(), note); } void LinkShare::slotNoteSet(const QJsonDocument &, const QVariant ¬e) @@ -262,18 +256,20 @@ QString LinkShare::getToken() const void LinkShare::setExpireDate(const QDate &date) { - auto *job = new OcsShareJob(_account); - connect(job, &OcsShareJob::shareJobFinished, this, &LinkShare::slotExpireDateSet); - connect(job, &OcsJob::ocsError, this, &LinkShare::slotOcsError); - job->setExpireDate(getId(), date); + createShareJob(&LinkShare::slotExpireDateSet)->setExpireDate(getId(), date); } void LinkShare::setLabel(const QString &label) { + createShareJob(&LinkShare::slotLabelSet)->setLabel(getId(), label); +} + +template +OcsShareJob *LinkShare::createShareJob(const LinkShareSlot slotFunction) { auto *job = new OcsShareJob(_account); - connect(job, &OcsShareJob::shareJobFinished, this, &LinkShare::slotLabelSet); + connect(job, &OcsShareJob::shareJobFinished, this, slotFunction); connect(job, &OcsJob::ocsError, this, &LinkShare::slotOcsError); - job->setLabel(getId(), label); + return job; } void LinkShare::slotExpireDateSet(const QJsonDocument &reply, const QVariant &value) diff --git a/src/gui/sharemanager.h b/src/gui/sharemanager.h index 48f58b81e..f30a26576 100644 --- a/src/gui/sharemanager.h +++ b/src/gui/sharemanager.h @@ -31,6 +31,8 @@ class QJsonObject; namespace OCC { +class OcsShareJob; + class Share : public QObject { Q_OBJECT @@ -249,6 +251,13 @@ public: */ void setLabel(const QString &label); + /* + * Create OcsShareJob and connect to signal/slots + */ + template + OcsShareJob *createShareJob(const LinkShareSlot slotFunction); + + signals: void expireDateSet(); void noteSet(); @@ -306,7 +315,6 @@ signals: private: QString _note; QDate _expireDate; - QString _label; }; /** -- 2.30.2