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
8 Situare is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 version 2 as published by the Free Software Foundation.
12 Situare is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with Situare; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
23 #ifndef FACEBOOKAUTHENTICATION_H
24 #define FACEBOOKAUTHENTICATION_H
30 #include "facebookcredentials.h"
33 * @brief FacebookAuthentication class takes care of transmitting username and password to facebook. And it also receives credentials from Facebook. Other components of Situare application needs credentials to communicate with facebook.
35 * @author Ville Tiensuu
36 * @class FacebookAuthentication facebookauthentication.h "facebookauthentication.h"
38 class FacebookAuthentication : public QMainWindow
44 * @brief FacebookAuthentication constructor
46 * -Composes Loginpage from pieces of strings.
47 * -Checks if there is valid credentials stored on the file. If there is emits signal. If not it calls start method.
48 * -Connects signal from m_webView to UpdateCredentials() method. With this feature it is verified that class tries always update credentials when web page changes.
49 * -Allocates memory for m_webView and m_mainlayout
51 * @fn FacebookAuthentication
54 FacebookAuthentication(QWidget *parent = 0);
57 * @brief Releases allocated memory for m_webView and m_mainlayout
60 ~FacebookAuthentication();
63 * @brief Getter for m_loginCredentials
66 * @return FacebookCredentials
68 FacebookCredentials loginCredentials() const;
72 * @brief shows the m_webView and loads page that is specified in the m_facebookLoginPage variable. Specifies font size for the page.
79 * @brief search credentials from URL that is given parameter. If credentials are found thay are stored to loginCredentials variable.
81 * @param url, URL where this method tries to find credentials.
82 * @return bool, if credentials are found return true, if credentials are not found return false.
84 bool updateCredentials(const QUrl & url);
89 * @brief this signal is emitted if user exits logging in by pressing X
95 * @brief this signal is emitted if updateCredentials method finds credentials from URL. signal is also emitted at the beginning of the program if there is valid credentials in the file.
98 void credentialsReady();
101 * @brief this signal is emitted if updateCredentials method can't find credentials from URL
109 * @brief Program cames to this method when user closes login screen by pressing X.
110 * method sends userExit() signal in this function
112 * @param event, without parameter programs does not come to this function when user exits by pressing X.
114 void closeEvent(QCloseEvent *event);
117 * @brief checks expiration time of credentials and compares it to current time.
119 * @param credentials, this parameter represents credentials that will be verified.
120 * @return bool, returns true if expiration time is after current time. in other cases returns false.
122 bool verifyCredentials(const FacebookCredentials &credentials) const;
125 * @brief Reads previous stored credentials from file.
127 * @param credentialsFromFile, This dataclass is the place where method stores credentials. Corrent parameter here is m_loginCredentials (private member of FacebookAuthentication class)
129 void readCredentials(FacebookCredentials &credentialsFromFile);
132 * @brief Writes credentials to File
134 * @param credentials, Contents of this dataclass is stored to file
136 void writeCredentials(const FacebookCredentials &credentials);
139 * @brief, shows facebook login page.
146 * @brief, lays out m_webView in window.
150 QHBoxLayout *m_mainlayout;
153 * @brief string that contantains URL of facebook loginpage.
155 * @var m_facebookLoginPage
157 QString m_facebookLoginPage;
160 * @brief Dataclass that contains authorization to use facebook. Dataclass is composed of five QStrings and setters and getters.
162 * @var m_loginCredentials
164 FacebookCredentials m_loginCredentials;
167 #endif // FACEBOOKAUTHENTICATION_H