Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoralex-z <blackslayer4@gmail.com>2022-01-12 15:59:22 +0300
committeralex-z <blackslayer4@gmail.com>2022-01-13 11:42:48 +0300
commit3aaaaaf2d0712d83f1f530537dc09e0bfebb4320 (patch)
tree8ff39011da3a993ddf129ce12456ba673b63fb8d /src
parent5ea53cdf80205c37fd4ee89d08bc6c4a76116e76 (diff)
Bugfix. Re-init sharing manager to enable link sharing UI when receiving sharing permissions.
Signed-off-by: alex-z <blackslayer4@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/sharedialog.cpp37
-rw-r--r--src/gui/sharedialog.h1
2 files changed, 23 insertions, 15 deletions
diff --git a/src/gui/sharedialog.cpp b/src/gui/sharedialog.cpp
index 6ecb579e5..0a8da9aab 100644
--- a/src/gui/sharedialog.cpp
+++ b/src/gui/sharedialog.cpp
@@ -136,21 +136,7 @@ ShareDialog::ShareDialog(QPointer<AccountState> accountState,
connect(job, &PropfindJob::finishedWithError, this, &ShareDialog::slotPropfindError);
job->start();
- bool sharingPossible = true;
- if (!accountState->account()->capabilities().sharePublicLink()) {
- qCWarning(lcSharing) << "Link shares have been disabled";
- sharingPossible = false;
- } else if (!(maxSharingPermissions & SharePermissionShare)) {
- qCWarning(lcSharing) << "The file cannot be shared because it does not have sharing permission.";
- sharingPossible = false;
- }
-
- if (sharingPossible) {
- _manager = new ShareManager(accountState->account(), this);
- connect(_manager, &ShareManager::sharesFetched, this, &ShareDialog::slotSharesFetched);
- connect(_manager, &ShareManager::linkShareCreated, this, &ShareDialog::slotAddLinkShareWidget);
- connect(_manager, &ShareManager::linkShareRequiresPassword, this, &ShareDialog::slotLinkShareRequiresPassword);
- }
+ initShareManager();
}
ShareLinkWidget *ShareDialog::addLinkShareWidget(const QSharedPointer<LinkShare> &linkShare)
@@ -319,6 +305,8 @@ void ShareDialog::showSharingUi()
_userGroupWidget->getShares();
}
+ initShareManager();
+
if (theme->linkSharing()) {
if(_manager) {
_manager->fetchShares(_sharePath);
@@ -326,6 +314,25 @@ void ShareDialog::showSharingUi()
}
}
+void ShareDialog::initShareManager()
+{
+ bool sharingPossible = true;
+ if (!_accountState->account()->capabilities().sharePublicLink()) {
+ qCWarning(lcSharing) << "Link shares have been disabled";
+ sharingPossible = false;
+ } else if (!(_maxSharingPermissions & SharePermissionShare)) {
+ qCWarning(lcSharing) << "The file cannot be shared because it does not have sharing permission.";
+ sharingPossible = false;
+ }
+
+ if (!_manager && sharingPossible) {
+ _manager = new ShareManager(_accountState->account(), this);
+ connect(_manager, &ShareManager::sharesFetched, this, &ShareDialog::slotSharesFetched);
+ connect(_manager, &ShareManager::linkShareCreated, this, &ShareDialog::slotAddLinkShareWidget);
+ connect(_manager, &ShareManager::linkShareRequiresPassword, this, &ShareDialog::slotLinkShareRequiresPassword);
+ }
+}
+
void ShareDialog::slotCreateLinkShare()
{
if(_manager) {
diff --git a/src/gui/sharedialog.h b/src/gui/sharedialog.h
index 5e58480e0..b3aa98277 100644
--- a/src/gui/sharedialog.h
+++ b/src/gui/sharedialog.h
@@ -78,6 +78,7 @@ protected:
private:
void showSharingUi();
+ void initShareManager();
ShareLinkWidget *addLinkShareWidget(const QSharedPointer<LinkShare> &linkShare);
void initLinkShareWidget();