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),
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)
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));
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
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));
}
}
const QString& id,
const QString& path,
int shareType,
- int permissions,
- QObject *parent = NULL);
+ int permissions);
/*
* Get the id
int permissions,
bool passwordSet,
const QUrl& url,
- const QDate& expireDate,
- QObject *parent = NULL);
+ const QDate& expireDate);
/*
* Get the share link
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:
void slotLinkShareCreated(const QVariantMap &reply);
private:
- LinkShare *parseLinkShare(const QVariantMap &data);
+ QSharedPointer<LinkShare> parseLinkShare(const QVariantMap &data);
AccountPtr _account;
};
/*
* 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 ) {