diff --git a/src/gui/shareusergroupwidget.cpp b/src/gui/shareusergroupwidget.cpp index dfdbd00bdd..e3469937c4 100644 --- a/src/gui/shareusergroupwidget.cpp +++ b/src/gui/shareusergroupwidget.cpp @@ -373,10 +373,10 @@ ShareUserLine::ShareUserLine(QSharedPointer share, _ui->sharedWith->setText(elidedText); // adds permissions - - // check for current permissions - _ui->permissionsEdit->setEnabled(maxSharingPermissions - & (SharePermissionCreate | SharePermissionUpdate | SharePermissionDelete)); + // can edit permission + bool enabled = maxSharingPermissions & (SharePermissionRead | SharePermissionUpdate); + if(!_isFile) enabled = enabled & (SharePermissionCreate | SharePermissionDelete); + _ui->permissionsEdit->setEnabled(enabled); connect(_ui->permissionsEdit, &QAbstractButton::clicked, this, &ShareUserLine::slotEditPermissionsChanged); // create menu with checkable permissions @@ -399,7 +399,6 @@ ShareUserLine::ShareUserLine(QSharedPointer share, _permissionChange = new QAction(tr("Can change")); _permissionChange->setCheckable(true); - // TODO: change is the same as edit? _permissionChange->setEnabled(maxSharingPermissions & SharePermissionUpdate); menu->addAction(_permissionChange); connect(_permissionChange, &QAction::triggered, this, &ShareUserLine::slotPermissionsChanged); @@ -417,11 +416,6 @@ ShareUserLine::ShareUserLine(QSharedPointer share, QIcon icon(QLatin1String(":/client/resources/more.svg")); _ui->permissionToolButton->setIcon(icon); - // If there's only a single entry in the detailed permission menu, hide it - if (menu->actions().size() == 1) { - _ui->permissionToolButton->hide(); - } - // Set the permissions checkboxes displayPermissions(); @@ -558,22 +552,24 @@ void ShareUserLine::slotPermissionsChanged() Share::Permissions permissions = SharePermissionRead; - if (_permissionChange->isChecked()) { - permissions |= SharePermissionUpdate; - } - - if (_permissionCreate->isChecked()) { - permissions |= SharePermissionCreate; - } - - if (_permissionDelete->isChecked()) { - permissions |= SharePermissionDelete; - } - if (_permissionReshare->isChecked()) { permissions |= SharePermissionShare; } + if (!_isFile) { + if (_permissionCreate->isChecked()) { + permissions |= SharePermissionCreate; + } + + if (_permissionChange->isChecked()) { + permissions |= SharePermissionUpdate; + } + + if (_permissionDelete->isChecked()) { + permissions |= SharePermissionDelete; + } + } + _share->setPermissions(permissions); } @@ -630,7 +626,7 @@ void ShareUserLine::displayPermissions() } _permissionReshare->setChecked(Qt::Unchecked); - if (_share->getPermissions() & SharePermissionShare) { + if (perm & SharePermissionShare) { _permissionReshare->setChecked(Qt::Checked); } diff --git a/src/gui/shareusergroupwidget.h b/src/gui/shareusergroupwidget.h index 6fe55ee53c..3d4f947927 100644 --- a/src/gui/shareusergroupwidget.h +++ b/src/gui/shareusergroupwidget.h @@ -146,9 +146,10 @@ private: QSharedPointer _share; bool _isFile; - QAction *_permissionShare; + // _permissionEdit is a checkbox + QAction *_permissionReshare; QAction *_permissionCreate; - QAction *_permissionUpdate; + QAction *_permissionChange; QAction *_permissionDelete; }; } diff --git a/src/gui/shareusergroupwidget.ui b/src/gui/shareusergroupwidget.ui index 0ca85c7c9f..3a0d01f1ad 100644 --- a/src/gui/shareusergroupwidget.ui +++ b/src/gui/shareusergroupwidget.ui @@ -80,7 +80,7 @@ - 250 + 330 26 @@ -99,7 +99,7 @@ - + 0 @@ -108,30 +108,22 @@ - 98 - 26 + 20 + 0 - - - 16777215 - 16777215 - - - - Qt::LeftToRight + + background-color: rgb(255, 255, 255); - can edit + - - QToolButton::MenuButtonPopup + + + :/client/resources/confirm.svg:/client/resources/confirm.svg - - Qt::ToolButtonTextOnly - - - Qt::DownArrow + + true @@ -217,6 +209,8 @@ - + + +