Success page added
[accounts-sso:libaccounts-ui.git] / lib / AccountsUI / add-account-page.h
1 /*
2  * This file is part of accounts-ui
3  *
4  * Copyright (C) 2009-2010 Nokia Corporation.
5  *
6  * Contact: Alberto Mardegan <alberto.mardegan@nokia.com>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * version 2.1 as published by the Free Software Foundation.
11  *
12  * This library is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20  * 02110-1301 USA
21  */
22
23 #ifndef ACCOUNTSUI_ADDACCOUNTPAGE_H
24 #define ACCOUNTSUI_ADDACCOUNTPAGE_H
25
26 //libAccountsUI
27 #include <AccountsUI/abstract-account-setup-context.h>
28 #include <AccountsUI/account-sync-handler.h>
29 #include <AccountsUI/common.h>
30
31 //M
32 #include <MApplicationPage>
33
34 namespace AccountsUI {
35
36 class AddAccountPagePrivate;
37 /*!
38  * @class AddAccountPage
39  * @headerfile AccountsUI/add-account-page.h AccountsUI/AddAccountPage
40  * @brief Main UI element for creation of new accounts.
41  *
42  * @details The AddAccountPage is the page that appears when the user wants to
43  * create a new account. It is created by the
44  * ProviderPluginProcess::mainPage() method, right before starting the
45  * execution of the MApplication.
46  */
47 class ACCOUNTSUI_EXPORT AddAccountPage : public MApplicationPage
48 {
49     Q_OBJECT
50
51 public:
52     /*!
53      * Class constructor.
54      */
55     explicit AddAccountPage(AccountsUI::AbstractAccountSetupContext *context,
56                             const QString &serviceType,
57                             QGraphicsItem *parent = 0);
58     virtual ~AddAccountPage();
59
60     /*!
61      * Create the page contents.
62      */
63     virtual void createContent();
64
65 private slots:
66     void navigateToServiceSelectionPage();
67     void clearServiceContextList();
68     void hideMenuBar();
69     void showMenuBar();
70     void onSyncStateChanged(const SyncState &state);
71     void onError(AccountsUI::ErrorCode, const QString &);
72
73 protected:
74     virtual void openServiceSelectionPage(AccountsUI::AbstractAccountSetupContext *context,
75                                      QList<AccountsUI::AbstractServiceSetupContext*>
76                                      &serviceContextList);
77
78 private:
79     AddAccountPagePrivate *d_ptr;
80     Q_DISABLE_COPY(AddAccountPage)
81     Q_DECLARE_PRIVATE(AddAccountPage)
82 };
83
84 } // namespace
85
86 #endif // ACCOUNTSUI_ADDACCOUNTPAGE_H