From: alex-z Date: Wed, 12 Jan 2022 12:59:22 +0000 (+0200) Subject: Bugfix. Re-init sharing manager to enable link sharing UI when receiving sharing... X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~17^2~197^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3aaaaaf2d0712d83f1f530537dc09e0bfebb4320;p=nextcloud-desktop.git Bugfix. Re-init sharing manager to enable link sharing UI when receiving sharing permissions. Signed-off-by: alex-z --- 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, 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) @@ -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); void initLinkShareWidget();