diff options
author | Camila <hello@camila.codes> | 2021-09-14 15:10:44 +0300 |
---|---|---|
committer | Matthieu Gallien (Rebase PR Action) <matthieu_gallien@yahoo.fr> | 2021-09-21 13:01:20 +0300 |
commit | ba8ec56e651f054cf5ae6c1bf64f34213f1a1c94 (patch) | |
tree | 1b94a43e3068e15ab479654a6281691414610536 /src/gui/sharelinkwidget.cpp | |
parent | d0d4b08a094454ae69b5ad2b4cc1b6b3626f8f0a (diff) |
Add option to create label for share link.
Signed-off-by: Camila <hello@camila.codes>
Diffstat (limited to 'src/gui/sharelinkwidget.cpp')
-rw-r--r-- | src/gui/sharelinkwidget.cpp | 65 |
1 files changed, 62 insertions, 3 deletions
diff --git a/src/gui/sharelinkwidget.cpp b/src/gui/sharelinkwidget.cpp index 7a50639bf..d0c422409 100644 --- a/src/gui/sharelinkwidget.cpp +++ b/src/gui/sharelinkwidget.cpp @@ -20,6 +20,7 @@ #include "guiutility.h" #include "sharemanager.h" #include "theme.h" +#include "elidedlabel.h" #include "QProgressIndicator.h" #include <QBuffer> @@ -168,6 +169,7 @@ void ShareLinkWidget::setupUiOptions() connect(_linkShare.data(), &LinkShare::noteSet, this, &ShareLinkWidget::slotNoteSet); connect(_linkShare.data(), &LinkShare::passwordSet, this, &ShareLinkWidget::slotPasswordSet); connect(_linkShare.data(), &LinkShare::passwordSetError, this, &ShareLinkWidget::slotPasswordSetError); + connect(_linkShare.data(), &LinkShare::labelSet, this, &ShareLinkWidget::slotLabelSet); // Prepare permissions check and create group action const QDate expireDate = _linkShare.data()->getExpireDate().isValid() ? _linkShare.data()->getExpireDate() : QDate(); @@ -189,7 +191,7 @@ void ShareLinkWidget::setupUiOptions() } else { checked = (perm == SharePermissionRead); - _readOnlyLinkAction = permissionsGroup->addAction(tr("Read only")); + _readOnlyLinkAction = permissionsGroup->addAction(tr("View only")); _readOnlyLinkAction->setCheckable(true); _readOnlyLinkAction->setChecked(checked); @@ -204,6 +206,40 @@ void ShareLinkWidget::setupUiOptions() _allowUploadLinkAction->setCheckable(true); _allowUploadLinkAction->setChecked(checked); } + + _shareLinkElidedLabel = new OCC::ElidedLabel(this); + _shareLinkElidedLabel->setElideMode(Qt::ElideRight); + displayShareLinkLabel(); + _ui->horizontalLayout->insertWidget(2, _shareLinkElidedLabel); + + _shareLinkLayout = new QHBoxLayout(this); + + _shareLinkLabel = new QLabel(this); + _shareLinkLabel->setPixmap(QString(":/client/theme/black/edit.svg")); + _shareLinkLayout->addWidget(_shareLinkLabel); + + _shareLinkEdit = new QLineEdit(this); + connect(_shareLinkEdit, &QLineEdit::returnPressed, this, &ShareLinkWidget::slotCreateLabel); + _shareLinkEdit->setPlaceholderText(tr("Link name")); + _shareLinkEdit->setText(_linkShare.data()->getLabel()); + _shareLinkLayout->addWidget(_shareLinkEdit); + + _shareLinkButton = new QToolButton(this); + connect(_shareLinkButton, &QToolButton::clicked, this, &ShareLinkWidget::slotCreateLabel); + _shareLinkButton->setIcon(QIcon(":/client/theme/confirm.svg")); + _shareLinkButton->setToolButtonStyle(Qt::ToolButtonIconOnly); + _shareLinkLayout->addWidget(_shareLinkButton); + + _shareLinkProgressIndicator = new QProgressIndicator(this); + _shareLinkProgressIndicator->setVisible(false); + _shareLinkLayout->addWidget(_shareLinkProgressIndicator); + + _shareLinkDefaultWidget = new QWidget(this); + _shareLinkDefaultWidget->setLayout(_shareLinkLayout); + + _shareLinkWidgetAction = new QWidgetAction(this); + _shareLinkWidgetAction->setDefaultWidget(_shareLinkDefaultWidget); + _linkContextMenu->addAction(_shareLinkWidgetAction); // Adds permissions actions (radio button style) if (_isFile) { @@ -263,7 +299,7 @@ void ShareLinkWidget::setupUiOptions() // Adds action to unshare widget (check box) _unshareLinkAction = _linkContextMenu->addAction(QIcon(":/client/theme/delete.svg"), - tr("Delete share link")); + tr("Delete link")); _linkContextMenu->addSeparator(); @@ -300,7 +336,7 @@ void ShareLinkWidget::setNote(const QString ¬e) } } -void ShareLinkWidget::slotCreateNote() +void ShareLinkWidget::slotCreateNote() { setNote(_ui->textEdit_note->toPlainText()); } @@ -435,6 +471,21 @@ void ShareLinkWidget::slotAnimationFinished() deleteLater(); } +void ShareLinkWidget::slotCreateLabel() +{ + if (_linkShare) { + slotToggleButtonAnimation(_shareLinkButton, _shareLinkProgressIndicator, true, true); + _ui->errorLabel->hide(); + _linkShare->setLabel(_shareLinkEdit->text()); + } +} + +void ShareLinkWidget::slotLabelSet() +{ + slotToggleButtonAnimation(_shareLinkButton, _shareLinkProgressIndicator, true, false); + displayShareLinkLabel(); +} + void ShareLinkWidget::slotDeleteAnimationFinished() { // There is a painting bug where a small line of this widget isn't @@ -615,4 +666,12 @@ void ShareLinkWidget::customizeStyle() _ui->passwordProgressIndicator->setColor(QGuiApplication::palette().color(QPalette::Text)); } +void ShareLinkWidget::displayShareLinkLabel() +{ + _shareLinkElidedLabel->clear(); + if(!_linkShare->getLabel().isEmpty()) { + _shareLinkElidedLabel->setText(QString("(%1)").arg(_linkShare->getLabel())); + } +} + } |