mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Quick hack to avoid Facebook access on every program start. Move the initialization of the login page from the FacebookConnectWidget constructor to the show event handler. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
		
			
				
	
	
		
			99 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0
 | |
| #ifndef FACEBOOKCONNECTWIDGET_H
 | |
| #define FACEBOOKCONNECTWIDGET_H
 | |
| 
 | |
| #include <QDialog>
 | |
| #include <QUrl>
 | |
| #ifdef USE_WEBENGINE
 | |
| class QWebEngineView;
 | |
| #else
 | |
| class QWebView;
 | |
| #endif
 | |
| class QNetworkReply;
 | |
| class QNetworkAccessManager;
 | |
| 
 | |
| namespace Ui {
 | |
| 	class FacebookConnectWidget;
 | |
| 	class SocialnetworksDialog;
 | |
| }
 | |
| 
 | |
| struct FacebookInfo {
 | |
| 	enum Size {SMALL, MEDIUM, BIG};
 | |
| 
 | |
| 	QString bodyText;
 | |
| 	QString albumId;
 | |
| 	QString albumName;
 | |
| 	Size profileSize;
 | |
| 	QPixmap profileData;
 | |
| };
 | |
| 
 | |
| class FacebookManager : public QObject
 | |
| {
 | |
| 	Q_OBJECT
 | |
| public:
 | |
| 	static FacebookManager *instance();
 | |
| 	void requestAlbumId();
 | |
| 	void requestUserId();
 | |
| 	QUrl connectUrl();
 | |
| 	QUrl albumListUrl();
 | |
| 	bool loggedIn();
 | |
| 	QPixmap grabProfilePixmap();
 | |
| 
 | |
| signals:
 | |
| 	void justLoggedIn(bool triggererd);
 | |
| 	void justLoggedOut(bool triggered);
 | |
| 	void albumIdReceived(const QString& albumId);
 | |
| 	void sendDiveFinished();
 | |
| 	void sendMessage(const QString& message);
 | |
| 
 | |
| public slots:
 | |
| 	void tryLogin(const QUrl& loginResponse);
 | |
| 	void logout();
 | |
| 	void sendDiveInit();
 | |
| 	void sendDiveToAlbum(const QString& album);
 | |
| 
 | |
| 	void uploadFinished();
 | |
| 	void albumListReceived();
 | |
| 	void userIdReceived();
 | |
| 	void createFacebookAlbum();
 | |
| 	void facebookAlbumCreated();
 | |
| private:
 | |
| 	explicit FacebookManager(QObject *parent = 0);
 | |
| 	FacebookInfo fbInfo;
 | |
| 	QNetworkAccessManager *manager;
 | |
| };
 | |
| 
 | |
| 
 | |
| class FacebookConnectWidget : public QDialog {
 | |
| 	Q_OBJECT
 | |
| public:
 | |
| 	explicit FacebookConnectWidget(QWidget* parent = 0);
 | |
| 	void facebookLoggedIn();
 | |
| 	void facebookDisconnect();
 | |
| 	void showEvent(QShowEvent *event);
 | |
| private:
 | |
| 	Ui::FacebookConnectWidget *ui;
 | |
| #ifdef USE_WEBENGINE
 | |
| 	QWebEngineView *facebookWebView;
 | |
| #else
 | |
| 	QWebView *facebookWebView;
 | |
| #endif
 | |
| };
 | |
| 
 | |
| class SocialNetworkDialog : public QDialog {
 | |
| 	Q_OBJECT
 | |
| public:
 | |
| 
 | |
| 	SocialNetworkDialog(QWidget *parent = 0);
 | |
| 	QString text() const;
 | |
| 	QString album() const;
 | |
| 	FacebookInfo::Size profileSize() const;
 | |
| 
 | |
| public slots:
 | |
| 	void selectionChanged();
 | |
| 	void albumChanged();
 | |
| private:
 | |
| 	Ui::SocialnetworksDialog *ui;
 | |
| };
 | |
| 
 | |
| #endif
 |