diff options
author | alex-z <blackslayer4@gmail.com> | 2022-01-12 15:59:22 +0300 |
---|---|---|
committer | alex-z <blackslayer4@gmail.com> | 2022-01-13 11:42:48 +0300 |
commit | 3aaaaaf2d0712d83f1f530537dc09e0bfebb4320 (patch) | |
tree | 8ff39011da3a993ddf129ce12456ba673b63fb8d /src | |
parent | 5ea53cdf80205c37fd4ee89d08bc6c4a76116e76 (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.cpp | 37 | ||||
-rw-r--r-- | src/gui/sharedialog.h | 1 |
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(); |