ShareWidget::ShareWidget(QSharedPointer<Share> share, QWidget *parent) : QWidget(parent), _ui(new Ui::ShareWidget), _share(share), _showDetailedPermissions(false) { _ui->setupUi(this); _ui->sharedWith->setText(share->getShareWith()->format()); // Set the permissions checkboxes displayPermissions(); // Hide "detailed permissions" by default _ui->permissionDelete->setHidden(true); _ui->permissionUpdate->setHidden(true); _ui->permissionCreate->setHidden(true); connect(_ui->permissionUpdate, SIGNAL(clicked(bool)), SLOT(slotPermissionsChanged())); connect(_ui->permissionCreate, SIGNAL(clicked(bool)), SLOT(slotPermissionsChanged())); connect(_ui->permissionDelete, SIGNAL(clicked(bool)), SLOT(slotPermissionsChanged())); connect(_ui->permissionShare, SIGNAL(clicked(bool)), SLOT(slotPermissionsChanged())); connect(_ui->permissionsEdit, SIGNAL(clicked(bool)), SLOT(slotEditPermissionsChanged())); connect(share.data(), SIGNAL(permissionsSet()), SLOT(slotPermissionsSet())); connect(share.data(), SIGNAL(shareDeleted()), SLOT(slotShareDeleted())); _ui->deleteShareButton->setIcon(QIcon::fromTheme(QLatin1String("user-trash"), QIcon(QLatin1String(":/client/resources/delete.png")))); }
ShareWidget::ShareWidget(QSharedPointer<Share> share, bool isFile, QWidget *parent) : QWidget(parent), _ui(new Ui::ShareWidget), _share(share), _isFile(isFile) { _ui->setupUi(this); _ui->sharedWith->setText(share->getShareWith()->format()); // Create detailed permissions menu QMenu *menu = new QMenu(this); _permissionCreate = new QAction(tr("create"), this); _permissionCreate->setCheckable(true); _permissionUpdate = new QAction(tr("change"), this); _permissionUpdate->setCheckable(true); _permissionDelete = new QAction(tr("delete"), this); _permissionDelete->setCheckable(true); menu->addAction(_permissionUpdate); /* * Files can't have create or delete permissions */ if (!_isFile) { menu->addAction(_permissionCreate); menu->addAction(_permissionDelete); } _ui->permissionToolButton->setMenu(menu); _ui->permissionToolButton->setPopupMode(QToolButton::InstantPopup); QIcon icon(QLatin1String(":/client/resources/more.png")); _ui->permissionToolButton->setIcon(icon); // Set the permissions checkboxes displayPermissions(); connect(_permissionUpdate, SIGNAL(triggered(bool)), SLOT(slotPermissionsChanged())); connect(_permissionCreate, SIGNAL(triggered(bool)), SLOT(slotPermissionsChanged())); connect(_permissionDelete, SIGNAL(triggered(bool)), SLOT(slotPermissionsChanged())); connect(_ui->permissionShare, SIGNAL(clicked(bool)), SLOT(slotPermissionsChanged())); connect(_ui->permissionsEdit, SIGNAL(clicked(bool)), SLOT(slotEditPermissionsChanged())); connect(share.data(), SIGNAL(permissionsSet()), SLOT(slotPermissionsSet())); connect(share.data(), SIGNAL(shareDeleted()), SLOT(slotShareDeleted())); _ui->deleteShareButton->setIcon(QIcon::fromTheme(QLatin1String("user-trash"), QIcon(QLatin1String(":/client/resources/delete.png")))); if (!share->account()->capabilities().shareResharing()) { _ui->permissionShare->hide(); } }
void Share::slotDeleted() { emit shareDeleted(); }
void ShareLinkWidget::slotSharesFetched(const QList<QSharedPointer<Share>> &shares) { const QString versionString = _account->serverVersion(); qDebug() << Q_FUNC_INFO << versionString << "Fetched" << shares.count() << "shares"; //Show link checkbox now if capabilities allow it _ui->checkBox_shareLink->setEnabled(_account->capabilities().sharePublicLink()); _pi_link->stopAnimation(); Q_FOREACH(auto share, shares) { if (share->getShareType() == Share::TypeLink) { _share = qSharedPointerDynamicCast<LinkShare>(share); _ui->pushButton_copy->show(); _ui->pushButton_mail->show(); _ui->widget_shareLink->show(); _ui->checkBox_shareLink->setChecked(true); _ui->checkBox_password->setEnabled(!_passwordRequired); if (_share->isPasswordSet()) { _ui->lineEdit_password->setEnabled(true); _ui->checkBox_password->setChecked(true); _ui->lineEdit_password->setPlaceholderText("********"); _ui->lineEdit_password->setText(QString()); _ui->lineEdit_password->show(); _ui->pushButton_setPassword->show(); } else { _ui->checkBox_password->setChecked(false); // _ui->lineEdit_password->setPlaceholderText("********"); _ui->lineEdit_password->hide(); _ui->pushButton_setPassword->hide(); } _ui->checkBox_expire->setEnabled( !_account->capabilities().sharePublicLinkEnforceExpireDate()); _ui->calendar->setMinimumDate(QDate::currentDate().addDays(1)); if (_share->getExpireDate().isValid()) { _ui->calendar->setDate(_share->getExpireDate()); _ui->calendar->setEnabled(true); _ui->checkBox_expire->setChecked(true); } else { _ui->calendar->setEnabled(false); _ui->checkBox_expire->setChecked(false); } /* * Only directories can have public upload set * For public links the server sets CREATE and UPDATE permissions. */ _ui->checkBox_editing->setEnabled( _account->capabilities().sharePublicLinkAllowUpload()); if (!_isFile) { _ui->checkBox_editing->setChecked(_share->getPublicUpload()); } setShareLink(_share->getLink().toString()); _ui->pushButton_mail->setEnabled(true); _ui->pushButton_copy->setEnabled(true); // Connect all shares signals to gui slots connect(_share.data(), SIGNAL(expireDateSet()), SLOT(slotExpireSet())); connect(_share.data(), SIGNAL(publicUploadSet()), SLOT(slotPublicUploadSet())); connect(_share.data(), SIGNAL(passwordSet()), SLOT(slotPasswordSet())); connect(_share.data(), SIGNAL(shareDeleted()), SLOT(slotDeleteShareFetched())); connect(_share.data(), SIGNAL(serverError(int, QString)), SLOT(slotServerError(int,QString))); connect(_share.data(), SIGNAL(passwordSetError(int, QString)), SLOT(slotPasswordSetError(int,QString))); break; } }