Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kamm <mail@ckamm.de>2017-04-05 10:38:46 +0300
committerChristian Kamm <mail@ckamm.de>2017-04-21 11:10:12 +0300
commita1f7168d2a7d9f6d5181e55af644d15745fd2026 (patch)
tree481ac7aad0c38993c63263bcd3160a7e94b36b80 /src/gui/sharelinkwidget.h
parent1e1c2f8de2d1b81cbff81272e08fc52581e2d4a9 (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.h69
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;
};
}