Fixes: NB#284823 - Newly configured sharing accounts not displayed in share-ui for...
[meego-sharing-framework:webupload-engine.git] / libwebupload / src / systemprivate.h
1  
2 /*
3  * Web Upload Engine -- MeeGo social networking uploads
4  * Copyright (c) 2010-2011 Nokia Corporation and/or its subsidiary(-ies).
5  * Contact: Jukka Tiihonen <jukka.t.tiihonen@nokia.com>
6  *
7  * This program is free software; you can redistribute it and/or modify it
8  * under the terms and conditions of the GNU Lesser General Public License,
9  * version 2.1, as published by the Free Software Foundation.
10  *
11  * This program is distributed in the hope it will be useful, but WITHOUT ANY
12  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
14  * more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
19  */
20
21 #ifndef _WEBUPLOAD_SYSTEM_PRIVATE_H_
22 #define _WEBUPLOAD_SYSTEM_PRIVATE_H_
23
24 #include "WebUpload/System"
25 #include <Accounts/Manager>
26 #include <QObject>
27 #include <QString>
28 #include <QSharedPointer>
29 #include <QWeakPointer>
30
31 namespace WebUpload {
32
33     class SystemPrivate : public QObject {
34     
35         Q_OBJECT
36     
37     public:
38     
39         /*!
40           \brief Constructor
41           \param parent Public object
42          */
43         SystemPrivate (System * parent = 0);
44         
45         virtual ~SystemPrivate();
46         
47         /*!
48           \brief Will use Accounts' manager and load all accounts
49           \param serviceType Filtering type
50           \param includeCustomUI If accounts with custom UI services should be
51                                  included to list.
52          */
53         QList <QSharedPointer<Account> > loadAccounts (
54             const QString & serviceType = QLatin1String("sharing"),
55             bool includeCustomUI = false);
56         
57         /*!
58           \brief Connect and disconnect signals
59           \param on If true connect, if false disconnect
60          */
61         void enableAccountListener (bool on);
62         
63         //! Static variable for presentation data loading
64         static bool m_loadPresentationData;
65         
66         //! Static variable for metatype registering
67         static bool m_metatypesRegistered;
68
69         //! Shared accounts manager instance
70         static QWeakPointer<Accounts::Manager> s_accountsManager;
71
72         //! Accounts manager instance
73         QSharedPointer<Accounts::Manager> m_accountsManager;
74
75         System * publicObject; //!< Public object                
76     
77         QString serviceDefinitionsPath; //!< Filepath to definitions
78         QString entryOutboxPath; //!< Filepath to outbox
79         QString m_pluginProcessPath; //!< Filepath to plugins
80
81         //!< If true account events are followed
82         bool accountsListenerEnabled;
83         
84     public Q_SLOTS:
85         
86         /*!
87           \brief Slot for Accounts account created signal
88          */
89         void accountsAccountCreated (Accounts::AccountId id);
90         
91     Q_SIGNALS:
92     
93         /*!
94           \brief Signal emitted when account is created and loaded
95          */
96         void newAccount (QSharedPointer<WebUpload::Account> account);
97     };
98 }
99
100 #endif