diff options
author | Christian Kamm <mail@ckamm.de> | 2017-04-05 10:38:46 +0300 |
---|---|---|
committer | Christian Kamm <mail@ckamm.de> | 2017-04-21 11:10:12 +0300 |
commit | a1f7168d2a7d9f6d5181e55af644d15745fd2026 (patch) | |
tree | 481ac7aad0c38993c63263bcd3160a7e94b36b80 /src/gui/sharelinkwidget.h | |
parent | 1e1c2f8de2d1b81cbff81272e08fc52581e2d4a9 (diff) |
ShareDialog: Add support for multiple public link shares #5655
Starting from oC 10.0.0 having several public link shares with
different attributes for a path will be supported. This adds
functionality to create, edit and delete these public link shares.
The behavior is currently gated by server version, but should be
adapted to use a capability as soon as one is introduced, see
owncloud/core#27622.
The UI reduces to a single-share version when talking to older servers.
Testing scenarios:
* Link sharing is disabled (by capability, not by theme)
* Required passwords
* Required expiry
* Forbidden 'allow upload' for folders
* New and old servers
Diffstat (limited to 'src/gui/sharelinkwidget.h')
-rw-r--r-- | src/gui/sharelinkwidget.h | 69 |
1 files changed, 40 insertions, 29 deletions
diff --git a/src/gui/sharelinkwidget.h b/src/gui/sharelinkwidget.h index bc663a307..c12e121c1 100644 --- a/src/gui/sharelinkwidget.h +++ b/src/gui/sharelinkwidget.h @@ -24,6 +24,8 @@ #include <QSharedPointer> #include <QList> +class QMenu; + namespace OCC { namespace Ui { @@ -50,67 +52,76 @@ public: const QString &sharePath, const QString &localPath, SharePermissions maxSharingPermissions, - bool autoShare = false, QWidget *parent = 0); ~ShareLinkWidget(); void getShares(); private slots: void slotSharesFetched(const QList<QSharedPointer<Share>> &shares); - void slotCreateShareFetched(const QSharedPointer<LinkShare> share); - void slotCreateShareRequiresPassword(const QString& message); - void slotDeleteShareFetched(); - void slotPasswordSet(); - void slotExpireSet(); - void slotExpireDateChanged(const QDate &date); - void slotCheckBoxShareLinkClicked(); + void slotShareSelectionChanged(); + + void slotShareNameEntered(); + void slotDeleteShareClicked(); void slotCheckBoxPasswordClicked(); void slotCheckBoxExpireClicked(); void slotPasswordReturnPressed(); - void slotPasswordChanged(const QString& newText); - void slotPushButtonCopyLinkPressed(); - void slotPushButtonMailLinkPressed(); void slotCheckBoxEditingClicked(); + void slotExpireDateChanged(const QDate &date); + void slotPasswordChanged(const QString& newText); + + void slotShareLinkButtonTriggered(QAction* action); + + void slotDeleteShareFetched(); + void slotCreateShareFetched(const QSharedPointer<LinkShare> share); + void slotCreateShareRequiresPassword(const QString& message); + void slotPasswordSet(); + void slotExpireSet(); void slotPublicUploadSet(); void slotServerError(int code, const QString &message); void slotPasswordSetError(int code, const QString &message); private: - void setShareCheckBoxTitle(bool haveShares); void displayError(const QString& errMsg); - void setShareLink( const QString& url ); - void resizeEvent(QResizeEvent *e); - void redrawElidedUrl(); - void setPublicUpload(bool publicUpload); + + void setPassword(const QString &password); + void setExpireDate(const QDate &date); + + void copyShareLink(const QUrl &url); + void emailShareLink(const QUrl &url); + void openShareLink(const QUrl &url); + + /** + * Retrieve the selected share, returning 0 if none. + */ + QSharedPointer<LinkShare> selectedShare() const; Ui::ShareLinkWidget *_ui; AccountPtr _account; QString _sharePath; QString _localPath; QString _shareUrl; -#if 0 - QString _folderAlias; - int _uploadFails; - QString _expectedSyncFile; -#endif - bool _passwordJobRunning; - void setPassword(const QString &password); - void setExpireDate(const QDate &date); - - QProgressIndicator *_pi_link; + QProgressIndicator *_pi_create; QProgressIndicator *_pi_password; QProgressIndicator *_pi_date; QProgressIndicator *_pi_editing; ShareManager *_manager; - QSharedPointer<LinkShare> _share; - SharePermissions _maxSharingPermissions; bool _isFile; - bool _autoShare; bool _passwordRequired; + bool _expiryRequired; + bool _namesSupported; + + // When a new share is created, we want to select it + // the next time getShares() finishes. This stores its id. + QString _newShareOverrideSelectionId; + + QMenu *_shareLinkMenu; + QAction *_openLinkAction; + QAction *_copyLinkAction; + QAction *_emailLinkAction; }; } |