From a1ff14a48f06e15c863f6ef0ba31b15c7bb1696d Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Sun, 8 Nov 2015 11:50:04 -0200 Subject: Facebook Plugin is aware of it's connection status This patch makes facebook plugin aware of it's connection status enabling uploads only when connected, and hooking some things up. Signed-off-by: Tomaz Canabrava Signed-off-by: Dirk Hohndel --- desktop-widgets/mainwindow.cpp | 2 +- .../plugins/facebook/facebook_integration.cpp | 17 ++++++++------ .../plugins/facebook/facebook_integration.h | 27 ++++++++++++++-------- 3 files changed, 28 insertions(+), 18 deletions(-) (limited to 'desktop-widgets') diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp index 12aed9c7a..14ba96772 100644 --- a/desktop-widgets/mainwindow.cpp +++ b/desktop-widgets/mainwindow.cpp @@ -258,7 +258,7 @@ MainWindow::MainWindow() : QMainWindow(), share_on->setData(QVariant::fromValue(plugin)); ui.menuShare_on->addAction(share_on); connections->addAction(toggle_connection); - connect(share_on, &QAction::triggered, [plugin](bool triggered) { plugin->requestUpload(); } + connect(share_on, &QAction::triggered, [plugin](bool triggered) { plugin->requestUpload(); }); } ui.menuShare_on->addSeparator(); ui.menuShare_on->addMenu(connections); diff --git a/desktop-widgets/plugins/facebook/facebook_integration.cpp b/desktop-widgets/plugins/facebook/facebook_integration.cpp index 43f74b8f9..f817f9df8 100644 --- a/desktop-widgets/plugins/facebook/facebook_integration.cpp +++ b/desktop-widgets/plugins/facebook/facebook_integration.cpp @@ -3,25 +3,26 @@ #include -FacebookPlugin::FacebookPlugin(QObject* parent): QObject(parent) +FacebookPlugin::FacebookPlugin(QObject* parent): QObject(parent), + fbConnectWidget(new FacebookConnectWidget()), + fbUploadDialog(new SocialNetworkDialog()) { - } bool FacebookPlugin::isConnected() { - return false; + FacebookManager *instance = FacebookManager::instance(); + return instance->loggedIn(); } void FacebookPlugin::requestLogin() { - FacebookConnectWidget connectDialog; - connectDialog.exec(); + fbConnectWidget->exec(); } void FacebookPlugin::requestLogoff() { - + FacebookManager::instance()->logout(); } QString FacebookPlugin::socialNetworkIcon() const @@ -36,5 +37,7 @@ QString FacebookPlugin::socialNetworkName() const void FacebookPlugin::requestUpload() { - qDebug() << "Upload Requested"; + FacebookManager *instance = FacebookManager::instance(); + if (instance->loggedIn()) + fbUploadDialog->exec(); } diff --git a/desktop-widgets/plugins/facebook/facebook_integration.h b/desktop-widgets/plugins/facebook/facebook_integration.h index 99362e747..714f636fc 100644 --- a/desktop-widgets/plugins/facebook/facebook_integration.h +++ b/desktop-widgets/plugins/facebook/facebook_integration.h @@ -4,18 +4,25 @@ #include "subsurface-core/isocialnetworkintegration.h" #include +class FacebookConnectWidget; +class SocialNetworkDialog; +class FacebookManager; + class FacebookPlugin : public QObject, public ISocialNetworkIntegration { - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.subsurface.plugins.ISocialNetworkIntegration") - Q_INTERFACES(ISocialNetworkIntegration) + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.subsurface.plugins.ISocialNetworkIntegration") + Q_INTERFACES(ISocialNetworkIntegration) public: - explicit FacebookPlugin(QObject* parent = 0); - virtual bool isConnected(); - virtual void requestLogin(); - virtual void requestLogoff(); - virtual QString socialNetworkIcon() const; - virtual QString socialNetworkName() const; - virtual void requestUpload(); + explicit FacebookPlugin(QObject* parent = 0); + virtual bool isConnected(); + virtual void requestLogin(); + virtual void requestLogoff(); + virtual QString socialNetworkIcon() const; + virtual QString socialNetworkName() const; + virtual void requestUpload(); +private: + FacebookConnectWidget *fbConnectWidget; + SocialNetworkDialog *fbUploadDialog; }; #endif \ No newline at end of file -- cgit v1.2.3-70-g09d2