Shares do not have parents

Also some pointer cleanups
This commit is contained in:
Roeland Jago Douma 2015-10-29 14:27:49 +01:00
parent 6d80f3d756
commit 12f7cfde87
4 changed files with 29 additions and 35 deletions

View file

@ -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<Share> 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<Share>(new Share(_account,
data.value("id").toString(),
data.value("path").toString(),
shareType,
data.value("permissions").toInt()));
}
shares.append(QSharedPointer<Share>(newShare));
@ -252,7 +249,7 @@ void ShareManager::slotSharesFetched(const QVariantMap &reply)
emit sharesFetched(shares);
}
LinkShare *ShareManager::parseLinkShare(const QVariantMap &data) {
QSharedPointer<LinkShare> 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<LinkShare>(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));
}
}

View file

@ -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<LinkShare> share);
void linkShareCreated(const QSharedPointer<LinkShare> &share);
void linkShareRequiresPassword();
void sharesFetched(QList<QSharedPointer<Share>>);
void sharesFetched(const QList<QSharedPointer<Share>> &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<LinkShare> parseLinkShare(const QVariantMap &data);
AccountPtr _account;
};

View file

@ -173,11 +173,11 @@ ShareDialog::ShareDialog(AccountPtr account, const QString &sharePath, const QSt
/*
* Create the share manager and connect it properly
*/
_manager = QSharedPointer<ShareManager>(new ShareManager(_account, this));
_manager = new ShareManager(_account, this);
connect(_manager.data(), SIGNAL(sharesFetched(QList<QSharedPointer<Share>>)), this, SLOT(slotSharesFetched(QList<QSharedPointer<Share>>)));
connect(_manager.data(), SIGNAL(linkShareCreated(const QSharedPointer<LinkShare>)), this, SLOT(slotCreateShareFetched(const QSharedPointer<LinkShare>)));
connect(_manager.data(), SIGNAL(linkShareRequiresPassword()), this, SLOT(slotCreateShareRequiresPassword()));
connect(_manager, SIGNAL(sharesFetched(QList<QSharedPointer<Share>>)), this, SLOT(slotSharesFetched(QList<QSharedPointer<Share>>)));
connect(_manager, SIGNAL(linkShareCreated(const QSharedPointer<LinkShare>)), this, SLOT(slotCreateShareFetched(const QSharedPointer<LinkShare>)));
connect(_manager, SIGNAL(linkShareRequiresPassword()), this, SLOT(slotCreateShareRequiresPassword()));
}
void ShareDialog::done( int r ) {

View file

@ -96,7 +96,7 @@ private:
QProgressIndicator *_pi_date;
QProgressIndicator *_pi_editing;
QSharedPointer<ShareManager> _manager;
ShareManager *_manager;
QSharedPointer<LinkShare> _share;
bool _resharingAllowed;