mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-11 11:31:29 +00:00
d1d4b4edb1
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
|