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.
34 * And it also receives credentials from Facebook. Other components of Situare application
35 * needs credentials to communicate with facebook.
37 * @author Ville Tiensuu
38 * @class FacebookAuthentication facebookauthentication.h "facebookauthentication.h"
40 class FacebookAuthentication : public QMainWindow
46 * @brief FacebookAuthentication constructor
48 * -Composes Loginpage from pieces of strings.
49 * -Checks if there is valid credentials stored on the file. If there is emits signal. If not it
51 * -Connects signal from m_webView to UpdateCredentials() method. With this feature it is
52 * verified that class tries always update credentials when web page changes.
53 * -Allocates memory for m_webView and m_mainlayout
55 * @param parent instance of parent
57 FacebookAuthentication(QWidget *parent = 0);
60 * @brief Releases allocated memory for m_webView and m_mainlayout
63 ~FacebookAuthentication();
66 * @brief Getter for m_loginCredentials
68 * @return FacebookCredentials
70 FacebookCredentials loginCredentials() const;
74 * @brief Shows the m_webView and loads page that is specified in the m_facebookLoginPage
75 * variable. Specifies font size for the page.
83 * @brief Appends given parts to returned string. Method is used to form facebook login page
86 * @param part1 first part of the formed string
87 * @param part2 second part of the formed string
88 * @param part3 third part of the formed string
89 * @param part4 fouth part of the formed string
90 * @param part5 fifth part of the formed string
91 * @param part6 sixth part of the formed string
92 * @param part7 sevents part of the formed string
94 QString formLoginPage(const QString & part1, const QString & part2, const QString & part3,
95 const QString & part4, const QString & part5, const QString & part6,
96 const QString & part7) const;
99 * @brief Reads previous stored credentials from file.
101 * @param credentialsFromFile This dataclass is the place where method stores credentials.
102 * Corrent parameter here is m_loginCredentials
104 void readCredentials(FacebookCredentials &credentialsFromFile);
107 * @brief Checks expiration time of credentials and compares it to current time.
109 * @param credentials this parameter represents credentials that will be verified.
110 * @return bool returns true if expiration time is after current time. in other cases returns
113 bool verifyCredentials(const FacebookCredentials &credentials) const;
116 * @brief Writes credentials to File
118 * @param credentials Contents of this dataclass is stored to file
120 void writeCredentials(const FacebookCredentials &credentials);
124 * @brief Search credentials from URL that is given as parameter.
125 * If credentials are found thay are stored to loginCredentials variable.
127 * @param url URL where this method tries to find credentials.
128 * @return bool if credentials are found returns true,
129 * if credentials are not found returns false.
131 bool updateCredentials(const QUrl & url);
136 * @brief This signal is emitted if updateCredentials method finds credentials from URL.
137 * Signal is also emitted at the beginning of the program if there is valid credentials
140 * @param credentials New credentials
142 void credentialsReady(const FacebookCredentials &credentials);
145 * @brief This signal is emitted if updateCredentials method can't find credentials from URL
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
161 * QStrings and setters and getters.
163 * @var m_loginCredentials
165 FacebookCredentials m_loginCredentials;
168 * @brief Lays out m_webView in window.
172 QHBoxLayout *m_mainlayout;
175 * @brief Shows facebook login page.
182 #endif // FACEBOOKAUTHENTICATION_H