25
25
#include <Accounts/Account>
27
#include "dbustypes.h"
27
32
class SyncEvolutionSessionProxy;
29
34
class SyncConfigure : public QObject
33
SyncConfigure(Accounts::Account *account,
38
SyncConfigure(SyncAccount *account,
39
const QSettings *settings,
35
40
QObject *parent = 0);
38
void configure(const QString &serviceName, const QString &syncMode);
39
void configureAll(const QString &syncMode);
40
QString serviceName() const;
43
Accounts::AccountId accountId() const;
47
static QString accountSessionName(Accounts::Account *account);
48
static QString normalizeDBName(const QString &name);
49
static QString formatSourceName(uint accountId, const QString &remoteId);
50
static void dumpMap(const QStringMultiMap &map);
51
static void dumpMap(const QStringMap &map);
52
static void removeAccountSourceConfig(Accounts::Account *account, const QString &sourceName);
53
static void removeAccountConfig(uint accountId);
56
void done(const QStringList &services);
57
void error(int error);
58
void sourceRemoved(const QString &sourceName);
47
void onSessionStatusChanged(const QString &newStatus);
48
void onSessionError(uint error);
61
void onRemoteSourcesAvailable(const QArrayOfDatabases &sources, int error);
51
Accounts::Account *m_account;
52
QMap<QString, SyncEvolutionSessionProxy*> m_sessions;
53
QSettings *m_settings;
54
QStringList m_services;
55
QString m_originalServiceName;
58
void continueConfigure();
59
void configureServices(const QString &syncMode);
60
void configureService(const QString &serviceName, const QString &syncMode);
61
void removeService(const QString &serviceName);
62
bool configTarget(const QString &targetName, const QString &serviceName);
63
bool configSync(const QString &targetName, const QString &serviceName, const QString &syncMode);
64
bool changeSyncMode(const QString &targetName, const QString &serviceName, const QString &syncMode);
64
SyncAccount *m_account;
65
QMap<QString, QArrayOfDatabases> m_remoteDatabasesByService;
66
QMap<SyncEvolutionSessionProxy*, QStringList> m_peers;
67
const QSettings *m_settings;
69
void fetchRemoteCalendars();
70
void fetchRemoteCalendarsFromSession(SyncEvolutionSessionProxy *session);
71
void configurePeer(const QStringList &services);
72
void continuePeerConfig(SyncEvolutionSessionProxy *session, const QStringList &services);
73
void checkSyncConfig(SyncEvolutionSessionProxy *session,
74
const QString &peerName,
75
const QString &serviceName,
76
const QString &localDbId);
77
bool createSyncConfig(SyncEvolutionSessionProxy *session, const QString &configName, const QString &peerName, const QString &serviceName, const QString &localDbId);
78
QString registerDatabase(SyncEvolutionSessionProxy *session, const QString &localDatabaseName, const QString &localDatabaseId);
80
static bool updateConfig(QStringMultiMap &config, const QString &source, const QString &key, const QString &value);
81
static bool removeConfigDir(const QString &dirPath);