| 
									
										
										
										
											2017-04-27 20:26:05 +02:00
										 |  |  | // SPDX-License-Identifier: GPL-2.0
 | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | #ifndef FACEBOOKCONNECTWIDGET_H
 | 
					
						
							|  |  |  | #define FACEBOOKCONNECTWIDGET_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <QDialog>
 | 
					
						
							| 
									
										
										
										
											2017-09-29 12:45:28 -07:00
										 |  |  | #include <QUrl>
 | 
					
						
							| 
									
										
										
										
											2016-08-09 00:12:12 +02:00
										 |  |  | #ifdef USE_WEBENGINE
 | 
					
						
							|  |  |  | class QWebEngineView; | 
					
						
							|  |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | class QWebView; | 
					
						
							| 
									
										
										
										
											2016-08-09 00:12:12 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2017-09-29 11:14:40 +02:00
										 |  |  | class QNetworkReply; | 
					
						
							| 
									
										
										
										
											2017-09-29 11:54:12 +02:00
										 |  |  | class QNetworkAccessManager; | 
					
						
							| 
									
										
										
										
											2017-09-29 11:14:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | namespace Ui { | 
					
						
							| 
									
										
										
										
											2017-09-29 12:45:28 -07:00
										 |  |  | 	class FacebookConnectWidget; | 
					
						
							|  |  |  | 	class SocialnetworksDialog; | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-02 12:50:40 +02:00
										 |  |  | struct FacebookInfo { | 
					
						
							| 
									
										
										
										
											2017-10-02 14:54:00 +02:00
										 |  |  | 	enum Size {SMALL, MEDIUM, BIG}; | 
					
						
							| 
									
										
										
										
											2017-10-02 12:50:40 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-02 14:54:00 +02:00
										 |  |  | 	QString bodyText; | 
					
						
							|  |  |  | 	QString albumId; | 
					
						
							|  |  |  | 	QString albumName; | 
					
						
							|  |  |  | 	Size profileSize; | 
					
						
							|  |  |  | 	QPixmap profileData; | 
					
						
							| 
									
										
										
										
											2017-10-02 12:50:40 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | class FacebookManager : public QObject | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	Q_OBJECT | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  | 	static FacebookManager *instance(); | 
					
						
							|  |  |  | 	void requestAlbumId(); | 
					
						
							|  |  |  | 	void requestUserId(); | 
					
						
							|  |  |  | 	QUrl connectUrl(); | 
					
						
							| 
									
										
										
										
											2017-09-29 11:54:12 +02:00
										 |  |  | 	QUrl albumListUrl(); | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | 	bool loggedIn(); | 
					
						
							| 
									
										
										
										
											2017-10-02 12:55:13 +02:00
										 |  |  | 	QPixmap grabProfilePixmap(); | 
					
						
							| 
									
										
										
										
											2017-10-02 15:25:44 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | signals: | 
					
						
							|  |  |  | 	void justLoggedIn(bool triggererd); | 
					
						
							|  |  |  | 	void justLoggedOut(bool triggered); | 
					
						
							| 
									
										
										
										
											2017-10-02 14:20:37 +02:00
										 |  |  | 	void albumIdReceived(const QString& albumId); | 
					
						
							| 
									
										
										
										
											2017-10-02 14:35:36 +02:00
										 |  |  | 	void sendDiveFinished(); | 
					
						
							| 
									
										
										
										
											2017-10-02 15:25:44 +02:00
										 |  |  | 	void sendMessage(const QString& message); | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | 
 | 
					
						
							|  |  |  | public slots: | 
					
						
							|  |  |  | 	void tryLogin(const QUrl& loginResponse); | 
					
						
							|  |  |  | 	void logout(); | 
					
						
							| 
									
										
										
										
											2017-10-02 14:35:36 +02:00
										 |  |  | 	void sendDiveInit(); | 
					
						
							|  |  |  | 	void sendDiveToAlbum(const QString& album); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-29 12:45:28 -07:00
										 |  |  | 	void uploadFinished(); | 
					
						
							|  |  |  | 	void albumListReceived(); | 
					
						
							| 
									
										
										
										
											2017-09-29 12:21:35 +02:00
										 |  |  | 	void userIdReceived(); | 
					
						
							| 
									
										
										
										
											2017-09-29 12:45:28 -07:00
										 |  |  | 	void createFacebookAlbum(); | 
					
						
							|  |  |  | 	void facebookAlbumCreated(); | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | private: | 
					
						
							|  |  |  | 	explicit FacebookManager(QObject *parent = 0); | 
					
						
							| 
									
										
										
										
											2017-10-02 12:55:13 +02:00
										 |  |  | 	FacebookInfo fbInfo; | 
					
						
							| 
									
										
										
										
											2017-09-29 11:54:12 +02:00
										 |  |  | 	QNetworkAccessManager *manager; | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class FacebookConnectWidget : public QDialog { | 
					
						
							| 
									
										
										
										
											2017-09-29 11:54:12 +02:00
										 |  |  | 	Q_OBJECT | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | public: | 
					
						
							|  |  |  | 	explicit FacebookConnectWidget(QWidget* parent = 0); | 
					
						
							|  |  |  | 	void facebookLoggedIn(); | 
					
						
							|  |  |  | 	void facebookDisconnect(); | 
					
						
							| 
									
										
										
										
											2017-11-10 10:30:26 +01:00
										 |  |  | 	void showEvent(QShowEvent *event); | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | private: | 
					
						
							|  |  |  | 	Ui::FacebookConnectWidget *ui; | 
					
						
							| 
									
										
										
										
											2016-08-09 00:12:12 +02:00
										 |  |  | #ifdef USE_WEBENGINE
 | 
					
						
							|  |  |  | 	QWebEngineView *facebookWebView; | 
					
						
							|  |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | 	QWebView *facebookWebView; | 
					
						
							| 
									
										
										
										
											2016-08-09 00:12:12 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SocialNetworkDialog : public QDialog { | 
					
						
							|  |  |  | 	Q_OBJECT | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2017-09-29 14:33:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-08 12:10:13 -02:00
										 |  |  | 	SocialNetworkDialog(QWidget *parent = 0); | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | 	QString text() const; | 
					
						
							| 
									
										
										
										
											2015-11-08 12:10:13 -02:00
										 |  |  | 	QString album() const; | 
					
						
							| 
									
										
										
										
											2017-10-02 12:50:40 +02:00
										 |  |  | 	FacebookInfo::Size profileSize() const; | 
					
						
							| 
									
										
										
										
											2017-09-29 14:33:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-08 12:10:13 -02:00
										 |  |  | public slots: | 
					
						
							|  |  |  | 	void selectionChanged(); | 
					
						
							|  |  |  | 	void albumChanged(); | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | private: | 
					
						
							| 
									
										
										
										
											2015-11-08 12:10:13 -02:00
										 |  |  | 	Ui::SocialnetworksDialog *ui; | 
					
						
							| 
									
										
										
										
											2015-11-08 10:33:29 -02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-26 15:17:49 -03:00
										 |  |  | #endif
 |