From a1ffe115cfb27bd0dd57bf5266c7d37d9ce64dab Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Fri, 1 Feb 2019 04:11:25 +0200 Subject: [PATCH] facebook: remove the featute from the code base Remove from: - unit tests - desktop widgets - preferences - core intergration - cmakefiles - build scripts - icons - docs Also remove the plugins and social network integration. Signed-off-by: Lubomir I. Ivanov --- CMakeLists.txt | 6 - Documentation/images/facebook1.jpg | Bin 26722 -> 0 bytes Documentation/images/facebook2.jpg | Bin 33824 -> 0 bytes Documentation/user-manual.txt | 38 -- Documentation/user-manual_es.txt | 49 -- Documentation/user-manual_fr.txt | 47 -- Documentation/user-manual_nl.txt | 43 -- Documentation/user-manual_ru.txt | 38 -- core/CMakeLists.txt | 3 - core/isocialnetworkintegration.cpp | 7 - core/isocialnetworkintegration.h | 74 --- core/pluginmanager.cpp | 54 --- core/pluginmanager.h | 19 - core/pref.h | 9 - core/settings/qPref.cpp | 3 - core/settings/qPrefFacebook.cpp | 44 -- core/settings/qPrefFacebook.h | 45 -- core/subsurfacestartup.c | 8 - desktop-widgets/CMakeLists.txt | 8 - desktop-widgets/mainwindow.cpp | 64 --- desktop-widgets/mainwindow.h | 5 - desktop-widgets/mainwindow.ui | 12 - desktop-widgets/plugins/CMakeLists.txt | 1 - .../plugins/facebook/CMakeLists.txt | 22 - .../plugins/facebook/facebook_integration.cpp | 43 -- .../plugins/facebook/facebook_integration.h | 26 -- .../facebook/facebookconnectwidget.cpp | 421 ------------------ .../plugins/facebook/facebookconnectwidget.h | 99 ---- .../plugins/facebook/facebookconnectwidget.ui | 104 ----- .../plugins/facebook/socialnetworksdialog.ui | 189 -------- icons/facebook.png | Bin 153369 -> 0 bytes packaging/android/build.sh | 1 - packaging/ios/Subsurface-mobile.pro | 6 - scripts/build.sh | 4 +- scripts/smtk2ssrf-build.sh | 1 - subsurface-helper.cpp | 2 - subsurface.qrc | 1 - tests/CMakeLists.txt | 2 - tests/testqPrefFacebook.cpp | 109 ----- tests/testqPrefFacebook.h | 20 - tests/tst_qPrefFacebook.qml | 46 -- 41 files changed, 2 insertions(+), 1671 deletions(-) delete mode 100644 Documentation/images/facebook1.jpg delete mode 100644 Documentation/images/facebook2.jpg delete mode 100644 core/isocialnetworkintegration.cpp delete mode 100644 core/isocialnetworkintegration.h delete mode 100644 core/pluginmanager.cpp delete mode 100644 core/pluginmanager.h delete mode 100644 core/settings/qPrefFacebook.cpp delete mode 100644 core/settings/qPrefFacebook.h delete mode 100644 desktop-widgets/plugins/CMakeLists.txt delete mode 100644 desktop-widgets/plugins/facebook/CMakeLists.txt delete mode 100644 desktop-widgets/plugins/facebook/facebook_integration.cpp delete mode 100644 desktop-widgets/plugins/facebook/facebook_integration.h delete mode 100644 desktop-widgets/plugins/facebook/facebookconnectwidget.cpp delete mode 100644 desktop-widgets/plugins/facebook/facebookconnectwidget.h delete mode 100644 desktop-widgets/plugins/facebook/facebookconnectwidget.ui delete mode 100644 desktop-widgets/plugins/facebook/socialnetworksdialog.ui delete mode 100644 icons/facebook.png delete mode 100644 tests/testqPrefFacebook.cpp delete mode 100644 tests/testqPrefFacebook.h delete mode 100644 tests/tst_qPrefFacebook.qml diff --git a/CMakeLists.txt b/CMakeLists.txt index 1556707e6..b431fd114 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,6 @@ option(NO_PRINTING "disable the printing support" OFF) option(NO_USERMANUAL "don't include a viewer for the user manual" OFF) #Options regarding enabling parts of subsurface -option(FBSUPPORT "allow posting to Facebook" ON) option(BTSUPPORT "enable support for QtBluetooth (requires Qt5.4 or newer)" ON) option(FTDISUPPORT "enable support for libftdi based serial" OFF) option(USE_WEBENGINE "Use QWebEngine instead of QWebKit" OFF) @@ -335,15 +334,10 @@ elseif(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "DesktopExecutable") add_executable(${SUBSURFACE_TARGET} MACOSX_BUNDLE WIN32 ${SUBSURFACE_PKG} ${SUBSURFACE_APP} ${SUBSURFACE_RESOURCES}) endif() - if(FBSUPPORT) - set(FACEBOOK_INTEGRATION facebook_integration) - add_dependencies(facebook_integration subsurface_generated_ui) - endif() target_link_libraries( ${SUBSURFACE_TARGET} subsurface_generated_ui subsurface_interface - ${FACEBOOK_INTEGRATION} subsurface_profile subsurface_statistics subsurface_models_desktop diff --git a/Documentation/images/facebook1.jpg b/Documentation/images/facebook1.jpg deleted file mode 100644 index f4a118c4cde9fd586aa8788c48e4d1786cd70ce4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26722 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 diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt index cf8ec3683..6d9956d19 100644 --- a/Documentation/user-manual.txt +++ b/Documentation/user-manual.txt @@ -2719,44 +2719,6 @@ There are two ways to export dive information from Subsurface: - xref:S_Export_other[Export dive information to other destinations or formats] -[[S_Facebook]] -=== Exporting dive information to _Facebook_ - -Export of dives to _Facebook_ is handled differently from other types of export because -a connection to _Facebook_ is required, needing a _Facebook_ userID and password. -From the *Main Menu*, select _Share on -> Connect to -> Facebook_ (image *A* below) -A _Facebook_ login screen appears (image *B* below). Provide a _Facebook_ userID and password. -From the _Subsurface_ window it’s easy to determine whether _Subsurface_ has a valid connection to _Facebook_: -from the *Main Menu*, select _Share on_ (image *A*, below). Normally, the _Facebook_ option is greyed out. But -if there is a connection to _Facebook_, this option is active (i.e. in black color and can be selected). - -Once logged into to _Facebook_ , a panel is shown with a message: -"_To disconnect Subsurface from your Facebook account, use the 'Share on' menu entry_." -Close this message panel. - -image::images/facebook1.jpg["Figure: Facebook login",align="center"] - -Having established a login to _Facebook_, transferring a dive profile to a _Facebook_ timeline is easy. -In the _Subsurface_ *Dive List* panel, highlight the dive to be transferred. -Then, from the *Main Menu*, select _Share on -> Facebook_. A dialogue box -is shown, determining the amount of additional information to be transferred -with the dive profile (image *A*, below). To transfer a dive profile to _Facebook_, the name of a -_Facebook_ album is needed. The checkboxes on the left hand side determine how much -additional information is added to the dive profile, shown in the text box -on the right hand side of the panel (image *A*, below). Customise the message that will be posted -with the dive profile by editing any of the information. After specifying additional information -and verifying the text, select the _OK_ button that triggers the transfer to _Facebook_. After the transfer -is done, an acknowledgement dialogue appears, indicating it was successful. - -Both the album created and the post to your timeline are marked as -private. In order for friends to be able to see the post, -log into _Facebook_ using a browser or Facebook app and change its permissions. - -image::images/facebook2.jpg["Figure: Facebook data submission",align="center"] - -If required, then close the _Facebook_ connection by selecting, from the *Main Menu*, -_Share on -> Disconnect from -> Facebook_ (image *B* above). - [[S_Export_other]] === Export dive information to other destinations or formats For non-_Facebook exports_, the export function can be found by selecting _File -> Export_, which brings up diff --git a/Documentation/user-manual_es.txt b/Documentation/user-manual_es.txt index 6b94dbb56..3b1f32241 100644 --- a/Documentation/user-manual_es.txt +++ b/Documentation/user-manual_es.txt @@ -2934,55 +2934,6 @@ Hay dos posibilidades de exportar información de buceo desde _Subsurface_: - xref:S_Export_other[Exportar información de buceo a otros destinos o formatos] -[[S_Facebook]] -=== Exportar información de buceo a _Facebook_ - -La exportación de inmersiones a _Facebook_ se maneja de forma diferente a otros -tipos de exportación porque se requiere una -conexión a esta red social y se necesita un usuario de _Facebook_ y su password. -Si, desde el menú principal, seleccionamos _Compartir -> Conectar a -> -Facebook_ (imagen *A* siguiente), se nos presentará una pantalla de acceso -(imagen *B* a continuación). Introducimos nuestro usuario y password de -_Facebook_. -Desde la ventana de _Subsurface_ es fácil saber si se tiene una conexión válida -con _Facebook_. Desde el *Menú principal*, selecciona _Compartir_ -(ver imagen *A* a continuación). Normalmente la opción _Facebook_ está -desactivada, pero, si hay una conexión establecida, la opción está activa y -puede ser seleccionada. -Tras haber establecido una conexión con _Facebook_, se mostrará un panel con -un mensaje: "_Para desconectar Subsurface de tu cuenta de Facebook, utiliza la -entrada del menú 'Compartir'_." -Cierra este panel. - -image::images/facebook1.jpg["Figure: Facebook login",align="center"] - -Habiendo establecido una conexión a _Facebook_, transferir un perfil al -historial es fácil. -Selecciona en la *Lista de Inmersiones* de _Subsurface_ el buceo que quieras -transferir; entonces, desde el *Menú* selecciona _Compartir -> Facebook_, -aparecerá un diálogo en el que se definirá la cantidad de información -adicional que se desea compartir en el historial junto con el perfil (ver imagen -*A*, a continuación). Se necesita proporcionar el nombre de un álbum de _Facebook_ -para poder enviar el perfil de inmersión. Las casillas seleccionables de la -izquierda nos permiten seleccionar la información que vamos a enviar. Esta -información se muestra en la ventana de texto de la derecha (ver imagen *A* -a continuación). El mensaje que se va a enviar se puede editar directamente en -esta ventana de texto. Tras haber elegido la información y verificado lo que se va -a subir, se selecciona el botón _OK_ lo que inicia la transferencia a _Facebook_. -Unos momentos después aparecerá un mensaje indicando una transferencia correcta. - -El álbum creado y el post al historial se marcarán como privados. Para que -los amigos puedan ver el post habrá que cambiar los permisos desde un acceso -normal a _Facebook_ desde un navegador o desde la app de _Facebook_. Aunque -esto suponga un paso de más, los desarrolladores entienden que esta es la mejor -solución para evitar subidas no deseadas en el historial público. - -image::images/facebook2.jpg["Figure: Facebook data submission",align="center"] - -Si se considera necesario, cierra la conexión a _Facebook_, seleccionando -desde el *Menú principal*, _Compartir -> Desconectar de -> Facebook_ (imagen -*B* anterior). - [[S_Export_other]] === Exportar información de buceo a otros destinos o formatos Para exportar a otros destinos, diff --git a/Documentation/user-manual_fr.txt b/Documentation/user-manual_fr.txt index 3a8db3e2a..f812462ea 100644 --- a/Documentation/user-manual_fr.txt +++ b/Documentation/user-manual_fr.txt @@ -2987,53 +2987,6 @@ Il y a deux façons d'exporter des informations de plongée depuis Subsurface: - xref:S_Export_other[Exporter des informations de plongée vers d'autres destinations ou formats] -[[S_Facebook]] -=== Export des informations de plongée vers _Facebook_ - -L'export des plongées vers _Facebook_ est géré différemment des autres types -d'export car une connexion vers _Facebook_ est nécessaire, nécessitant un -identifiant et un mot de passe. À partir du menu principal, sélectionnez -_Partager sur -> Connecter à -> Facebook_ (image *A* ci-dessous). Un écran -de connexion s'affiche (image *B* ci dessous). Entrez l'identifiant et le -mot de passe _Facebook_. Depuis la fenêtre _Subsurface_, il est facile de -vérifier si _Subsurface_ a une connection valide vers _Facebook_ : Depuis le -"Menu principal", sélectionnez _Partager sur_ (image *A* -ci-dessous). Normalement, l'option _Facebook_ est grisée. Mais si une -connection vers _Facebook_ existe, cette option est active (c'est à dire -écrit en noir et sélectionnable). - -Once logged into to _Facebook_ , a panel is shown with a message: "_To -disconnect Subsurface from your Facebook account, use the 'Share on' menu -entry_." Close this message panel. - -image::images/facebook1.jpg["Figure: Facebook login", align="center"] - -Une fois qu'une connexion à _Facebook_ est établie, transférer un profil de -plongée vers _Facebook_ est facile. Dans le panneau *Liste des plongées* de -_Subsurface_, sélectionnez la plongée à transférer. Ensuite, à partir du -*menu principal*, sélectionnez _Partager sur -> Facebook_. Une fenêtre -s'affiche, pour déterminer quelles informations seront transférées avec le -profil de plongée (image *A* ci-dessous). Pour transférer un profil de -plongée vers _Facebook_, le nom d'un album _Facebook_ doit être fourni. Les -cases à cocher sur la partie gauche permettent de sélectionner des -informations supplémentaires à transférer avec le profil de plongée. Ces -informations sont affichées dans le champs de texte sur la partie droite du -panneau. (image *A* ci dessous). Personnalisez le message qui sera envoyé -avec le profil de plongée en modifiant les informations. Une fois les -informations supplémentaires ajoutées et vérifiées, sélectionner le bouton -_OK_ qui effectue le transfert vers _Facebook_. Après le transfert, une -fenêtre de confirmation apparait ,indiquant le succès du transfert. - -À la fois l'album créé et la publication sur votre ligne temporelle seront -marquées comme privés. Pour que vos amis puissent la voir, connectez-vous à -_Facebook_ depuis un navigateur ou l'application Facebook et modifiez les -permissions. - -image::images/facebook2.jpg["Figure: Facebook data submission", align="center"] - -If required, then close the _Facebook_ connection by selecting, from the -*Main Menu*, _Share on -> Disconnect from -> Facebook_ (image *B* above). - [[S_Export_other]] === Exporter des informations de plongée vers d'autres destinations ou formats For non-_Facebook exports_, the export function can be found by selecting diff --git a/Documentation/user-manual_nl.txt b/Documentation/user-manual_nl.txt index 14c36e223..9d9091fd4 100644 --- a/Documentation/user-manual_nl.txt +++ b/Documentation/user-manual_nl.txt @@ -2545,49 +2545,6 @@ Er zijn twee manieren om duik informatie uit _Subsurface_ te exporteren: - xref:S_Export_other[Exporteer duikinformatie naar andere bestemmingen of formaten] -[[S_Facebook]] -=== Exporteer duikinformatie naar _Facebook_ - -Exporteren naar _Facebook_ werkt op een andere manier dan andere vormen van -export, met name omdat er een verbinding met _Facebook_ aanwezig moet zijn die -is ingelogd. Selecteer vanuit het hoofdmenu _Deel via -> Facebook_ (zie figuur -*A* hieronder). Een inlogscherm voor _Facebook_ verschijnt (zie figuur -*B* hieronder), en log in bij _Facebook_. - -Het is eenvoudig te zien in het hoofdmenu of er een verbinding met _Facebook_ -actief is. In het _Deel via_ menu is de _Facebook knop_ grijs en niet-selecteerbaar -als er geen verbinding is (figuur *A* hieronder). - -Eenmaal ingelogd op _Facebook_ wordt er een paneel getoond met het bericht: -"Gebruik het 'Deel via' menu om de verbinding van Subsurface met uw Facebook -account te sluiten.". Sluit dit paneel. - -image::images/facebook1.jpg["Figuur: Facebook login",align="center"] - -Met de verbinding met _Facebook_ geactiveerd is het overdragen van een duik naar -_Facebook_ eenvoudig. Selecteer eerst de duik in de *Duiklijst*. Selecteer dan -uit het hoofdmenu _Deel via -> Facebook_. Er verschijnt een dialoog, waarin -aangegeven kan worden welke informatie naast het duikprofiel, moet worden -overgedragen naar _Facebook_ (zie figuur *A* hieronder). - -Om een duikprofiel naar _Facebook_ te exporteren is de naam van een (foto) album -nodig. De keuzevakjes aan de linker zijde bepalen welke data uit het logboek -eveneens wordt geëxporteerd. Deze verschijnen in het tekst veld aan de rechter zijde, -welke verder handmatig kan worden aangepast. Nadat alles naar wens is ingevuld, -kan via de _OK_ knop de feitelijke export worden gedaan. Als de export gereed is -volgt een bevestiging. - -Zowel het album als de geëxporteerde profiel (met annotaties) is in _Facebook_ als -privé aangemerkt, en de rechten van de geëxporteerde data moeten dus handmatig -in _Facebook_ worden gezet zoals gewenst. - -image::images/facebook2.jpg["Figuur: Facebook data submission",align="center"] - -De verbinding met _Facebook_ kan nu worden afgesloten als dat gewenst is. Gebruik -hiervoor uit het hoofdmenu _Deel via -> Verbinding verbreken met -> Facebook_ ( -figuur *B* hierboven). - - [[S_Export_other]] === Exporteer duikinformatie naar andere bestemmingen of formaten Andere dan _Facebook_ exports kunnen gevonden worden door in het hoofdmenu diff --git a/Documentation/user-manual_ru.txt b/Documentation/user-manual_ru.txt index d41b4f15d..76d1cc45c 100644 --- a/Documentation/user-manual_ru.txt +++ b/Documentation/user-manual_ru.txt @@ -2824,44 +2824,6 @@ image::images/Filterpanel.jpg["Рисунок: Панель фильтров",al - xref:S_Export_other[Экспорт данных погружения в другие форматы] -[[S_Facebook]] -=== Экспорт информации о погружении в _Facebook_ - -Экспорт в _Facebook_ отличается от всех других видов экспорта, поскольку он требует подключения -учетной записи, что в свою очередь требует от вас логин и пароль _Facebook_. Для авторизации -необходимо в главном меню выбрать _Файл -> Настройки_ и там выбрать вкладку _Facebook_, на которой -вам будет представлена форма авторизации (см. рисунок *А* слева внизу). Авторизуйтесь своими логином -и паролем, после чего экран должен выглядеть как показано на рисунке *В*. При необходимости вы -можете отключить _Subsurface_ от _Facebook_, нажав на соответствующую кнопку. - - - - - - -image::images/facebook1.jpg["Рисунок: Авторизация Facebook",align="center"] - -После того как соединение с _Facebook_ установлено, публикация профиля погружения в вашей Хронике не -составит проблем. Выберите погружение в списке и убедитесь в том, что именно этот дайв должен быть -опубликован. Нажмите кнопку с логотипом _Facebook_, расположенную в *Информационной панели* справа -от поля _Примечания_ (см. рисунок *А* ниже). По нажатию на эту кнопку вам будет представлено окно, в -котором вы можете выбрать какую дополнительную информацию опубликовать вместе с профилем погружения -(рисунок *В*). Обязательным является только поле _Альбом_. Кроме указания стандартных параметров -погружения, вы можете вручную отредактировать сопроводительный текст. Для отправки профиля -погружения в вашу Хронику _Facebook_ нажмите кнопку _ОК_. Спустя короткое время вы должны получить -подтверждение, что запись опубликована. - - -Созданный альбом и запись в хронике по умолчанию будут доступны только вам. Для того, чтобы ваши -друзья смогли увидеть эти записи, вам необходимо изменить настройки безопасности приложений, -войдя в _Facebook_ с помощью обычного броузера или приложения _Facebook_. Возможно это и является -некоторым неудобством, но разработчики придерживаются мнения, что такой дополнительный шаг позволит избежать нежелательных записей в вашей Хронике. - -image::images/facebook2.jpg["Рисунок: Авторизация в Facebook",align="center"] - -Разорвать соединение с _Facebook_ можно из *Настроек* приложения, либо просто закрыв _Subsurface_. - - [[S_Export_other]] === Экспорт данных погружения в другие форматы Функция экспорта доступна через главное меню _Файл -> Экспорт_. Диалог diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 46cf43251..a242b0047 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -63,7 +63,6 @@ set(SUBSURFACE_CORE_LIB_SRCS git-access.c gpslocation.cpp imagedownloader.cpp - isocialnetworkintegration.cpp libdivecomputer.c liquivision.c load-git.c @@ -81,7 +80,6 @@ set(SUBSURFACE_CORE_LIB_SRCS import-csv.c planner.c plannernotes.c - pluginmanager.cpp profile.c qthelper.cpp qt-init.cpp @@ -108,7 +106,6 @@ set(SUBSURFACE_CORE_LIB_SRCS settings/qPrefDisplay.cpp settings/qPrefDiveComputer.cpp settings/qPrefDivePlanner.cpp - settings/qPrefFacebook.cpp settings/qPrefGeneral.cpp settings/qPrefGeocoding.cpp settings/qPrefLanguage.cpp diff --git a/core/isocialnetworkintegration.cpp b/core/isocialnetworkintegration.cpp deleted file mode 100644 index 1786254f3..000000000 --- a/core/isocialnetworkintegration.cpp +++ /dev/null @@ -1,7 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include "isocialnetworkintegration.h" - -//Hack for moc. -ISocialNetworkIntegration::ISocialNetworkIntegration(QObject* parent) : QObject(parent) -{ -} diff --git a/core/isocialnetworkintegration.h b/core/isocialnetworkintegration.h deleted file mode 100644 index 74abfeac3..000000000 --- a/core/isocialnetworkintegration.h +++ /dev/null @@ -1,74 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#ifndef ISOCIALNETWORKINTEGRATION_H -#define ISOCIALNETWORKINTEGRATION_H - -#include - -/* This Interface represents a Plugin for Social Network integration, - * with it you may be able to create plugins for facebook, instagram, - * twitpic, google plus and any other thing you may imagine. - * - * We bundle facebook integration as an example. - */ - -class ISocialNetworkIntegration : public QObject { - Q_OBJECT -public: - ISocialNetworkIntegration(QObject* parent = 0); - - /*! - * @name socialNetworkName - * @brief The name of this social network - * @return The name of this social network - * - * The name of this social network will be used to populate the Menu to toggle states - * between connected/disconnected, and also submit stuff to it. - */ - virtual QString socialNetworkName() const = 0; - - /*! - * @name socialNetworkIcon - * @brief The icon of this social network - * @return The icon of this social network - * - * The icon of this social network will be used to populate the menu, and can also be - * used on a toolbar if requested. - */ - virtual QString socialNetworkIcon() const = 0; - - /*! - * @name isConnected - * @brief returns true if connected to this social network, false otherwise - * @return true if connected to this social network, false otherwise - */ - virtual bool isConnected() = 0; - - /*! - * @name requestLogin - * @brief try to login on this social network. - * - * Try to login on this social network. All widget implementation that - * manages login should be done inside this function. - */ - virtual void requestLogin() = 0; - - /*! - * @name requestLogoff - * @brief tries to logoff from this social network - * - * Try to logoff from this social network. - */ - virtual void requestLogoff() = 0; - - /*! - * @name uploadCurrentDive - * @brief send the current dive info to the Social Network - * - * Should format all the options and pixmaps from the current dive - * to update to the social network. All widget stuff related to sendint - * dive information should be executed inside this function. - */ - virtual void requestUpload() = 0; -}; - -#endif diff --git a/core/pluginmanager.cpp b/core/pluginmanager.cpp deleted file mode 100644 index 7a871f9b6..000000000 --- a/core/pluginmanager.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include "pluginmanager.h" - -#include -#include -#include -#include - -static QList _socialNetworks; - -// no point in including dive.h for this -extern int verbose; - -PluginManager& PluginManager::instance() -{ - static PluginManager self; - return self; -} - -PluginManager::PluginManager() -{ -} - -void PluginManager::loadPlugins() -{ - QDir pluginsDir(qApp->applicationDirPath()); - -#if defined(Q_OS_WIN) - if (pluginsDir.dirName().toLower() == "debug" || pluginsDir.dirName().toLower() == "release") - pluginsDir.cdUp(); -#elif defined(Q_OS_MAC) - if (pluginsDir.dirName() == "MacOS") { - pluginsDir.cdUp(); - pluginsDir.cdUp(); - pluginsDir.cdUp(); - } -#endif - pluginsDir.cd("plugins"); - - if (verbose) - qDebug() << "Plugins Directory: " << pluginsDir; - - foreach (const QString& fileName, pluginsDir.entryList(QDir::Files)) { - QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); - QObject *plugin = loader.instance(); - if(!plugin) - continue; - - if (ISocialNetworkIntegration *social = qobject_cast(plugin)) { - qDebug() << "Adding the plugin: " << social->socialNetworkName(); - _socialNetworks.push_back(social); - } - } -} diff --git a/core/pluginmanager.h b/core/pluginmanager.h deleted file mode 100644 index 55632c6fa..000000000 --- a/core/pluginmanager.h +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#ifndef PLUGINMANAGER_H -#define PLUGINMANAGER_H - -#include - -#include "isocialnetworkintegration.h" - -class PluginManager { -public: - static PluginManager& instance(); - void loadPlugins(); -private: - PluginManager(); - PluginManager(const PluginManager&); - PluginManager& operator=(const PluginManager&); -}; - -#endif diff --git a/core/pref.h b/core/pref.h index 3cfc90ebd..ee297780f 100644 --- a/core/pref.h +++ b/core/pref.h @@ -22,12 +22,6 @@ typedef struct double phe_threshold; } partial_pressure_graphs_t; -typedef struct { - const char *access_token; - const char *user_id; - const char *album_id; -} facebook_prefs_t; - typedef struct { enum taxonomy_category category[3]; } geocoding_prefs_t; @@ -111,9 +105,6 @@ struct preferences { double mobile_scale; bool show_developer; - // ********** Facebook ********** - facebook_prefs_t facebook; - // ********** General ********** bool auto_recalculate_thumbnails; bool extract_video_thumbnails; diff --git a/core/settings/qPref.cpp b/core/settings/qPref.cpp index b1c7217b2..aded20e11 100644 --- a/core/settings/qPref.cpp +++ b/core/settings/qPref.cpp @@ -5,7 +5,6 @@ #include "qPrefDisplay.h" #include "qPrefDiveComputer.h" #include "qPrefDivePlanner.h" -#include "qPrefFacebook.h" #include "qPrefGeneral.h" #include "qPrefGeocoding.h" #include "qPrefLanguage.h" @@ -51,7 +50,6 @@ void qPref::loadSync(bool doSync) qPrefDisplay::loadSync(doSync); qPrefDiveComputer::loadSync(doSync); qPrefDivePlanner::loadSync(doSync); - qPrefFacebook::loadSync(doSync); qPrefGeneral::loadSync(doSync); qPrefGeocoding::loadSync(doSync); qPrefLanguage::loadSync(doSync); @@ -76,7 +74,6 @@ void qPref::registerQML(QQmlEngine *engine) ct->setContextProperty("PrefDisplay", qPrefDisplay::instance()); ct->setContextProperty("PrefDiveComputer", qPrefDiveComputer::instance()); ct->setContextProperty("PrefDivePlanner", qPrefDivePlanner::instance()); - ct->setContextProperty("PrefFacebook", qPrefFacebook::instance()); ct->setContextProperty("PrefGeneral", qPrefGeneral::instance()); ct->setContextProperty("PrefGeocoding", qPrefGeocoding::instance()); ct->setContextProperty("PrefLanguage", qPrefLanguage::instance()); diff --git a/core/settings/qPrefFacebook.cpp b/core/settings/qPrefFacebook.cpp deleted file mode 100644 index 0f27c3c48..000000000 --- a/core/settings/qPrefFacebook.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include "qPrefFacebook.h" -#include "qPrefPrivate.h" - -static const QString group = QStringLiteral("WebApps/Facebook"); - -qPrefFacebook::qPrefFacebook(QObject *parent) : QObject(parent) -{ -} - -qPrefFacebook*qPrefFacebook::instance() -{ - static qPrefFacebook *self = new qPrefFacebook; - return self; -} - -void qPrefFacebook::loadSync(bool doSync) -{ - // Empty, because FB probs are not loaded/synced to disk -} - -void qPrefFacebook::set_access_token(const QString &value) -{ - if (value != prefs.facebook.access_token) { - qPrefPrivate::copy_txt(&prefs.facebook.access_token, value); - emit instance()->access_tokenChanged(value); - } -} - -void qPrefFacebook::set_album_id(const QString &value) -{ - if (value != prefs.facebook.album_id) { - qPrefPrivate::copy_txt(&prefs.facebook.album_id, value); - emit instance()->album_idChanged(value); - } -} - -void qPrefFacebook::set_user_id(const QString &value) -{ - if (value != prefs.facebook.user_id) { - qPrefPrivate::copy_txt(&prefs.facebook.user_id, value); - emit instance()->user_idChanged(value); - } -} diff --git a/core/settings/qPrefFacebook.h b/core/settings/qPrefFacebook.h deleted file mode 100644 index fcd8f1f7c..000000000 --- a/core/settings/qPrefFacebook.h +++ /dev/null @@ -1,45 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#ifndef QPREFSFACEBOOK_H -#define QPREFSFACEBOOK_H -#include "core/pref.h" - -#include - - -class qPrefFacebook : public QObject { - Q_OBJECT - Q_PROPERTY(QString access_token READ access_token WRITE set_access_token NOTIFY access_tokenChanged); - Q_PROPERTY(QString album_id READ album_id WRITE set_album_id NOTIFY album_idChanged); - Q_PROPERTY(QString user_id READ user_id WRITE set_user_id NOTIFY user_idChanged); - -public: - qPrefFacebook(QObject *parent = NULL); - static qPrefFacebook *instance(); - - // Load/Sync local settings (disk) and struct preference - static void loadSync(bool doSync); - static void load() {loadSync(false); } - static void sync() {loadSync(true); } - -public: - static QString access_token() { return prefs.facebook.access_token; } - static QString album_id() { return prefs.facebook.album_id; } - static QString user_id() { return prefs.facebook.user_id; } - -public slots: - static void set_access_token(const QString& value); - static void set_album_id(const QString& value); - static void set_user_id(const QString& value); - -signals: - void access_tokenChanged(const QString& value); - void album_idChanged(const QString& value); - void user_idChanged(const QString& value); - -private: - static void disk_access_token(bool doSync); - static void disk_album_id(bool doSync); - static void disk_user_id(bool doSync); -}; - -#endif diff --git a/core/subsurfacestartup.c b/core/subsurfacestartup.c index 07be0cb43..3669cc8ec 100644 --- a/core/subsurfacestartup.c +++ b/core/subsurfacestartup.c @@ -77,11 +77,6 @@ struct preferences default_prefs = { .pscr_ratio = 100, .show_pictures_in_profile = true, .tankbar = false, - .facebook = { - .user_id = NULL, - .album_id = NULL, - .access_token = NULL - }, .defaultsetpoint = 1100, .geocoding = { .category = { 0 } @@ -312,9 +307,6 @@ void copy_prefs(struct preferences *src, struct preferences *dest) dest->cloud_storage_password = copy_string(src->cloud_storage_password); dest->cloud_storage_email = copy_string(src->cloud_storage_email); dest->cloud_storage_email_encoded = copy_string(src->cloud_storage_email_encoded); - dest->facebook.access_token = copy_string(src->facebook.access_token); - dest->facebook.user_id = copy_string(src->facebook.user_id); - dest->facebook.album_id = copy_string(src->facebook.album_id); dest->ffmpeg_executable = copy_string(src->ffmpeg_executable); } diff --git a/desktop-widgets/CMakeLists.txt b/desktop-widgets/CMakeLists.txt index 629c0507e..ea09e5ce6 100644 --- a/desktop-widgets/CMakeLists.txt +++ b/desktop-widgets/CMakeLists.txt @@ -7,20 +7,12 @@ if(BTSUPPORT) set(BT_SRC_FILES btdeviceselectiondialog.cpp) endif() -if (FBSUPPORT) - add_definitions(-DFBSUPPORT) -endif() - - include_directories(. ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR} ) add_subdirectory(preferences) -if(NOT DISABLE_PLUGINS) - add_subdirectory(plugins) -endif() set (SUBSURFACE_UI about.ui diff --git a/desktop-widgets/mainwindow.cpp b/desktop-widgets/mainwindow.cpp index 584ad9e0c..2d1f61d2b 100644 --- a/desktop-widgets/mainwindow.cpp +++ b/desktop-widgets/mainwindow.cpp @@ -22,10 +22,8 @@ #include "core/divesitehelpers.h" #include "core/gettextfromc.h" #include "core/git-access.h" -#include "core/isocialnetworkintegration.h" #include "core/import-csv.h" #include "core/planner.h" -#include "core/pluginmanager.h" #include "core/qthelper.h" #include "core/subsurface-string.h" #include "core/version.h" @@ -76,11 +74,6 @@ #include "usermanual.h" #endif -#if defined(FBSUPPORT) -#include "plugins/facebook/facebook_integration.h" -#include "plugins/facebook/facebookconnectwidget.h" -#endif - namespace { QProgressDialog *progressDialog = nullptr; bool progressDialogCanceled = false; @@ -380,63 +373,6 @@ MainWindow::~MainWindow() void MainWindow::setupSocialNetworkMenu() { -#ifdef FBSUPPORT - connections = new QMenu(tr("Connect to")); - FacebookPlugin *facebookPlugin = new FacebookPlugin(); - QAction *toggle_connection = new QAction(this); - QObject *obj = facebookPlugin; - toggle_connection->setText(facebookPlugin->socialNetworkName()); - toggle_connection->setIcon(QIcon(facebookPlugin->socialNetworkIcon())); - toggle_connection->setData(QVariant::fromValue(obj)); - connect(toggle_connection, SIGNAL(triggered()), this, SLOT(socialNetworkRequestConnect())); - FacebookManager *fb = FacebookManager::instance(); - connect(fb, &FacebookManager::justLoggedIn, this, &MainWindow::facebookLoggedIn); - connect(fb, &FacebookManager::justLoggedOut, this, &MainWindow::facebookLoggedOut); - connect(fb, &FacebookManager::sendMessage, [this](const QString& msg) { - statusBar()->showMessage(msg, 10000); // show message for 10 secs on the statusbar. - }); - share_on_fb = new QAction(this); - share_on_fb->setText(facebookPlugin->socialNetworkName()); - share_on_fb->setIcon(QIcon(facebookPlugin->socialNetworkIcon())); - share_on_fb->setData(QVariant::fromValue(obj)); - share_on_fb->setEnabled(false); - ui.menuShare_on->addAction(share_on_fb); - connections->addAction(toggle_connection); - connect(share_on_fb, SIGNAL(triggered()), this, SLOT(socialNetworkRequestUpload())); - ui.menuShare_on->addSeparator(); - ui.menuShare_on->addMenu(connections); - ui.menubar->show(); -#endif -} - -void MainWindow::facebookLoggedIn() -{ - connections->setTitle(tr("Disconnect from")); - share_on_fb->setEnabled(true); -} - -void MainWindow::facebookLoggedOut() -{ - connections->setTitle(tr("Connect to")); - share_on_fb->setEnabled(false); -} - -void MainWindow::socialNetworkRequestConnect() -{ - qDebug() << "Requesting connect on the social network"; - QAction *action = qobject_cast(sender()); - ISocialNetworkIntegration *plugin = qobject_cast(action->data().value()); - if (plugin->isConnected()) - plugin->requestLogoff(); - else - plugin->requestLogin(); -} - -void MainWindow::socialNetworkRequestUpload() -{ - QAction *action = qobject_cast(sender()); - ISocialNetworkIntegration *plugin = action->data().value(); - plugin->requestUpload(); } void MainWindow::setStateProperties(const QByteArray& state, const PropertyList& tl, const PropertyList& tr, const PropertyList& bl, const PropertyList& br) diff --git a/desktop-widgets/mainwindow.h b/desktop-widgets/mainwindow.h index e9632779c..4a2de1c6b 100644 --- a/desktop-widgets/mainwindow.h +++ b/desktop-widgets/mainwindow.h @@ -175,11 +175,6 @@ slots: // should only be enabled when the profile's visible. void disableShortcuts(bool disablePaste = true); void enableShortcuts(); - - void socialNetworkRequestConnect(); - void socialNetworkRequestUpload(); - void facebookLoggedIn(); - void facebookLoggedOut(); void updateVariations(QString); diff --git a/desktop-widgets/mainwindow.ui b/desktop-widgets/mainwindow.ui index 2dcd3e8a6..afd4168eb 100644 --- a/desktop-widgets/mainwindow.ui +++ b/desktop-widgets/mainwindow.ui @@ -137,18 +137,11 @@ &Edit - - - Share o&n - - - - @@ -700,11 +693,6 @@ Dive Site &Edit - - - Facebook - - true diff --git a/desktop-widgets/plugins/CMakeLists.txt b/desktop-widgets/plugins/CMakeLists.txt deleted file mode 100644 index f424e172e..000000000 --- a/desktop-widgets/plugins/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -add_subdirectory(facebook) \ No newline at end of file diff --git a/desktop-widgets/plugins/facebook/CMakeLists.txt b/desktop-widgets/plugins/facebook/CMakeLists.txt deleted file mode 100644 index 592700ad4..000000000 --- a/desktop-widgets/plugins/facebook/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -if (ANDROID) - set(FACEBOOK_INTEGRATION "") -elseif (${FBSUPPORT}) - add_definitions(-DFBSUPPORT) - set(FACEBOOK_INTEGRATION facebook_integration) - include_directories(${CMAKE_CURRENT_BINARY_DIR}) - - set(FACEBOOK_PLUGIN_UI - facebookconnectwidget.ui - socialnetworksdialog.ui - ) - - set(FACEBOOK_PLUGIN_SRCS - facebook_integration.cpp - facebookconnectwidget.cpp - ) - - qt5_wrap_ui(FACEBOOK_PLUGIN_UI_SRCS ${FACEBOOK_PLUGIN_UI}) - add_library(facebook_integration STATIC ${FACEBOOK_PLUGIN_SRCS} ${FACEBOOK_PLUGIN_UI_SRCS}) - target_link_libraries(facebook_integration ${QT_LIBRARIES}) - add_dependencies(facebook_integration subsurface_corelib) -endif() diff --git a/desktop-widgets/plugins/facebook/facebook_integration.cpp b/desktop-widgets/plugins/facebook/facebook_integration.cpp deleted file mode 100644 index 30fa83610..000000000 --- a/desktop-widgets/plugins/facebook/facebook_integration.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include "facebook_integration.h" -#include "facebookconnectwidget.h" - -#include - -FacebookPlugin::FacebookPlugin(QObject*) : - fbConnectWidget(new FacebookConnectWidget()) -{ -} - -bool FacebookPlugin::isConnected() -{ - FacebookManager *instance = FacebookManager::instance(); - return instance->loggedIn(); -} - -void FacebookPlugin::requestLogin() -{ - fbConnectWidget->exec(); -} - -void FacebookPlugin::requestLogoff() -{ - FacebookManager::instance()->logout(); -} - -QString FacebookPlugin::socialNetworkIcon() const -{ - return QString(); -} - -QString FacebookPlugin::socialNetworkName() const -{ - return tr("Facebook"); -} - -void FacebookPlugin::requestUpload() -{ - FacebookManager *instance = FacebookManager::instance(); - if (instance->loggedIn()) - instance->sendDiveInit(); -} diff --git a/desktop-widgets/plugins/facebook/facebook_integration.h b/desktop-widgets/plugins/facebook/facebook_integration.h deleted file mode 100644 index 7a9ebc700..000000000 --- a/desktop-widgets/plugins/facebook/facebook_integration.h +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#ifndef FACEBOOK_INTEGRATION_H -#define FACEBOOK_INTEGRATION_H - -#include "core/isocialnetworkintegration.h" -#include - -class FacebookConnectWidget; -class SocialNetworkDialog; -class FacebookManager; - -class FacebookPlugin : public ISocialNetworkIntegration { - Q_OBJECT -public: - explicit FacebookPlugin(QObject* parent = 0); - bool isConnected() override; - void requestLogin() override; - void requestLogoff() override; - QString socialNetworkIcon() const override; - QString socialNetworkName() const override; - void requestUpload() override; -private: - FacebookConnectWidget *fbConnectWidget; -}; - -#endif diff --git a/desktop-widgets/plugins/facebook/facebookconnectwidget.cpp b/desktop-widgets/plugins/facebook/facebookconnectwidget.cpp deleted file mode 100644 index 7a497e218..000000000 --- a/desktop-widgets/plugins/facebook/facebookconnectwidget.cpp +++ /dev/null @@ -1,421 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include "facebookconnectwidget.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef USE_WEBENGINE -#include -#else -#include -#endif -#include "mainwindow.h" -#include "profile-widget/profilewidget2.h" - -#include "core/pref.h" -#include "core/qthelper.h" -#include "core/settings/qPrefFacebook.h" - -#include "ui_socialnetworksdialog.h" -#include "ui_facebookconnectwidget.h" - -Q_LOGGING_CATEGORY(lcFacebook, "subsurface.facebook") - -FacebookManager *FacebookManager::instance() -{ - static FacebookManager *self = new FacebookManager(); - return self; -} - -FacebookManager::FacebookManager(QObject *parent) : - QObject(parent), - manager(new QNetworkAccessManager(this)) -{ - // log only in verbose mode - QLoggingCategory::setFilterRules(QStringLiteral("subsurface.facebook=%1").arg(verbose ? "true" : "false")); - connect(this, &FacebookManager::albumIdReceived, this, &FacebookManager::sendDiveToAlbum); -} - -static QString graphApi = QStringLiteral("https://graph.facebook.com/v2.10/"); - -QUrl FacebookManager::albumListUrl() -{ - return QUrl("https://graph.facebook.com/me/albums?access_token=" + QString(prefs.facebook.access_token)); -} - -QUrl FacebookManager::connectUrl() { - return QUrl("https://www.facebook.com/dialog/oauth?" - "client_id=427722490709000" - "&redirect_uri=https://www.facebook.com/connect/login_success.html" - "&response_type=token,granted_scopes" - "&display=popup" - "&scope=publish_actions,user_photos" - ); -} - -bool FacebookManager::loggedIn() { - return prefs.facebook.access_token != NULL; -} - -void FacebookManager::tryLogin(const QUrl& loginResponse) -{ - qCDebug(lcFacebook) << "Current url call" << loginResponse; - QString result = loginResponse.toString(); - if (!result.contains("access_token")) { - qCDebug(lcFacebook) << "Response without access token!"; - return; - } - - if (result.contains("denied_scopes=publish_actions") || result.contains("denied_scopes=user_photos")) { - qCDebug(lcFacebook) << "user did not allow us access" << result; - return; - } - - int from = result.indexOf("access_token=") + strlen("access_token="); - int to = result.indexOf("&expires_in"); - QString securityToken = result.mid(from, to-from); - - qPrefFacebook::set_access_token(securityToken); - qCDebug(lcFacebook) << "Got securityToken" << securityToken; - requestUserId(); -} - -void FacebookManager::logout() -{ - qPrefFacebook::set_access_token(QString()); - qPrefFacebook::set_user_id(QString()); - qPrefFacebook::set_album_id(QString()); - emit justLoggedOut(true); -} - -void FacebookManager::requestAlbumId() -{ - qCDebug(lcFacebook) << "Starting to request the album id" << albumListUrl(); - QNetworkReply *reply = manager->get(QNetworkRequest(albumListUrl())); - connect(reply, &QNetworkReply::finished, this, &FacebookManager::albumListReceived); -} - -void FacebookManager::albumListReceived() -{ - qCDebug(lcFacebook) << "Reply for the album id"; - QNetworkReply *reply = qobject_cast(sender()); - QJsonDocument albumsDoc = QJsonDocument::fromJson(reply->readAll()); - QJsonArray albumObj = albumsDoc.object().value("data").toArray(); - - reply->deleteLater(); - foreach(const QJsonValue &v, albumObj){ - QJsonObject obj = v.toObject(); - if (obj.value("name").toString() == fbInfo.albumName) { - qPrefFacebook::set_album_id(obj.value("id").toString()); - qCDebug(lcFacebook) << "Album" << fbInfo.albumName << "already exists, using id" << obj.value("id").toString(); - emit albumIdReceived(qPrefFacebook::album_id()); - return; - } - } - - // No album with the name we requested, create a new one. - createFacebookAlbum(); -} - -void FacebookManager::createFacebookAlbum() -{ - qCDebug(lcFacebook) << "Album with name" << fbInfo.albumName << "doesn't exists, creating it."; - QUrlQuery params; - params.addQueryItem("name", fbInfo.albumName ); - params.addQueryItem("description", "Subsurface Album"); - params.addQueryItem("privacy", "{'value': 'SELF'}"); - - QNetworkRequest request(albumListUrl()); - request.setHeader(QNetworkRequest::ContentTypeHeader, "application/octet-stream"); - - QNetworkReply *reply = manager->post(request, params.query().toUtf8()); - connect(reply, &QNetworkReply::finished, this, &FacebookManager::facebookAlbumCreated); -} - -void FacebookManager::facebookAlbumCreated() -{ - QNetworkReply *reply = qobject_cast(sender()); - QJsonDocument albumsDoc = QJsonDocument::fromJson(reply->readAll()); - QJsonObject album = albumsDoc.object(); - - reply->deleteLater(); - - if (album.contains("id")) { - qCDebug(lcFacebook) << "Album" << fbInfo.albumName << "created successfully with id" << album.value("id").toString(); - qPrefFacebook::set_album_id(album.value("id").toString()); - emit albumIdReceived(qPrefFacebook::album_id()); - return; - } else { - qCDebug(lcFacebook) << "It was not possible to create the album with name" << fbInfo.albumName; - qCDebug(lcFacebook).noquote() << "Reply was: " << QString(albumsDoc.toJson(QJsonDocument::Indented)); - // FIXME: we are lacking 'user_photos' facebook permission to create an album, - // but we are able to upload the image to Facebook (album will be named 'Subsurface Photos') - qCDebug(lcFacebook) << "But we are still able to upload data. Album name will be 'Subsurface Photos'"; - emit albumIdReceived(qPrefFacebook::album_id()); - } -} - -void FacebookManager::requestUserId() -{ - qCDebug(lcFacebook) << "Requesting user id"; - QUrl userIdRequest("https://graph.facebook.com/me?fields=id&access_token=" + QString(prefs.facebook.access_token)); - QNetworkReply *reply = manager->get(QNetworkRequest(userIdRequest)); - - connect(reply, &QNetworkReply::finished, this, &FacebookManager::userIdReceived); -} - -void FacebookManager::userIdReceived() -{ - QNetworkReply *reply = qobject_cast(sender()); - QJsonDocument jsonDoc = QJsonDocument::fromJson(reply->readAll()); - QJsonObject obj = jsonDoc.object(); - if (obj.keys().contains("id")) { - qCDebug(lcFacebook) << "User id requested successfully:" << obj.value("id").toString(); - qPrefFacebook::set_user_id(obj.value("id").toString()); - emit sendMessage(tr("Facebook logged in successfully")); - emit justLoggedIn(true); - } else { - emit sendMessage(tr("Error, unknown user id, cannot login.")); - qCDebug(lcFacebook) << "Error, unknown user id, cannot login."; - } - reply->deleteLater(); -} - -QPixmap FacebookManager::grabProfilePixmap() -{ - qCDebug(lcFacebook) << "Grabbing Dive Profile pixmap"; - ProfileWidget2 *profile = MainWindow::instance()->graphics; - - QSize size = fbInfo.profileSize == FacebookInfo::SMALL ? QSize(800,600) : - fbInfo.profileSize == FacebookInfo::MEDIUM ? QSize(1024,760) : - fbInfo.profileSize == FacebookInfo::BIG ? QSize(1280,1024) : QSize(); - - auto currSize = profile->size(); - profile->resize(size); - profile->setToolTipVisibile(false); - QPixmap pix = profile->grab(); - profile->setToolTipVisibile(true); - profile->resize(currSize); - - return pix; -} - - -/* to be changed to export the currently selected dive as shown on the profile. - * Much much easier, and its also good to people do not select all the dives - * and send erroniously *all* of them to facebook. */ -void FacebookManager::sendDiveInit() -{ - qCDebug(lcFacebook) << "Starting to upload the dive to facebook"; - - SocialNetworkDialog dialog(qApp->activeWindow()); - if (dialog.exec() != QDialog::Accepted) { - qCDebug(lcFacebook) << "User cancelled."; - return; - } - - fbInfo.bodyText = dialog.text(); - fbInfo.profileSize = dialog.profileSize(); - fbInfo.profileData = grabProfilePixmap(); - fbInfo.albumName = dialog.album(); - fbInfo.albumId = QString(); // request Album Id wil handle that. - - // will emit albumIdReceived, that's connected to sendDiveToAlbum - requestAlbumId(); -} - -void FacebookManager::sendDiveToAlbum(const QString& albumId) -{ - qCDebug(lcFacebook) << "Starting to upload the dive to album" << fbInfo.albumName << "id" << albumId; - QUrl url(graphApi + albumId + "/photos?" + - "&access_token=" + QString(prefs.facebook.access_token) + - "&source=image" + - "&message=" + fbInfo.bodyText.replace(""", "%22")); - - QNetworkRequest request(url); - - QString bound="margin"; - - //according to rfc 1867 we need to put this string here: - QByteArray data(QString("--" + bound + "\r\n").toUtf8()); - data.append("Content-Disposition: form-data; name=\"action\"\r\n\r\n"); - data.append(graphApi + "\r\n"); - data.append("--" + bound + "\r\n"); //according to rfc 1867 - - //name of the input is "uploaded" in my form, next one is a file name. - data.append("Content-Disposition: form-data; name=\"uploaded\"; filename=\"" + QString::number(qrand()) + ".png\"\r\n"); - data.append("Content-Type: image/jpeg\r\n\r\n"); //data type - - QByteArray bytes; - QBuffer buffer(&bytes); - buffer.open(QIODevice::WriteOnly); - fbInfo.profileData.save(&buffer, "PNG"); - - data.append(bytes); //let's read the file - data.append("\r\n"); - data.append("--" + bound + "--\r\n"); //closing boundary according to rfc 1867 - - request.setRawHeader(QByteArray("Content-Type"),QString("multipart/form-data; boundary=" + bound).toUtf8()); - request.setRawHeader(QByteArray("Content-Length"), QString::number(data.length()).toUtf8()); - QNetworkReply *reply = manager->post(request,data); - - connect(reply, &QNetworkReply::finished, this, &FacebookManager::uploadFinished); -} - -void FacebookManager::uploadFinished() -{ - qCDebug(lcFacebook) << "Upload finish"; - auto reply = qobject_cast(sender()); - QByteArray response = reply->readAll(); - QJsonDocument jsonDoc = QJsonDocument::fromJson(response); - QJsonObject obj = jsonDoc.object(); - - reply->deleteLater(); - - if (obj.keys().contains("id")){ - emit sendMessage(tr("Dive uploaded successfully to Facebook")); - } else { - emit sendMessage(tr("Dive upload failed. Please see debug output and send to Subsurface mailing list")); - qCDebug(lcFacebook) << "Dive upload failed" << response; - } - - emit sendDiveFinished(); -} - -void FacebookConnectWidget::showEvent(QShowEvent *event) -{ - if (FacebookManager::instance()->loggedIn()) { - facebookLoggedIn(); - } else { - facebookDisconnect(); - } - return QDialog::showEvent(event); -} - -FacebookConnectWidget::FacebookConnectWidget(QWidget *parent) : QDialog(parent), ui(new Ui::FacebookConnectWidget) { - ui->setupUi(this); - FacebookManager *fb = FacebookManager::instance(); -#ifdef USE_WEBENGINE - facebookWebView = new QWebEngineView(this); -#else - facebookWebView = new QWebView(this); -#endif - ui->fbWebviewContainer->layout()->addWidget(facebookWebView); -#ifdef USE_WEBENGINE - connect(facebookWebView, &QWebEngineView::urlChanged, fb, &FacebookManager::tryLogin); -#else - connect(facebookWebView, &QWebView::urlChanged, fb, &FacebookManager::tryLogin); -#endif - connect(fb, &FacebookManager::justLoggedIn, this, &FacebookConnectWidget::facebookLoggedIn); - connect(fb, &FacebookManager::justLoggedOut, this, &FacebookConnectWidget::facebookDisconnect); -} - -void FacebookConnectWidget::facebookLoggedIn() -{ - ui->fbWebviewContainer->hide(); - ui->fbWebviewContainer->setEnabled(false); - ui->FBLabel->setText(tr("To disconnect Subsurface from your Facebook account, use the 'Share on' menu entry.")); - close(); -} - -void FacebookConnectWidget::facebookDisconnect() -{ - qCDebug(lcFacebook) << "Disconnecting from facebook"; - // remove the connect/disconnect button - // and instead add the login view - ui->fbWebviewContainer->show(); - ui->fbWebviewContainer->setEnabled(true); - ui->FBLabel->setText(tr("To connect to Facebook, please log in. This enables Subsurface to publish dives to your timeline")); - if (facebookWebView) { -#ifdef USE_WEBENGINE - //FIX ME -#else - facebookWebView->page()->networkAccessManager()->setCookieJar(new QNetworkCookieJar()); -#endif - facebookWebView->setUrl(FacebookManager::instance()->connectUrl()); - } -} - -SocialNetworkDialog::SocialNetworkDialog(QWidget *parent) : - QDialog(parent), - ui( new Ui::SocialnetworksDialog()) -{ - ui->setupUi(this); - ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); - connect(ui->date, &QCheckBox::clicked, this, &SocialNetworkDialog::selectionChanged); - connect(ui->duration, &QCheckBox::clicked, this, &SocialNetworkDialog::selectionChanged); - connect(ui->Buddy, &QCheckBox::clicked, this, &SocialNetworkDialog::selectionChanged); - connect(ui->Divemaster, &QCheckBox::clicked, this, &SocialNetworkDialog::selectionChanged); - connect(ui->Location, &QCheckBox::clicked, this, &SocialNetworkDialog::selectionChanged); - connect(ui->Notes, &QCheckBox::clicked, this, &SocialNetworkDialog::selectionChanged); - connect(ui->album, &QLineEdit::textChanged, this, &SocialNetworkDialog::albumChanged); -} - -FacebookInfo::Size SocialNetworkDialog::profileSize() const -{ - QString currText = ui->profileSize->currentText(); - return currText.startsWith(tr("Small")) ? FacebookInfo::SMALL : - currText.startsWith(tr("Medium")) ? FacebookInfo::MEDIUM : - /* currText.startsWith(tr("Big")) ? */ FacebookInfo::BIG; -} - - -void SocialNetworkDialog::albumChanged() -{ - QAbstractButton *button = ui->buttonBox->button(QDialogButtonBox::Ok); - button->setEnabled(!ui->album->text().isEmpty()); -} - -void SocialNetworkDialog::selectionChanged() -{ - struct dive *d = current_dive; - QString fullText; - - if (!d) - return; - - if (ui->date->isChecked()) { - fullText += tr("Dive date: %1 \n").arg(get_short_dive_date_string(d->when)); - } - if (ui->duration->isChecked()) { - fullText += tr("Duration: %1 \n").arg(get_dive_duration_string(d->duration.seconds, - tr("h", "abbreviation for hours"), - tr("min", "abbreviation for minutes"))); - } - if (ui->Location->isChecked()) { - fullText += tr("Dive location: %1 \n").arg(get_dive_location(d)); - } - if (ui->Buddy->isChecked()) { - fullText += tr("Buddy: %1 \n").arg(d->buddy); - } - if (ui->Divemaster->isChecked()) { - fullText += tr("Divemaster: %1 \n").arg(d->divemaster); - } - if (ui->Notes->isChecked()) { - fullText += tr("\n%1").arg(d->notes); - } - ui->text->setPlainText(fullText); -} - -QString SocialNetworkDialog::text() const { - return ui->text->toPlainText().toHtmlEscaped(); -} - -QString SocialNetworkDialog::album() const { - return ui->album->text().toHtmlEscaped(); -} - - diff --git a/desktop-widgets/plugins/facebook/facebookconnectwidget.h b/desktop-widgets/plugins/facebook/facebookconnectwidget.h deleted file mode 100644 index ebaded04b..000000000 --- a/desktop-widgets/plugins/facebook/facebookconnectwidget.h +++ /dev/null @@ -1,99 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#ifndef FACEBOOKCONNECTWIDGET_H -#define FACEBOOKCONNECTWIDGET_H - -#include -#include -#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 diff --git a/desktop-widgets/plugins/facebook/facebookconnectwidget.ui b/desktop-widgets/plugins/facebook/facebookconnectwidget.ui deleted file mode 100644 index b5caa5ab1..000000000 --- a/desktop-widgets/plugins/facebook/facebookconnectwidget.ui +++ /dev/null @@ -1,104 +0,0 @@ - - - FacebookConnectWidget - - - - 0 - 0 - 835 - 698 - - - - Preferences - - - - :subsurface-icon - - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - - - 0 - 0 - - - - 0 - - - - - 0 - 0 - - - - - 5 - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - - - - 0 - 0 - - - - Connect to Facebook text placeholder - - - - - - - - - - - - - - - - - - - - - - diff --git a/desktop-widgets/plugins/facebook/socialnetworksdialog.ui b/desktop-widgets/plugins/facebook/socialnetworksdialog.ui deleted file mode 100644 index 2e68a2a99..000000000 --- a/desktop-widgets/plugins/facebook/socialnetworksdialog.ui +++ /dev/null @@ -1,189 +0,0 @@ - - - SocialnetworksDialog - - - - 0 - 0 - 591 - 619 - - - - Dialog - - - - - - 1 - - - - - - Small - - - - - Medium - - - - - Big - - - - - - - - The text to the right will be posted as the description with your dive profile graph to Facebook. The album name is required (the profile graph will be posted to that album). - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - true - - - - - - - Album - - - - - - - The profile picture will be posted in this album (required) - - - - - - - Include - - - - - - - Date and time - - - - - - - Duration - - - - - - - Location - - - - - - - Divemaster - - - - - - - Buddy - - - - - - - Notes - - - - - - - - 75 - true - - - - Facebook post preview - - - - - - - - - - Image Size - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - SocialnetworksDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - SocialnetworksDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - - diff --git a/icons/facebook.png b/icons/facebook.png deleted file mode 100644 index f31da2abf347db462a1de83d4489f8bbe0d15f66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153369 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

i% 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�o`2O~U@ys|gX^_BdD`W#d!guWyyZt$Q13o|#Lw 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 diff --git a/subsurface.qrc b/subsurface.qrc index 2caf317c6..67c7b6612 100644 --- a/subsurface.qrc +++ b/subsurface.qrc @@ -78,7 +78,6 @@ icons/ostc3.png icons/ostc4.png icons/suunto_vyper.png - icons/facebook.png icons/georeference.png icons/edit-undo.svg icons/go-top.svg diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index bd827cea5..c90453954 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -108,7 +108,6 @@ TEST(TestQPrefCloudStorage testqPrefCloudStorage.cpp) TEST(TestQPrefDisplay testqPrefDisplay.cpp) TEST(TestQPrefDiveComputer testqPrefDiveComputer.cpp) TEST(TestQPrefDivePlanner testqPrefDivePlanner.cpp) -TEST(TestQPrefFacebook testqPrefFacebook.cpp) TEST(TestQPrefGeneral testqPrefGeneral.cpp) TEST(TestQPrefGeocoding testqPrefGeocoding.cpp) TEST(TestQPrefLanguage testqPrefLanguage.cpp) @@ -139,7 +138,6 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} TestQPrefDisplay TestQPrefDiveComputer TestQPrefDivePlanner - TestQPrefFacebook TestQPrefGeneral TestQPrefGeocoding TestQPrefLanguage diff --git a/tests/testqPrefFacebook.cpp b/tests/testqPrefFacebook.cpp deleted file mode 100644 index 59063b7a3..000000000 --- a/tests/testqPrefFacebook.cpp +++ /dev/null @@ -1,109 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#include "testqPrefFacebook.h" - -#include "core/settings/qPrefFacebook.h" -#include "core/pref.h" -#include "core/qthelper.h" - -#include -#include - -void TestQPrefFacebook::initTestCase() -{ - QCoreApplication::setOrganizationName("Subsurface"); - QCoreApplication::setOrganizationDomain("subsurface.hohndel.org"); - QCoreApplication::setApplicationName("SubsurfaceTestQPrefFacebook"); -} - -void TestQPrefFacebook::test_struct_get() -{ - // Test struct pref -> get func. - - auto tst = qPrefFacebook::instance(); - - prefs.facebook.access_token = copy_qstring("t1 token"); - prefs.facebook.album_id = copy_qstring("t1 album"); - prefs.facebook.user_id = copy_qstring("t1 user"); - - QCOMPARE(tst->access_token(), QString(prefs.facebook.access_token)); - QCOMPARE(tst->album_id(), QString(prefs.facebook.album_id)); - QCOMPARE(tst->user_id(), QString(prefs.facebook.user_id)); -} - -void TestQPrefFacebook::test_set_struct() -{ - // Test set func -> struct pref - - auto tst = qPrefFacebook::instance(); - - tst->set_access_token("t2 token"); - tst->set_album_id("t2 album"); - tst->set_user_id("t2 user"); - - QCOMPARE(QString(prefs.facebook.access_token), QString("t2 token")); - QCOMPARE(QString(prefs.facebook.album_id), QString("t2 album")); - QCOMPARE(QString(prefs.facebook.user_id), QString("t2 user")); -} - -void TestQPrefFacebook::test_multiple() -{ - // test multiple instances have the same information - - auto tst_direct = new qPrefFacebook; - prefs.facebook.access_token = copy_qstring("test 1"); - - auto tst = qPrefFacebook::instance(); - prefs.facebook.album_id = copy_qstring("test 2"); - - QCOMPARE(tst->access_token(), tst_direct->access_token()); - QCOMPARE(tst->access_token(), QString("test 1")); - QCOMPARE(tst->album_id(), tst_direct->album_id()); - QCOMPARE(tst->album_id(), QString("test 2")); -} - -#define TEST(METHOD, VALUE) \ -QCOMPARE(METHOD, VALUE); \ -fb->sync(); \ -fb->load(); \ -QCOMPARE(METHOD, VALUE); - -void TestQPrefFacebook::test_oldPreferences() -{ - auto fb = qPrefFacebook::instance(); - fb->set_access_token("rand-access-token"); - fb->set_user_id("tomaz-user-id"); - fb->set_album_id("album-id"); - - TEST(fb->access_token(),QStringLiteral("rand-access-token")); - TEST(fb->user_id(), QStringLiteral("tomaz-user-id")); - TEST(fb->album_id(), QStringLiteral("album-id")); - - fb->set_access_token("rand-access-token-2"); - fb->set_user_id("tomaz-user-id-2"); - fb->set_album_id("album-id-2"); - - TEST(fb->access_token(),QStringLiteral("rand-access-token-2")); - TEST(fb->user_id(), QStringLiteral("tomaz-user-id-2")); - TEST(fb->album_id(), QStringLiteral("album-id-2")); -} - -void TestQPrefFacebook::test_signals() -{ - QSignalSpy spy1(qPrefFacebook::instance(), SIGNAL(access_tokenChanged(QString))); - QSignalSpy spy2(qPrefFacebook::instance(), SIGNAL(album_idChanged(QString))); - QSignalSpy spy3(qPrefFacebook::instance(), SIGNAL(user_idChanged(QString))); - - qPrefFacebook::set_access_token("t_signal token"); - qPrefFacebook::set_album_id("t_signal album"); - qPrefFacebook::set_user_id("t_signal user"); - - QCOMPARE(spy1.count(), 1); - QCOMPARE(spy2.count(), 1); - QCOMPARE(spy3.count(), 1); - QVERIFY(spy1.takeFirst().at(0).toString() == "t_signal token"); - QVERIFY(spy2.takeFirst().at(0).toString() == "t_signal album"); - QVERIFY(spy3.takeFirst().at(0).toString() == "t_signal user"); -} - - -QTEST_MAIN(TestQPrefFacebook) diff --git a/tests/testqPrefFacebook.h b/tests/testqPrefFacebook.h deleted file mode 100644 index bf17a6576..000000000 --- a/tests/testqPrefFacebook.h +++ /dev/null @@ -1,20 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -#ifndef TESTQPREFFACEBOOK_H -#define TESTQPREFFACEBOOK_H - -#include - -class TestQPrefFacebook : public QObject -{ - Q_OBJECT - -private slots: - void initTestCase(); - void test_struct_get(); - void test_set_struct(); - void test_multiple(); - void test_oldPreferences(); - void test_signals(); -}; - -#endif // TESTQPREFFACEBOOK_H diff --git a/tests/tst_qPrefFacebook.qml b/tests/tst_qPrefFacebook.qml deleted file mode 100644 index 24be306a7..000000000 --- a/tests/tst_qPrefFacebook.qml +++ /dev/null @@ -1,46 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -import QtQuick 2.6 -import QtTest 1.2 - -TestCase { - name: "qPrefFacebook" - - function test_variables() { - var x1 = PrefFacebook.access_token - PrefFacebook.access_token = "my token" - compare(PrefFacebook.access_token, "my token") - - var x2 = PrefFacebook.album_id - PrefFacebook.album_id = "my album" - compare(PrefFacebook.album_id, "my album") - - var x3 = PrefFacebook.user_id - PrefFacebook.user_id = "my user" - compare(PrefFacebook.user_id, "my user") - } - - Item { - id: spyCatcher - - property bool spy1 : false - property bool spy2 : false - property bool spy3 : false - - Connections { - target: PrefFacebook - onAccess_tokenChanged: {spyCatcher.spy1 = true } - onAlbum_idChanged: {spyCatcher.spy2 = true } - onUser_idChanged: {spyCatcher.spy3 = true } - } - } - - function test_signals() { - PrefFacebook.access_token = "qml" - PrefFacebook.album_id = "qml" - PrefFacebook.user_id = "qml" - - compare(spyCatcher.spy1, true) - compare(spyCatcher.spy2, true) - compare(spyCatcher.spy3, true) - } -}