From 12f7cfde871b5b6f7eb99254b23402c9c2e60ae1 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 29 Oct 2015 14:27:49 +0100 Subject: [PATCH] Shares do not have parents Also some pointer cleanups --- src/gui/share.cpp | 42 +++++++++++++++++++---------------------- src/gui/share.h | 12 +++++------- src/gui/sharedialog.cpp | 8 ++++---- src/gui/sharedialog.h | 2 +- 4 files changed, 29 insertions(+), 35 deletions(-) diff --git a/src/gui/share.cpp b/src/gui/share.cpp index fcd5cdb35..c8bc5de4f 100644 --- a/src/gui/share.cpp +++ b/src/gui/share.cpp @@ -20,9 +20,8 @@ namespace OCC { Share::Share(AccountPtr account, const QString& id, const QString& path, int shareType, - int permissions, QObject *parent) -: QObject(parent), - _account(account), + int permissions) +: _account(account), _id(id), _path(path), _shareType(shareType), @@ -86,9 +85,8 @@ LinkShare::LinkShare(AccountPtr account, int permissions, bool passwordSet, const QUrl& url, - const QDate& expireDate, - QObject *parent) -: Share(account, id, path, shareType, permissions, parent), + const QDate& expireDate) +: Share(account, id, path, shareType, permissions), _passwordSet(passwordSet), _expireDate(expireDate), _url(url) @@ -232,17 +230,16 @@ void ShareManager::slotSharesFetched(const QVariantMap &reply) auto shareType = data.value("share_type").toInt(); - Share *newShare = NULL; + QSharedPointer newShare; if (shareType == OcsShareJob::ShareType::Link) { newShare = parseLinkShare(data); } else { - newShare = new Share(_account, - data.value("id").toString(), - data.value("path").toString(), - shareType, - data.value("permissions").toInt(), - this); + newShare = QSharedPointer(new Share(_account, + data.value("id").toString(), + data.value("path").toString(), + shareType, + data.value("permissions").toInt())); } shares.append(QSharedPointer(newShare)); @@ -252,7 +249,7 @@ void ShareManager::slotSharesFetched(const QVariantMap &reply) emit sharesFetched(shares); } -LinkShare *ShareManager::parseLinkShare(const QVariantMap &data) { +QSharedPointer ShareManager::parseLinkShare(const QVariantMap &data) { QUrl url; // From ownCloud server 8.2 the url field is always set for public shares @@ -273,15 +270,14 @@ LinkShare *ShareManager::parseLinkShare(const QVariantMap &data) { expireDate = QDate::fromString(data.value("expiration").toString(), "yyyy-MM-dd 00:00:00"); } - return new LinkShare(_account, - data.value("id").toString(), - data.value("path").toString(), - data.value("share_type").toInt(), - data.value("permissions").toInt(), - data.value("share_with").isValid(), - url, - expireDate, - this); + return QSharedPointer(new LinkShare(_account, + data.value("id").toString(), + data.value("path").toString(), + data.value("share_type").toInt(), + data.value("permissions").toInt(), + data.value("share_with").isValid(), + url, + expireDate)); } } diff --git a/src/gui/share.h b/src/gui/share.h index 3fb445831..9fbc4b1a1 100644 --- a/src/gui/share.h +++ b/src/gui/share.h @@ -37,8 +37,7 @@ public: const QString& id, const QString& path, int shareType, - int permissions, - QObject *parent = NULL); + int permissions); /* * Get the id @@ -104,8 +103,7 @@ public: int permissions, bool passwordSet, const QUrl& url, - const QDate& expireDate, - QObject *parent = NULL); + const QDate& expireDate); /* * Get the share link @@ -202,9 +200,9 @@ public: void fetchShares(const QString& path); signals: - void linkShareCreated(const QSharedPointer share); + void linkShareCreated(const QSharedPointer &share); void linkShareRequiresPassword(); - void sharesFetched(QList>); + void sharesFetched(const QList> &shares); void serverError(int code, const QString &message); private slots: @@ -212,7 +210,7 @@ private slots: void slotLinkShareCreated(const QVariantMap &reply); private: - LinkShare *parseLinkShare(const QVariantMap &data); + QSharedPointer parseLinkShare(const QVariantMap &data); AccountPtr _account; }; diff --git a/src/gui/sharedialog.cpp b/src/gui/sharedialog.cpp index 615ee4400..ded38b0b1 100644 --- a/src/gui/sharedialog.cpp +++ b/src/gui/sharedialog.cpp @@ -173,11 +173,11 @@ ShareDialog::ShareDialog(AccountPtr account, const QString &sharePath, const QSt /* * Create the share manager and connect it properly */ - _manager = QSharedPointer(new ShareManager(_account, this)); + _manager = new ShareManager(_account, this); - connect(_manager.data(), SIGNAL(sharesFetched(QList>)), this, SLOT(slotSharesFetched(QList>))); - connect(_manager.data(), SIGNAL(linkShareCreated(const QSharedPointer)), this, SLOT(slotCreateShareFetched(const QSharedPointer))); - connect(_manager.data(), SIGNAL(linkShareRequiresPassword()), this, SLOT(slotCreateShareRequiresPassword())); + connect(_manager, SIGNAL(sharesFetched(QList>)), this, SLOT(slotSharesFetched(QList>))); + connect(_manager, SIGNAL(linkShareCreated(const QSharedPointer)), this, SLOT(slotCreateShareFetched(const QSharedPointer))); + connect(_manager, SIGNAL(linkShareRequiresPassword()), this, SLOT(slotCreateShareRequiresPassword())); } void ShareDialog::done( int r ) { diff --git a/src/gui/sharedialog.h b/src/gui/sharedialog.h index 3fc9ee311..7ffdee3b4 100644 --- a/src/gui/sharedialog.h +++ b/src/gui/sharedialog.h @@ -96,7 +96,7 @@ private: QProgressIndicator *_pi_date; QProgressIndicator *_pi_editing; - QSharedPointer _manager; + ShareManager *_manager; QSharedPointer _share; bool _resharingAllowed;