Changes Share User/Group widget UI to match the server share UI.

- Display list of permissions in the tool button menu.

Signed-off-by: Camila San <hello@camila.codes>
This commit is contained in:
Camila San 2018-08-02 16:42:06 +02:00
parent 25ff932a0b
commit c2c2fe3ce3
No known key found for this signature in database
GPG Key ID: 7A4A6121E88E2AD4
3 changed files with 37 additions and 46 deletions

View File

@ -373,10 +373,10 @@ ShareUserLine::ShareUserLine(QSharedPointer<Share> 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> 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> 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);
}

View File

@ -146,9 +146,10 @@ private:
QSharedPointer<Share> _share;
bool _isFile;
QAction *_permissionShare;
// _permissionEdit is a checkbox
QAction *_permissionReshare;
QAction *_permissionCreate;
QAction *_permissionUpdate;
QAction *_permissionChange;
QAction *_permissionDelete;
};
}

View File

@ -80,7 +80,7 @@
</property>
<property name="minimumSize">
<size>
<width>250</width>
<width>330</width>
<height>26</height>
</size>
</property>
@ -99,7 +99,7 @@
</widget>
</item>
<item>
<widget class="QToolButton" name="permissionToolButton">
<widget class="QPushButton" name="confirmShare">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
@ -108,30 +108,22 @@
</property>
<property name="minimumSize">
<size>
<width>98</width>
<height>26</height>
<width>20</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>can edit</string>
<string/>
</property>
<property name="popupMode">
<enum>QToolButton::MenuButtonPopup</enum>
<property name="icon">
<iconset resource="../../client.qrc">
<normaloff>:/client/resources/confirm.svg</normaloff>:/client/resources/confirm.svg</iconset>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextOnly</enum>
</property>
<property name="arrowType">
<enum>Qt::DownArrow</enum>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
@ -217,6 +209,8 @@
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<resources>
<include location="../../client.qrc"/>
</resources>
<connections/>
</ui>