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()));
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -115,7 +116,7 @@ ShareDialog::ShareDialog(QPointer<AccountState> accountState,
|
|||
_progressIndicator = new QProgressIndicator(this);
|
||||
_progressIndicator->startAnimation();
|
||||
_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
|
||||
// older versions will just return share-permissions: ""
|
||||
|
@ -171,7 +172,7 @@ void ShareDialog::showSharingUi()
|
|||
if (!canReshare) {
|
||||
auto label = new QLabel(this);
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -184,7 +185,7 @@ void ShareDialog::showSharingUi()
|
|||
|
||||
if (userGroupSharing) {
|
||||
_userGroupWidget = new ShareUserGroupWidget(_accountState->account(), _sharePath, _localPath, _maxSharingPermissions, this);
|
||||
_ui->shareWidgetsLayout->addWidget(_userGroupWidget);
|
||||
_ui->shareWidgets->addTab(_userGroupWidget, tr("Users and Groups"));
|
||||
_userGroupWidget->getShares();
|
||||
}
|
||||
|
||||
|
@ -196,12 +197,11 @@ void ShareDialog::showSharingUi()
|
|||
// Make the line softer:
|
||||
p.setColor(QPalette::Foreground, QColor::fromRgba((p.color(QPalette::Foreground).rgba() & 0x00ffffff) | 0x50000000));
|
||||
hline->setPalette(p);
|
||||
_ui->shareWidgetsLayout->addWidget(hline);
|
||||
}
|
||||
|
||||
_linkWidget = new ShareLinkWidget(_accountState->account(), _sharePath, _localPath, _maxSharingPermissions, autoShare, this);
|
||||
_linkWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
|
||||
_ui->shareWidgetsLayout->addWidget(_linkWidget);
|
||||
_ui->shareWidgets->addTab(_linkWidget, tr("Public Links"));
|
||||
_linkWidget->getShares();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,25 +64,10 @@
|
|||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="shareWidgetsLayout">
|
||||
<property name="spacing">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</layout>
|
||||
<widget class="QTabWidget" name="shareWidgets"/>
|
||||
</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>
|
||||
<layout class="QHBoxLayout" name="buttonBoxLayout">
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="sizePolicy">
|
||||
|
@ -97,6 +82,8 @@
|
|||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
|
|
@ -178,6 +178,9 @@ void ShareUserGroupWidget::slotSharesFetched(const QList<QSharedPointer<Share>>
|
|||
QSize minimumSize = newViewPort->sizeHint();
|
||||
int x = 0;
|
||||
|
||||
if (shares.isEmpty()) {
|
||||
layout->addWidget(new QLabel(tr("The item is not shared with any users or groups")));
|
||||
} else {
|
||||
foreach(const auto &share, shares) {
|
||||
// We don't handle link shares
|
||||
if (share->getShareType() == Share::TypeLink) {
|
||||
|
@ -186,6 +189,7 @@ void ShareUserGroupWidget::slotSharesFetched(const QList<QSharedPointer<Share>>
|
|||
|
||||
ShareWidget *s = new ShareWidget(share, _maxSharingPermissions, _isFile, _ui->scrollArea);
|
||||
connect(s, SIGNAL(resizeRequested()), this, SLOT(slotAdjustScrollWidgetSize()));
|
||||
connect(s, SIGNAL(visualDeletionDone()), this, SLOT(getShares()));
|
||||
layout->addWidget(s);
|
||||
|
||||
x++;
|
||||
|
@ -195,11 +199,12 @@ void ShareUserGroupWidget::slotSharesFetched(const QList<QSharedPointer<Share>>
|
|||
minimumSize.rwidth() = qMax(newViewPort->sizeHint().width(), minimumSize.width());
|
||||
}
|
||||
}
|
||||
layout->addStretch(1);
|
||||
}
|
||||
|
||||
minimumSize.rwidth() += layout->spacing();
|
||||
minimumSize.rheight() += layout->spacing();
|
||||
scrollArea->setMinimumSize(minimumSize);
|
||||
scrollArea->setVisible(!shares.isEmpty());
|
||||
scrollArea->setWidget(newViewPort);
|
||||
|
||||
_disableCompleterActivated = false;
|
||||
|
@ -243,10 +248,15 @@ void ShareUserGroupWidget::slotCompleterActivated(const QModelIndex & index)
|
|||
* Add spinner to the bottom of the widget list
|
||||
*/
|
||||
auto viewPort = _ui->scrollArea->widget();
|
||||
auto layout = viewPort->layout();
|
||||
auto layout = qobject_cast<QVBoxLayout*>(viewPort->layout());
|
||||
auto indicator = new QProgressIndicator(viewPort);
|
||||
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
|
||||
|
@ -444,7 +454,8 @@ void ShareWidget::slotPermissionsChanged()
|
|||
|
||||
void ShareWidget::slotDeleteAnimationFinished()
|
||||
{
|
||||
resizeRequested();
|
||||
emit resizeRequested();
|
||||
emit visualDeletionDone();
|
||||
deleteLater();
|
||||
|
||||
// There is a painting bug where a small line of this widget isn't
|
||||
|
|
|
@ -59,7 +59,7 @@ public:
|
|||
QSharedPointer<Share> share() const;
|
||||
|
||||
signals:
|
||||
void shareDeleted(ShareWidget *share);
|
||||
void visualDeletionDone();
|
||||
void resizeRequested();
|
||||
|
||||
private slots:
|
||||
|
|
Loading…
Reference in a new issue