diff options
author | Roeland Jago Douma <rullzer@owncloud.com> | 2015-11-05 11:58:16 +0300 |
---|---|---|
committer | Roeland Jago Douma <rullzer@owncloud.com> | 2015-11-05 11:58:16 +0300 |
commit | 3e4612a1f0c66e522d84359a479c1fc0e2f2c85b (patch) | |
tree | 0f84ecac37d6705fb69c6786a59a0fe25a831596 /src/gui/sharelinkwidget.h | |
parent | 90cbd461ab3e7ce6c4a5bf5aa03117409f65e2ab (diff) |
[Sharing] Reorganized sharedialog code
Now we have 1 simple dialog that includes 2 widgets.
* ShareLinkWidget (for link shares)
* ShareUserGroupWidget (for user/group shares)
The ShareUserGroupWidget is only included if the server version is >=
8.2.0
For <8.2.0 the old behavior is preserved
Diffstat (limited to 'src/gui/sharelinkwidget.h')
-rw-r--r-- | src/gui/sharelinkwidget.h | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/src/gui/sharelinkwidget.h b/src/gui/sharelinkwidget.h new file mode 100644 index 000000000..6fb78ffad --- /dev/null +++ b/src/gui/sharelinkwidget.h @@ -0,0 +1,114 @@ +/* + * Copyright (C) by Roeland Jago Douma <roeland@famdouma.nl> + * Copyright (C) 2015 by Klaas Freitag <freitag@owncloud.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#ifndef SHARELINKWIDGET_H +#define SHARELINKWIDGET_H + +#include "accountfwd.h" +#include "QProgressIndicator.h" +#include <QDialog> +#include <QVariantMap> +#include <QSharedPointer> +#include <QList> + +namespace OCC { + +namespace Ui { +class ShareLinkWidget; +} + +class AbstractCredentials; +class QuotaInfo; +class SyncResult; +class LinkShare; +class Share; +class ShareManager; + +/** + * @brief The ShareDialog class + * @ingroup gui + */ +class ShareLinkWidget : public QWidget +{ + Q_OBJECT + +public: + explicit ShareLinkWidget(AccountPtr account, + const QString &sharePath, + const QString &localPath, + bool resharingAllowed, + 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(); + void slotDeleteShareFetched(); + void slotPasswordSet(); + void slotExpireSet(); + void slotCalendarClicked(const QDate &date); + void slotCheckBoxShareLinkClicked(); + void slotCheckBoxPasswordClicked(); + void slotCheckBoxExpireClicked(); + void slotPasswordReturnPressed(); + void slotPasswordChanged(const QString& newText); + void slotPushButtonCopyLinkPressed(); + void slotCheckBoxEditingClicked(); + void slotPublicUploadSet(); + + void displayError(int code, const QString &message); + +private: + void setShareCheckBoxTitle(bool haveShares); + void displayError(int code); + void displayError(const QString& errMsg); + void setShareLink( const QString& url ); + void resizeEvent(QResizeEvent *e); + void redrawElidedUrl(); + void setPublicUpload(bool publicUpload); + + 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_password; + QProgressIndicator *_pi_date; + QProgressIndicator *_pi_editing; + + ShareManager *_manager; + QSharedPointer<LinkShare> _share; + + bool _resharingAllowed; + bool _isFile; + bool _autoShare; +}; + +} + +#endif // SHARELINKWIDGET_H |