From 7d3242077b5b657cacb226da8b8284e183764cd0 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 15 Nov 2018 20:26:09 +0100 Subject: [PATCH 01/15] ShareDialog: align the left margin All other margins are 10px. --- src/gui/sharedialog.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/sharedialog.ui b/src/gui/sharedialog.ui index 4191615d96..e11b89e903 100644 --- a/src/gui/sharedialog.ui +++ b/src/gui/sharedialog.ui @@ -39,7 +39,7 @@ QLayout::SetFixedSize - 15 + 10 10 From cd58850f5b4e0ef8faece8a3a20ee4586c920a03 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 15 Nov 2018 20:28:55 +0100 Subject: [PATCH 02/15] ShareUserGroupWidget: remove nested content margins --- src/gui/shareusergroupwidget.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/shareusergroupwidget.cpp b/src/gui/shareusergroupwidget.cpp index 14fa90a3e1..bd85654345 100644 --- a/src/gui/shareusergroupwidget.cpp +++ b/src/gui/shareusergroupwidget.cpp @@ -187,6 +187,7 @@ void ShareUserGroupWidget::slotSharesFetched(const QList> auto newViewPort = new QWidget(scrollArea); auto layout = new QVBoxLayout(newViewPort); + layout->setContentsMargins(0, 0, 0, 0); QSize minimumSize = newViewPort->sizeHint(); int x = 0; From b546e7c2249747d0808af14cfe36a47bde95f0ef Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 15 Nov 2018 10:21:52 +0100 Subject: [PATCH 03/15] ElidedLabel: add default constructor Makes it possible to promote QLabel to an ElidedLabel in Qt Designer. --- src/gui/elidedlabel.cpp | 6 ++++++ src/gui/elidedlabel.h | 1 + 2 files changed, 7 insertions(+) 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); From fae1c0dbdd2ad66e532ef9e6c58d8f77b1c68947 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 15 Nov 2018 10:23:07 +0100 Subject: [PATCH 04/15] ShareUserLine: fix eliding The widget doesn't have its final size at construction time, so the width for eliding is not yet known. Let ElidedLabel do the job. --- src/gui/shareusergroupwidget.cpp | 6 ++---- src/gui/shareuserline.ui | 11 +++++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/gui/shareusergroupwidget.cpp b/src/gui/shareusergroupwidget.cpp index bd85654345..c428bd440d 100644 --- a/src/gui/shareusergroupwidget.cpp +++ b/src/gui/shareusergroupwidget.cpp @@ -371,10 +371,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/shareuserline.ui b/src/gui/shareuserline.ui index 4cab568394..4632f162f3 100644 --- a/src/gui/shareuserline.ui +++ b/src/gui/shareuserline.ui @@ -97,9 +97,9 @@ - + - + 0 0 @@ -204,6 +204,13 @@ + + + OCC::ElidedLabel + QLabel +
elidedlabel.h
+
+
From 94750a5ea1920c56b9dbb52d4c8541c338b3399a Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 16 Nov 2018 20:23:32 +0100 Subject: [PATCH 05/15] ShareUserGroupWidget: sync the share confirm button size with others This keeps also the total width of the share dialog constant. --- src/gui/shareusergroupwidget.ui | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/gui/shareusergroupwidget.ui b/src/gui/shareusergroupwidget.ui index 8d01fa9663..f7f1697162 100644 --- a/src/gui/shareusergroupwidget.ui +++ b/src/gui/shareusergroupwidget.ui @@ -109,7 +109,13 @@ 18 - 0 + 26 + + + + + 18 + 16777215 From df802472cb77b272a8d6c502fe9aca4de196f4fd Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 16 Nov 2018 20:25:34 +0100 Subject: [PATCH 06/15] ShareLinkWidget: sync the confirm button size --- src/gui/sharelinkwidget.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/sharelinkwidget.ui b/src/gui/sharelinkwidget.ui index 174ba1537f..5a6edb54e6 100644 --- a/src/gui/sharelinkwidget.ui +++ b/src/gui/sharelinkwidget.ui @@ -307,7 +307,7 @@ - 16777215 + 18 16777215 From 96d0059ca4cd37a42b4c2722dcadcf0804ebc027 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 16 Nov 2018 21:11:55 +0100 Subject: [PATCH 07/15] ShareDialog: use auto-raising tool buttons as confirm buttons --- src/gui/sharelinkwidget.ui | 56 +++----------------------------- src/gui/shareusergroupwidget.cpp | 2 +- src/gui/shareusergroupwidget.ui | 28 ++-------------- 3 files changed, 7 insertions(+), 79 deletions(-) diff --git a/src/gui/sharelinkwidget.ui b/src/gui/sharelinkwidget.ui index 5a6edb54e6..64d0fd594f 100644 --- a/src/gui/sharelinkwidget.ui +++ b/src/gui/sharelinkwidget.ui @@ -292,39 +292,12 @@ - - - - 0 - 0 - - - - - 18 - 26 - - - - - 18 - 16777215 - - - - false - - - background-color: rgba(255, 255, 255, 0); - - - - + :/client/resources/confirm.svg:/client/resources/confirm.svg - + true @@ -413,33 +386,12 @@ - - - - 0 - 0 - - - - - 18 - 26 - - - - - 18 - 16777215 - - - - - + :/client/resources/confirm.svg:/client/resources/confirm.svg - + true diff --git a/src/gui/shareusergroupwidget.cpp b/src/gui/shareusergroupwidget.cpp index c428bd440d..246cc4a5a9 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 diff --git a/src/gui/shareusergroupwidget.ui b/src/gui/shareusergroupwidget.ui index f7f1697162..69a23d334d 100644 --- a/src/gui/shareusergroupwidget.ui +++ b/src/gui/shareusergroupwidget.ui @@ -99,36 +99,12 @@ - - - - 0 - 0 - - - - - 18 - 26 - - - - - 18 - 16777215 - - - - background-color: rgb(255, 255, 255); - - - - + :/client/resources/confirm.svg:/client/resources/confirm.svg - + true From bd93489b146c32f97e1726e8616d2a86b2ae535a Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 16 Nov 2018 21:23:50 +0100 Subject: [PATCH 08/15] Cleanup shareusergroupwidget.ui Remove hard-coded fixed sizes, size constraints, and other unnecessary property assignments. This works with any dialog width, meaning that the width can be defined in one place higher up in the widget hierachy. --- src/gui/shareusergroupwidget.ui | 74 ++------------------------------- 1 file changed, 4 insertions(+), 70 deletions(-) diff --git a/src/gui/shareusergroupwidget.ui b/src/gui/shareusergroupwidget.ui index 69a23d334d..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,27 +48,6 @@ - - - 0 - 0 - - - - - 332 - 26 - - - - - 16777215 - 16777215 - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - Share with users or groups ... @@ -114,23 +69,11 @@ - + 0 0 - - - 350 - 26 - - - - - 16777215 - 16777215 - - @@ -168,9 +111,6 @@ - - 0 - Placeholder for Error text @@ -180,12 +120,6 @@ true - - 0 - - - 0 - From 847706432ba8be608b89d482995806b2e480fa9c Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 16 Nov 2018 23:02:34 +0100 Subject: [PATCH 09/15] ShareLinkWidget: redo the layout NOTE: The progress indicator is temporarily moved one line up to avoid inserting it on its own line, which would cause the content pushed down and the dialog size jump back and forth. --- src/gui/sharelinkwidget.cpp | 58 ++-- src/gui/sharelinkwidget.h | 4 +- src/gui/sharelinkwidget.ui | 533 ++++++++++-------------------------- 3 files changed, 186 insertions(+), 409 deletions(-) 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 64d0fd594f..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,375 +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 - - - - - - - - :/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 - - - - - - - - :/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 + + + + @@ -462,23 +228,22 @@ Qt::PlainText - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - true - - 0 - - - 0 - + + + QProgressIndicator + QWidget +
QProgressIndicator.h
+ 1 +
+
From f0f691fffc10a6c609d4bd4d01827427e51fd4ab Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sat, 17 Nov 2018 08:12:48 +0100 Subject: [PATCH 10/15] Cleanup shareuserline.ui --- src/gui/shareuserline.ui | 107 +-------------------------------------- 1 file changed, 2 insertions(+), 105 deletions(-) diff --git a/src/gui/shareuserline.ui b/src/gui/shareuserline.ui index 4632f162f3..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,30 +49,9 @@ 40 - - - 0 - 0 - - - - false - - - - - - false - Qt::AlignCenter - - true - - - 0 -
@@ -104,39 +62,14 @@ 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 - - - - - .. From a8cce41f354258b7037ec3c12bcc5f1b1dac1107 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sat, 17 Nov 2018 08:19:12 +0100 Subject: [PATCH 11/15] sharedialog.ui: fix scroll area size --- src/gui/sharedialog.ui | 72 ++---------------------------------------- 1 file changed, 3 insertions(+), 69 deletions(-) diff --git a/src/gui/sharedialog.ui b/src/gui/sharedialog.ui index e11b89e903..6635bfc4fb 100644 --- a/src/gui/sharedialog.ui +++ b/src/gui/sharedialog.ui @@ -174,32 +174,14 @@ - + 0 0 - - - 350 - 45 - - - - - 16777215 - 16777215 - - QFrame::NoFrame - - QFrame::Plain - - - 0 - Qt::ScrollBarAlwaysOff @@ -207,58 +189,10 @@ QAbstractScrollArea::AdjustToContentsOnFirstShow - false - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + true - - - 0 - 0 - 340 - 45 - - - - - 0 - 0 - - - - - 340 - 45 - - - - - 16777215 - 16777215 - - - - - 0 - - - QLayout::SetFixedSize - - - 0 - - - 0 - - - 0 - - - 0 - - + From b25e15347babeecdd14b88de346c3579e10848dc Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sat, 17 Nov 2018 08:34:28 +0100 Subject: [PATCH 12/15] ShareUserGroupWidget: fix scroll area size management --- src/gui/shareusergroupwidget.cpp | 41 +++++++------------------------- 1 file changed, 8 insertions(+), 33 deletions(-) diff --git a/src/gui/shareusergroupwidget.cpp b/src/gui/shareusergroupwidget.cpp index 246cc4a5a9..ebdf24e62d 100644 --- a/src/gui/shareusergroupwidget.cpp +++ b/src/gui/shareusergroupwidget.cpp @@ -188,8 +188,8 @@ void ShareUserGroupWidget::slotSharesFetched(const QList> auto newViewPort = new QWidget(scrollArea); auto layout = new QVBoxLayout(newViewPort); layout->setContentsMargins(0, 0, 0, 0); - QSize minimumSize = newViewPort->sizeHint(); int x = 0; + int height = 0; foreach (const auto &share, shares) { // We don't handle link shares, only TypeUser or TypeGroup @@ -205,22 +205,12 @@ 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->setVisible(!shares.isEmpty()); + scrollArea->setFixedHeight(height); scrollArea->setWidget(newViewPort); _disableCompleterActivated = false; @@ -230,13 +220,10 @@ 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()); } } @@ -270,16 +257,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(); @@ -313,11 +293,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) From 3c193143f2add8004853d7b1ca176a68fdd6d8fb Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sat, 17 Nov 2018 08:47:01 +0100 Subject: [PATCH 13/15] Cleanup sharedialog.ui --- src/gui/sharedialog.ui | 57 ++++++++---------------------------------- 1 file changed, 10 insertions(+), 47 deletions(-) diff --git a/src/gui/sharedialog.ui b/src/gui/sharedialog.ui index 6635bfc4fb..82b5053835 100644 --- a/src/gui/sharedialog.ui +++ b/src/gui/sharedialog.ui @@ -10,27 +10,6 @@ 120 - - - 0 - 0 - - - - - 360 - 120 - - - - - 360 - 16777215 - - - - Dialog - 10 @@ -52,9 +31,6 @@ - - QLayout::SetFixedSize - 0 @@ -77,7 +53,7 @@ - 210 + 300 0 @@ -93,15 +69,9 @@ Qt::PlainText - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - true - - 0 - @@ -114,28 +84,19 @@ - 210 + 300 0 - - 0 - share label Qt::PlainText - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - true - - 0 - @@ -161,12 +122,6 @@ Icon - - 0 - - - 0 - @@ -192,6 +147,14 @@ true + + + 0 + 0 + 340 + 45 + + From 6f145e3a801d57371365162a36134aba8a03e076 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sat, 17 Nov 2018 08:52:28 +0100 Subject: [PATCH 14/15] ShareUserGroupWidget: allow frame when scrollable --- src/gui/shareusergroupwidget.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/shareusergroupwidget.cpp b/src/gui/shareusergroupwidget.cpp index ebdf24e62d..6f85809d91 100644 --- a/src/gui/shareusergroupwidget.cpp +++ b/src/gui/shareusergroupwidget.cpp @@ -209,6 +209,7 @@ void ShareUserGroupWidget::slotSharesFetched(const QList> } } + scrollArea->setFrameShape(x > 3 ? QFrame::StyledPanel : QFrame::NoFrame); scrollArea->setVisible(!shares.isEmpty()); scrollArea->setFixedHeight(height); scrollArea->setWidget(newViewPort); @@ -225,6 +226,7 @@ void ShareUserGroupWidget::slotAdjustScrollWidgetSize() if (count > 0 && count <= 3) { scrollArea->setFixedHeight(scrollArea->widget()->sizeHint().height()); } + scrollArea->setFrameShape(count > 3 ? QFrame::StyledPanel : QFrame::NoFrame); } void ShareUserGroupWidget::slotPrivateLinkShare() From d6170271e909a7f6313f0ed43c96ce4cd1841d52 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sat, 17 Nov 2018 09:24:45 +0100 Subject: [PATCH 15/15] ShareDialog: increase the width To match the old width it had before the alignment work. --- src/gui/sharedialog.ui | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gui/sharedialog.ui b/src/gui/sharedialog.ui index 82b5053835..033c419a08 100644 --- a/src/gui/sharedialog.ui +++ b/src/gui/sharedialog.ui @@ -6,8 +6,8 @@ 0 0 - 360 - 120 + 372 + 150 @@ -53,7 +53,7 @@ - 300 + 315 0 @@ -84,7 +84,7 @@ - 300 + 315 0 @@ -151,8 +151,8 @@ 0 0 - 340 - 45 + 352 + 68