mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-28 07:54:49 +03:00
ShareDialog: Use a tab widget #5655
This commit is contained in:
parent
70c3514996
commit
76e67db04b
4 changed files with 52 additions and 54 deletions
|
@ -102,7 +102,8 @@ ShareDialog::ShareDialog(QPointer<AccountState> accountState,
|
||||||
this->setWindowTitle(tr("%1 Sharing").arg(Theme::instance()->appNameGUI()));
|
this->setWindowTitle(tr("%1 Sharing").arg(Theme::instance()->appNameGUI()));
|
||||||
|
|
||||||
if (!accountState->account()->capabilities().shareAPI()) {
|
if (!accountState->account()->capabilities().shareAPI()) {
|
||||||
_ui->shareWidgetsLayout->addWidget(new QLabel(tr("The server does not allow sharing")));
|
_ui->shareWidgets->hide();
|
||||||
|
layout()->replaceWidget(_ui->shareWidgets, new QLabel(tr("The server does not allow sharing")));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,7 +116,7 @@ ShareDialog::ShareDialog(QPointer<AccountState> accountState,
|
||||||
_progressIndicator = new QProgressIndicator(this);
|
_progressIndicator = new QProgressIndicator(this);
|
||||||
_progressIndicator->startAnimation();
|
_progressIndicator->startAnimation();
|
||||||
_progressIndicator->setToolTip(tr("Retrieving maximum possible sharing permissions from server..."));
|
_progressIndicator->setToolTip(tr("Retrieving maximum possible sharing permissions from server..."));
|
||||||
_ui->shareWidgetsLayout->addWidget(_progressIndicator);
|
_ui->buttonBoxLayout->insertWidget(0, _progressIndicator);
|
||||||
|
|
||||||
// Server versions >= 9.1 support the "share-permissions" property
|
// Server versions >= 9.1 support the "share-permissions" property
|
||||||
// older versions will just return share-permissions: ""
|
// older versions will just return share-permissions: ""
|
||||||
|
@ -171,7 +172,7 @@ void ShareDialog::showSharingUi()
|
||||||
if (!canReshare) {
|
if (!canReshare) {
|
||||||
auto label = new QLabel(this);
|
auto label = new QLabel(this);
|
||||||
label->setText(tr("The file can not be shared because it was shared without sharing permission."));
|
label->setText(tr("The file can not be shared because it was shared without sharing permission."));
|
||||||
_ui->shareWidgetsLayout->addWidget(label);
|
layout()->replaceWidget(_ui->shareWidgets, label);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,7 +185,7 @@ void ShareDialog::showSharingUi()
|
||||||
|
|
||||||
if (userGroupSharing) {
|
if (userGroupSharing) {
|
||||||
_userGroupWidget = new ShareUserGroupWidget(_accountState->account(), _sharePath, _localPath, _maxSharingPermissions, this);
|
_userGroupWidget = new ShareUserGroupWidget(_accountState->account(), _sharePath, _localPath, _maxSharingPermissions, this);
|
||||||
_ui->shareWidgetsLayout->addWidget(_userGroupWidget);
|
_ui->shareWidgets->addTab(_userGroupWidget, tr("Users and Groups"));
|
||||||
_userGroupWidget->getShares();
|
_userGroupWidget->getShares();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -196,12 +197,11 @@ void ShareDialog::showSharingUi()
|
||||||
// Make the line softer:
|
// Make the line softer:
|
||||||
p.setColor(QPalette::Foreground, QColor::fromRgba((p.color(QPalette::Foreground).rgba() & 0x00ffffff) | 0x50000000));
|
p.setColor(QPalette::Foreground, QColor::fromRgba((p.color(QPalette::Foreground).rgba() & 0x00ffffff) | 0x50000000));
|
||||||
hline->setPalette(p);
|
hline->setPalette(p);
|
||||||
_ui->shareWidgetsLayout->addWidget(hline);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_linkWidget = new ShareLinkWidget(_accountState->account(), _sharePath, _localPath, _maxSharingPermissions, autoShare, this);
|
_linkWidget = new ShareLinkWidget(_accountState->account(), _sharePath, _localPath, _maxSharingPermissions, autoShare, this);
|
||||||
_linkWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
|
_linkWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
|
||||||
_ui->shareWidgetsLayout->addWidget(_linkWidget);
|
_ui->shareWidgets->addTab(_linkWidget, tr("Public Links"));
|
||||||
_linkWidget->getShares();
|
_linkWidget->getShares();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,38 +64,25 @@
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="shareWidgetsLayout">
|
<widget class="QTabWidget" name="shareWidgets"/>
|
||||||
<property name="spacing">
|
</item>
|
||||||
<number>10</number>
|
<item>
|
||||||
</property>
|
<layout class="QHBoxLayout" name="buttonBoxLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="standardButtons">
|
||||||
|
<set>QDialogButtonBox::Close</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<spacer name="verticalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="standardButtons">
|
|
||||||
<set>QDialogButtonBox::Close</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|
|
@ -178,28 +178,33 @@ void ShareUserGroupWidget::slotSharesFetched(const QList<QSharedPointer<Share>>
|
||||||
QSize minimumSize = newViewPort->sizeHint();
|
QSize minimumSize = newViewPort->sizeHint();
|
||||||
int x = 0;
|
int x = 0;
|
||||||
|
|
||||||
foreach(const auto &share, shares) {
|
if (shares.isEmpty()) {
|
||||||
// We don't handle link shares
|
layout->addWidget(new QLabel(tr("The item is not shared with any users or groups")));
|
||||||
if (share->getShareType() == Share::TypeLink) {
|
} else {
|
||||||
continue;
|
foreach(const auto &share, shares) {
|
||||||
}
|
// We don't handle link shares
|
||||||
|
if (share->getShareType() == Share::TypeLink) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
ShareWidget *s = new ShareWidget(share, _maxSharingPermissions, _isFile, _ui->scrollArea);
|
ShareWidget *s = new ShareWidget(share, _maxSharingPermissions, _isFile, _ui->scrollArea);
|
||||||
connect(s, SIGNAL(resizeRequested()), this, SLOT(slotAdjustScrollWidgetSize()));
|
connect(s, SIGNAL(resizeRequested()), this, SLOT(slotAdjustScrollWidgetSize()));
|
||||||
layout->addWidget(s);
|
connect(s, SIGNAL(visualDeletionDone()), this, SLOT(getShares()));
|
||||||
|
layout->addWidget(s);
|
||||||
|
|
||||||
x++;
|
x++;
|
||||||
if (x <= 3) {
|
if (x <= 3) {
|
||||||
minimumSize = newViewPort->sizeHint();
|
minimumSize = newViewPort->sizeHint();
|
||||||
} else {
|
} else {
|
||||||
minimumSize.rwidth() = qMax(newViewPort->sizeHint().width(), minimumSize.width());
|
minimumSize.rwidth() = qMax(newViewPort->sizeHint().width(), minimumSize.width());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
layout->addStretch(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
minimumSize.rwidth() += layout->spacing();
|
minimumSize.rwidth() += layout->spacing();
|
||||||
minimumSize.rheight() += layout->spacing();
|
minimumSize.rheight() += layout->spacing();
|
||||||
scrollArea->setMinimumSize(minimumSize);
|
scrollArea->setMinimumSize(minimumSize);
|
||||||
scrollArea->setVisible(!shares.isEmpty());
|
|
||||||
scrollArea->setWidget(newViewPort);
|
scrollArea->setWidget(newViewPort);
|
||||||
|
|
||||||
_disableCompleterActivated = false;
|
_disableCompleterActivated = false;
|
||||||
|
@ -243,10 +248,15 @@ void ShareUserGroupWidget::slotCompleterActivated(const QModelIndex & index)
|
||||||
* Add spinner to the bottom of the widget list
|
* Add spinner to the bottom of the widget list
|
||||||
*/
|
*/
|
||||||
auto viewPort = _ui->scrollArea->widget();
|
auto viewPort = _ui->scrollArea->widget();
|
||||||
auto layout = viewPort->layout();
|
auto layout = qobject_cast<QVBoxLayout*>(viewPort->layout());
|
||||||
auto indicator = new QProgressIndicator(viewPort);
|
auto indicator = new QProgressIndicator(viewPort);
|
||||||
indicator->startAnimation();
|
indicator->startAnimation();
|
||||||
layout->addWidget(indicator);
|
if (layout->count() == 1) {
|
||||||
|
// No shares yet! Remove the label, add some stretch.
|
||||||
|
delete layout->itemAt(0)->widget();
|
||||||
|
layout->addStretch(1);
|
||||||
|
}
|
||||||
|
layout->insertWidget(layout->count() - 1, indicator);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Don't send the reshare permissions for federated shares for servers <9.1
|
* Don't send the reshare permissions for federated shares for servers <9.1
|
||||||
|
@ -444,7 +454,8 @@ void ShareWidget::slotPermissionsChanged()
|
||||||
|
|
||||||
void ShareWidget::slotDeleteAnimationFinished()
|
void ShareWidget::slotDeleteAnimationFinished()
|
||||||
{
|
{
|
||||||
resizeRequested();
|
emit resizeRequested();
|
||||||
|
emit visualDeletionDone();
|
||||||
deleteLater();
|
deleteLater();
|
||||||
|
|
||||||
// There is a painting bug where a small line of this widget isn't
|
// There is a painting bug where a small line of this widget isn't
|
||||||
|
|
|
@ -59,7 +59,7 @@ public:
|
||||||
QSharedPointer<Share> share() const;
|
QSharedPointer<Share> share() const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void shareDeleted(ShareWidget *share);
|
void visualDeletionDone();
|
||||||
void resizeRequested();
|
void resizeRequested();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
Loading…
Reference in a new issue