Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamila <hello@camila.codes>2021-09-14 15:10:44 +0300
committerMatthieu Gallien (Rebase PR Action) <matthieu_gallien@yahoo.fr>2021-09-21 13:01:20 +0300
commitba8ec56e651f054cf5ae6c1bf64f34213f1a1c94 (patch)
tree1b94a43e3068e15ab479654a6281691414610536 /src/gui/sharelinkwidget.cpp
parentd0d4b08a094454ae69b5ad2b4cc1b6b3626f8f0a (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.cpp65
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 &note)
}
}
-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()));
+ }
+}
+
}