2 Situare - A location system for Facebook
3 Copyright (C) 2010 Ixonos Plc. Authors:
5 Ville Tiensuu - ville.tiensuu@ixonos.com
6 Kaj Wallin - kaj.wallin@ixonos.com
7 Henri Lampela - henri.lampela@ixonos.com
9 Situare is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License
11 version 2 as published by the Free Software Foundation.
13 Situare is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with Situare; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
24 #ifndef FACEBOOKAUTHENTICATION_H
25 #define FACEBOOKAUTHENTICATION_H
35 * @brief FacebookAuthentication class takes care of Facebook login process. It creates
36 QWebView instance and tries to login with cookies using hidden browser.
37 If failed, then visible login browser dialog is invoked. Class also does parse the
40 * @author Ville Tiensuu
41 * @author Sami Rämö - sami.ramo (at) ixonos.com
43 class FacebookAuthentication : public QObject
51 * Initiates internal data members.
53 * @param mainWindow MainWindow instance
54 * @param parent Instance of the parent
56 FacebookAuthentication(MainWindow *mainWindow, QObject *parent = 0);
58 /*******************************************************************************
59 * MEMBER FUNCTIONS AND SLOTS
60 ******************************************************************************/
63 * @brief Initiate login process
65 * Builds login browser and starts loading login URL.
72 * @brief Clears account information from settings
74 * @param keepUsername keep = true, false otherwise
76 void clearAccountInformation(bool keepUsername = false);
80 * @brief Destroy login dialog and browser
85 * @brief Parses the session information from the URL
88 * @returns Parsed session, or empty string if parsing failed.
90 QString parseSession(const QUrl &url);
94 * @brief Cleanup after browser is destructed
96 * Clears the pointer to the browser and disables the progress indicator.
98 void browserDestroyed();
101 * @brief Handler for login page loading errors
103 * @param reply Network reply
105 void networkReplyHandler(QNetworkReply *reply);
108 * @brief Handler for browser URL changes
110 * Does check the new URL and based on that invokes the login dialog with visible browser view
111 * or parses the session from the new URL.
115 void urlChanged(const QUrl &url);
117 /*******************************************************************************
119 ******************************************************************************/
122 * @brief Signals error
124 * @param context error context
125 * @param error error code
127 void error(const int context, const int error);
130 * @brief Emitted when logged in successfully
132 * @param session Session data
134 void loggedIn(const QString session);
136 /*******************************************************************************
138 ******************************************************************************/
140 QWebView *m_browser; ///< Login browser
141 MainWindow *m_mainWindow; ///< MainWindow
144 #endif // FACEBOOKAUTHENTICATION_H