diff --git a/src/gui/elidedlabel.cpp b/src/gui/elidedlabel.cpp
index a5ce9bb227..f397e7edd6 100644
--- a/src/gui/elidedlabel.cpp
+++ b/src/gui/elidedlabel.cpp
@@ -18,6 +18,12 @@
namespace OCC {
+ElidedLabel::ElidedLabel(QWidget *parent)
+ : QLabel(parent)
+ , _elideMode(Qt::ElideNone)
+{
+}
+
ElidedLabel::ElidedLabel(const QString &text, QWidget *parent)
: QLabel(text, parent)
, _text(text)
diff --git a/src/gui/elidedlabel.h b/src/gui/elidedlabel.h
index 1101dc16bb..968628c8f1 100644
--- a/src/gui/elidedlabel.h
+++ b/src/gui/elidedlabel.h
@@ -24,6 +24,7 @@ class ElidedLabel : public QLabel
{
Q_OBJECT
public:
+ explicit ElidedLabel(QWidget *parent = nullptr);
explicit ElidedLabel(const QString &text, QWidget *parent = nullptr);
void setText(const QString &text);
diff --git a/src/gui/sharedialog.ui b/src/gui/sharedialog.ui
index 4191615d96..033c419a08 100644
--- a/src/gui/sharedialog.ui
+++ b/src/gui/sharedialog.ui
@@ -6,31 +6,10 @@
0
0
- 360
- 120
+ 372
+ 150
-
-
- 0
- 0
-
-
-
-
- 360
- 120
-
-
-
-
- 360
- 16777215
-
-
-
- Dialog
-
10
@@ -39,7 +18,7 @@
QLayout::SetFixedSize
- 15
+ 10
10
@@ -52,9 +31,6 @@
-
-
- QLayout::SetFixedSize
-
0
@@ -77,7 +53,7 @@
- 210
+ 315
0
@@ -93,15 +69,9 @@
Qt::PlainText
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
true
-
- 0
-
-
@@ -114,28 +84,19 @@
- 210
+ 315
0
-
- 0
-
share label
Qt::PlainText
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
true
-
- 0
-
-
@@ -161,12 +122,6 @@
Icon
-
- 0
-
-
- 0
-
@@ -174,32 +129,14 @@
-
-
+
0
0
-
-
- 350
- 45
-
-
-
-
- 16777215
- 16777215
-
-
QFrame::NoFrame
-
- QFrame::Plain
-
-
- 0
-
Qt::ScrollBarAlwaysOff
@@ -207,58 +144,18 @@
QAbstractScrollArea::AdjustToContentsOnFirstShow
- false
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
+ true
0
0
- 340
- 45
+ 352
+ 68
-
-
- 0
- 0
-
-
-
-
- 340
- 45
-
-
-
-
- 16777215
- 16777215
-
-
-
-
- 0
-
-
- QLayout::SetFixedSize
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
+
diff --git a/src/gui/sharelinkwidget.cpp b/src/gui/sharelinkwidget.cpp
index 6eb4c25926..34ac9a84c1 100644
--- a/src/gui/sharelinkwidget.cpp
+++ b/src/gui/sharelinkwidget.cpp
@@ -58,18 +58,16 @@ ShareLinkWidget::ShareLinkWidget(AccountPtr account,
, _unshareLinkAction(nullptr)
{
_ui->setupUi(this);
+
+ QSizePolicy sp = _ui->shareLinkToolButton->sizePolicy();
+ sp.setRetainSizeWhenHidden(true);
+ _ui->shareLinkToolButton->setSizePolicy(sp);
_ui->shareLinkToolButton->hide();
//Is this a file or folder?
QFileInfo fi(localPath);
_isFile = fi.isFile();
- // the following progress indicator widgets are added to layouts which makes them
- // automatically deleted once the dialog dies.
- _pi_indicator = new QProgressIndicator();
- _ui->horizontalLayout->insertWidget(1, _pi_indicator, Qt::AlignCenter);
- _ui->indicatorWidget->hide();
-
connect(_ui->enableShareLink, &QCheckBox::toggled, this, &ShareLinkWidget::slotCreateOrDeleteShareLink);
connect(_ui->lineEdit_password, &QLineEdit::returnPressed, this, &ShareLinkWidget::slotCreatePassword);
connect(_ui->confirmPassword, &QAbstractButton::clicked, this, &ShareLinkWidget::slotCreatePassword);
@@ -87,18 +85,17 @@ ShareLinkWidget::ShareLinkWidget(AccountPtr account,
sharingPossible = false;
}
- if (!sharingPossible)
- _ui->shareLinkWidget->hide();
- else
- _ui->shareLinkWidget->show();
+ _ui->createShareButton->setVisible(sharingPossible);
+ _ui->enableShareLink->setVisible(sharingPossible);
+ _ui->shareLinkToolButton->setVisible(sharingPossible);
// Older servers don't support multiple public link shares
if (!_account->capabilities().sharePublicLinkMultiple()) {
_namesSupported = false;
}
- _ui->passwordShareProperty->hide();
- _ui->expirationShareProperty->hide();
+ togglePasswordOptions(false);
+ toggleExpireDateOptions(false);
_ui->calendar->setMinimumDate(QDate::currentDate().addDays(1));
// check if the file is already inside of a synced folder
@@ -139,12 +136,12 @@ ShareLinkWidget::~ShareLinkWidget()
}
void ShareLinkWidget::toggleAnimation(bool start){
- if(start && !_pi_indicator->isAnimated())
- _pi_indicator->startAnimation();
- else
- _pi_indicator->stopAnimation();
-
- _ui->indicatorWidget->setVisible(start);
+ if (start) {
+ if (!_ui->progressIndicator->isAnimated())
+ _ui->progressIndicator->startAnimation();
+ } else {
+ _ui->progressIndicator->stopAnimation();
+ }
}
void ShareLinkWidget::getShares()
@@ -231,7 +228,7 @@ void ShareLinkWidget::slotSharesFetched(const QList> &shar
if(_linkShare->isPasswordSet()){
_passwordProtectLinkAction->setChecked(true);
_ui->lineEdit_password->setPlaceholderText("********");
- _ui->passwordShareProperty->show();
+ showPasswordOptions(true);
}
// If password is enforced then don't allow users to disable it
@@ -247,7 +244,7 @@ void ShareLinkWidget::slotSharesFetched(const QList> &shar
if(_linkShare->getExpireDate().isValid()){
_ui->calendar->setDate(_linkShare->getExpireDate());
_expirationDateLinkAction->setChecked(true);
- _ui->expirationShareProperty->show();
+ showExpireDateOptions(true);
}
@@ -401,7 +398,7 @@ void ShareLinkWidget::slotCreateShareRequiresPassword(const QString &message)
{
toggleAnimation(true);
- _ui->passwordShareProperty->show();
+ showPasswordOptions(true);
if (!message.isEmpty()) {
_ui->errorLabel->setText(message);
_ui->errorLabel->show();
@@ -412,9 +409,16 @@ void ShareLinkWidget::slotCreateShareRequiresPassword(const QString &message)
togglePasswordOptions(true);
}
+void ShareLinkWidget::showPasswordOptions(bool show)
+{
+ _ui->passwordLabel->setVisible(show);
+ _ui->lineEdit_password->setVisible(show);
+ _ui->confirmPassword->setVisible(show);
+}
+
void ShareLinkWidget::togglePasswordOptions(bool enable)
{
- _ui->passwordShareProperty->setVisible(enable);
+ showPasswordOptions(enable);
if(enable) {
_ui->lineEdit_password->setFocus();
@@ -425,9 +429,17 @@ void ShareLinkWidget::togglePasswordOptions(bool enable)
}
}
+void ShareLinkWidget::showExpireDateOptions(bool show)
+{
+ _ui->expirationLabel->setVisible(show);
+ _ui->calendar->setVisible(show);
+ _ui->confirmExpirationDate->setVisible(show);
+}
+
void ShareLinkWidget::toggleExpireDateOptions(bool enable)
{
- _ui->expirationShareProperty->setVisible(enable);
+ showExpireDateOptions(enable);
+
if (enable) {
const QDate date = QDate::currentDate().addDays(1);
_ui->calendar->setDate(date);
diff --git a/src/gui/sharelinkwidget.h b/src/gui/sharelinkwidget.h
index 6f860c4aad..8094a9789c 100644
--- a/src/gui/sharelinkwidget.h
+++ b/src/gui/sharelinkwidget.h
@@ -83,9 +83,11 @@ private slots:
private:
void displayError(const QString &errMsg);
+ void showPasswordOptions(bool show);
void togglePasswordOptions(bool enable);
void setPassword(const QString &password);
+ void showExpireDateOptions(bool show);
void toggleExpireDateOptions(bool enable);
void setExpireDate(const QDate &date);
@@ -105,8 +107,6 @@ private:
QString _localPath;
QString _shareUrl;
- QProgressIndicator *_pi_indicator;
-
ShareManager *_manager;
QSharedPointer _linkShare;
diff --git a/src/gui/sharelinkwidget.ui b/src/gui/sharelinkwidget.ui
index 174ba1537f..8affe169ae 100644
--- a/src/gui/sharelinkwidget.ui
+++ b/src/gui/sharelinkwidget.ui
@@ -11,33 +11,12 @@
-
+
0
0
-
-
- 350
- 110
-
-
-
-
- 16777215
- 16777215
-
-
-
- Share NewDocument.odt
-
-
-
- 10
-
-
- QLayout::SetFixedSize
-
+
0
@@ -50,423 +29,162 @@
0
- -
-
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ text-align: left
+
+
+ &Share link
+
+
+
+ :/client/resources/public.svg:/client/resources/public.svg
+
+
+ true
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 25
+
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 25
+
+
+
+
+ -
+
+
+ Enable
+
+
+
+
+
+ -
+
+ false
+
+
+
+ :/client/resources/more.svg:/client/resources/more.svg
+
+
+ QToolButton::InstantPopup
+
+
+
+ -
+
+
+
+ 1
+ 0
+
+
+
+ Password:
+
+
+ 20
+
+
+
+ -
+
+
+
+ 1
+ 0
+
+
+
+ QLineEdit::Password
+
+
+
+ -
+
+
+
+ :/client/resources/confirm.svg:/client/resources/confirm.svg
+
+
true
+
+
+ -
+
-
- 0
+
+ 1
0
-
-
- 350
- 0
-
+
+ Expiration date:
+
+
+ 20
-
-
- 3
-
-
- QLayout::SetFixedSize
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
- true
-
-
-
- 0
- 0
-
-
-
-
- 242
- 26
-
-
-
-
- 350
- 26
-
-
-
- Qt::LeftToRight
-
-
- false
-
-
- text-align: left
-
-
- &Share link
-
-
-
- :/client/resources/public.svg:/client/resources/public.svg
-
-
- false
-
-
- true
-
-
-
- -
-
-
-
- 82
- 26
-
-
-
- Enable
-
-
-
- -
-
-
- false
-
-
-
- 26
- 26
-
-
-
- Qt::ActionsContextMenu
-
-
-
-
-
-
-
-
-
- :/client/resources/more.svg:/client/resources/more.svg
-
-
- QToolButton::InstantPopup
-
-
- Qt::ToolButtonIconOnly
-
-
-
-
- -
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 300
- 0
-
-
-
-
- 16777215
- 16777215
-
-
-
-
- 0
-
-
- QLayout::SetFixedSize
-
-
- 18
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 162
- 0
-
-
-
- Password:
-
-
- 0
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 120
- 26
-
-
-
-
- 100
- 16777215
-
-
-
- QLineEdit::Password
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 18
- 26
-
-
-
-
- 16777215
- 16777215
-
-
-
- false
-
-
- background-color: rgba(255, 255, 255, 0);
-
-
-
-
-
-
- :/client/resources/confirm.svg:/client/resources/confirm.svg
-
-
- true
-
-
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 300
- 0
-
-
-
-
- 0
-
-
- QLayout::SetFixedSize
-
-
- 18
-
-
- 0
-
-
- 0
-
-
- 0
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 162
- 26
-
-
-
- Expiration date:
-
-
- 0
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 120
- 26
-
-
-
-
- 16777215
- 16777215
-
-
-
- true
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 18
- 26
-
-
-
-
- 18
- 16777215
-
-
-
-
-
-
-
- :/client/resources/confirm.svg:/client/resources/confirm.svg
-
-
- true
-
-
-
-
-
-
- -
-
+
-
+
- 0
+ 1
0
-
-
- 0
- 0
-
+
+
+ -
+
+
+
+ :/client/resources/confirm.svg:/client/resources/confirm.svg
-
-
- 16777215
- 16777215
-
+
+ true
+
+
+ -
+
@@ -510,23 +228,22 @@
Qt::PlainText
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
true
-
- 0
-
-
- 0
-
+
+
+ QProgressIndicator
+ QWidget
+
+ 1
+
+
diff --git a/src/gui/shareusergroupwidget.cpp b/src/gui/shareusergroupwidget.cpp
index 14fa90a3e1..6f85809d91 100644
--- a/src/gui/shareusergroupwidget.cpp
+++ b/src/gui/shareusergroupwidget.cpp
@@ -87,7 +87,7 @@ ShareUserGroupWidget::ShareUserGroupWidget(AccountPtr account,
connect(_manager, &ShareManager::shareCreated, this, &ShareUserGroupWidget::getShares);
connect(_manager, &ShareManager::serverError, this, &ShareUserGroupWidget::displayError);
connect(_ui->shareeLineEdit, &QLineEdit::returnPressed, this, &ShareUserGroupWidget::slotLineEditReturn);
- connect(_ui->confirmShare, &QPushButton::clicked, this, &ShareUserGroupWidget::slotLineEditReturn);
+ connect(_ui->confirmShare, &QAbstractButton::clicked, this, &ShareUserGroupWidget::slotLineEditReturn);
//TODO connect(_ui->privateLinkText, &QLabel::linkActivated, this, &ShareUserGroupWidget::slotPrivateLinkShare);
// By making the next two QueuedConnections we can override
@@ -187,8 +187,9 @@ void ShareUserGroupWidget::slotSharesFetched(const QList>
auto newViewPort = new QWidget(scrollArea);
auto layout = new QVBoxLayout(newViewPort);
- QSize minimumSize = newViewPort->sizeHint();
+ layout->setContentsMargins(0, 0, 0, 0);
int x = 0;
+ int height = 0;
foreach (const auto &share, shares) {
// We don't handle link shares, only TypeUser or TypeGroup
@@ -204,22 +205,13 @@ void ShareUserGroupWidget::slotSharesFetched(const QList>
x++;
if (x <= 3) {
- minimumSize = newViewPort->sizeHint();
- } else {
- minimumSize.rwidth() = qMax(newViewPort->sizeHint().width(), minimumSize.width());
+ height = newViewPort->sizeHint().height();
}
}
- if (!layout->isEmpty()) {
- _parentScrollArea->setVisible(true);
- layout->addStretch(1);
- } else {
- _parentScrollArea->setVisible(false);
- }
-
- minimumSize.rwidth() += layout->spacing();
- minimumSize.rheight() += layout->spacing();
- scrollArea->setMinimumSize(minimumSize);
+ scrollArea->setFrameShape(x > 3 ? QFrame::StyledPanel : QFrame::NoFrame);
+ scrollArea->setVisible(!shares.isEmpty());
+ scrollArea->setFixedHeight(height);
scrollArea->setWidget(newViewPort);
_disableCompleterActivated = false;
@@ -229,14 +221,12 @@ void ShareUserGroupWidget::slotSharesFetched(const QList>
void ShareUserGroupWidget::slotAdjustScrollWidgetSize()
{
QScrollArea *scrollArea = _parentScrollArea;
- if (scrollArea->findChildren().count() <= 3 &&
- scrollArea->findChildren().count() > 0) {
- auto minimumSize = scrollArea->widget()->sizeHint();
- auto spacing = scrollArea->widget()->layout()->spacing();
- minimumSize.rwidth() += spacing;
- minimumSize.rheight() += spacing;
- scrollArea->setMinimumSize(minimumSize);
+ int count = scrollArea->findChildren().count();
+ scrollArea->setVisible(count > 0);
+ if (count > 0 && count <= 3) {
+ scrollArea->setFixedHeight(scrollArea->widget()->sizeHint().height());
}
+ scrollArea->setFrameShape(count > 3 ? QFrame::StyledPanel : QFrame::NoFrame);
}
void ShareUserGroupWidget::slotPrivateLinkShare()
@@ -269,16 +259,9 @@ void ShareUserGroupWidget::slotCompleterActivated(const QModelIndex &index)
// model proxying the _completerModel
auto sharee = qvariant_cast>(index.data(Qt::UserRole));
if (sharee.isNull()) {
- _parentScrollArea->setVisible(false);
return;
}
- /*
- * Add spinner to the bottom of the widget list
- */
- auto viewPort = _parentScrollArea->widget();
- auto layout = qobject_cast(viewPort->layout());
-
// TODO Progress Indicator where should it go?
// auto indicator = new QProgressIndicator(viewPort);
// indicator->startAnimation();
@@ -312,11 +295,6 @@ void ShareUserGroupWidget::slotCompleterActivated(const QModelIndex &index)
_ui->shareeLineEdit->setEnabled(false);
_ui->shareeLineEdit->setText(QString());
-
- if(layout->isEmpty())
- _parentScrollArea->setVisible(false);
- else
- _parentScrollArea->setVisible(true);
}
void ShareUserGroupWidget::slotCompleterHighlighted(const QModelIndex &index)
@@ -370,10 +348,8 @@ ShareUserLine::ShareUserLine(QSharedPointer share,
{
_ui->setupUi(this);
- QString sharedWithText(share->getShareWith()->format());
- QFontMetrics metrics(_ui->sharedWith->font());
- QString elidedText = metrics.elidedText(sharedWithText, Qt::ElideRight, _ui->sharedWith->width());
- _ui->sharedWith->setText(elidedText);
+ _ui->sharedWith->setElideMode(Qt::ElideRight);
+ _ui->sharedWith->setText(share->getShareWith()->format());
// adds permissions
// can edit permission
diff --git a/src/gui/shareusergroupwidget.ui b/src/gui/shareusergroupwidget.ui
index 8d01fa9663..51682bb056 100644
--- a/src/gui/shareusergroupwidget.ui
+++ b/src/gui/shareusergroupwidget.ui
@@ -11,33 +11,15 @@
-
+
0
0
-
-
- 350
- 55
-
-
-
-
- 350
- 16777215
-
-
-
- Share NewDocument.odt
-
-
+
0
-
- QLayout::SetFixedSize
-
0
@@ -51,13 +33,7 @@
0
-
-
-
- 0
-
-
- QLayout::SetFixedSize
-
+
0
@@ -72,57 +48,18 @@
-
-
-
- 0
- 0
-
-
-
-
- 332
- 26
-
-
-
-
- 16777215
- 16777215
-
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
Share with users or groups ...
-
-
-
-
- 0
- 0
-
-
-
-
- 18
- 0
-
-
-
- background-color: rgb(255, 255, 255);
-
-
-
-
+
:/client/resources/confirm.svg:/client/resources/confirm.svg
-
+
true
@@ -132,23 +69,11 @@
-
-
+
0
0
-
-
- 350
- 26
-
-
-
-
- 16777215
- 16777215
-
-
@@ -186,9 +111,6 @@
-
- 0
-
Placeholder for Error text
@@ -198,12 +120,6 @@
true
-
- 0
-
-
- 0
-
diff --git a/src/gui/shareuserline.ui b/src/gui/shareuserline.ui
index 4cab568394..0de3009300 100644
--- a/src/gui/shareuserline.ui
+++ b/src/gui/shareuserline.ui
@@ -2,9 +2,6 @@
OCC::ShareUserLine
-
- true
-
0
@@ -14,36 +11,18 @@
-
+
0
0
-
-
- 350
- 45
-
-
-
-
- 16777215
- 46
-
-
-
- Form
-
true
-
+
5
-
- QLayout::SetFixedSize
-
5
@@ -70,73 +49,27 @@
40
-
-
- 0
- 0
-
-
-
- false
-
-
-
-
-
- false
-
Qt::AlignCenter
-
- true
-
-
- 0
-
-
-
+
-
+
0
0
-
-
- 100
- 26
-
-
User name
Qt::PlainText
-
- true
-
- -
-
-
- Qt::Horizontal
-
-
- QSizePolicy::Expanding
-
-
-
- 50
- 15
-
-
-
-
-
@@ -145,12 +78,6 @@
0
-
-
- 0
- 0
-
-
can edit
@@ -158,21 +85,6 @@
-
-
-
- 0
- 0
-
-
-
-
- 26
- 26
-
-
-
-
-
:/client/resources/more.svg:/client/resources/more.svg
@@ -181,21 +93,6 @@
-
-
-
- 0
- 0
-
-
-
-
- 26
- 26
-
-
-
-
-
..
@@ -204,6 +101,13 @@
+
+
+ OCC::ElidedLabel
+ QLabel
+
+
+