6 #include "CloudSyncManager.h"
7 #include "BookmarkSyncManager.h"
8 #include "RouteSyncManager.h"
13 class Q_DECL_HIDDEN CloudSyncManager::Private {
28 CloudSyncManager::Status m_status_type;
30 RouteSyncManager* m_routeSyncManager;
31 BookmarkSyncManager* m_bookmarkSyncManager;
34 CloudSyncManager::Private::~Private()
36 delete m_routeSyncManager;
37 delete m_bookmarkSyncManager;
40 CloudSyncManager::Private::Private() :
41 m_workOffline( false ),
42 m_syncEnabled( false ),
43 m_owncloudProtocol(
"http" ),
48 m_status_type( CloudSyncManager::
Unknown),
49 m_routeSyncManager( nullptr ),
50 m_bookmarkSyncManager( nullptr )
54 CloudSyncManager::CloudSyncManager(
QObject *parent ) :
60 CloudSyncManager::~CloudSyncManager()
65 bool CloudSyncManager::workOffline()
const
67 return d->m_workOffline;
70 void CloudSyncManager::setWorkOffline(
bool offline )
72 if ( offline != d->m_workOffline ) {
73 d->m_workOffline = offline;
74 emit workOfflineChanged( d->m_workOffline );
78 bool CloudSyncManager::isSyncEnabled()
const
80 return d->m_syncEnabled;
83 QString CloudSyncManager::owncloudServer()
const
85 return d->m_owncloudProtocol + d->m_ownloudServer;
88 QString CloudSyncManager::owncloudUsername()
const
90 return d->m_owncloudUsername;
93 QString CloudSyncManager::owncloudPassword()
const
95 return d->m_owncloudPassword;
98 void CloudSyncManager::setSyncEnabled(
bool enabled )
100 if ( d->m_syncEnabled != enabled ) {
101 d->m_syncEnabled = enabled;
102 emit syncEnabledChanged( d->m_syncEnabled );
106 void CloudSyncManager::setOwncloudCredentials(
const QString &server,
const QString &user,
const QString &password )
108 QUrl const oldApiUrl = apiUrl();
109 blockSignals(
true );
110 setOwncloudServer( server );
111 setOwncloudUsername( user );
112 setOwncloudPassword( password );
113 blockSignals(
false );
114 if ( oldApiUrl != apiUrl() ) {
115 emit apiUrlChanged( apiUrl() );
119 void CloudSyncManager::setOwncloudServer(
const QString &server )
121 QString const oldProtocol = d->m_owncloudProtocol;
122 QString const oldServer = d->m_ownloudServer;
125 d->m_owncloudProtocol =
"http://";
126 d->m_ownloudServer = server.
mid( 7 );
128 d->m_owncloudProtocol =
"https://";
129 d->m_ownloudServer = server.
mid ( 8 );
131 d->m_owncloudProtocol =
"http://";
132 d->m_ownloudServer = server;
135 if ( oldServer != d->m_ownloudServer ) {
136 emit owncloudServerChanged( owncloudServer() );
137 emit apiUrlChanged( apiUrl() );
138 }
else if ( oldProtocol != d->m_owncloudProtocol ) {
139 emit apiUrlChanged( apiUrl() );
143 void CloudSyncManager::setOwncloudUsername(
const QString &username )
145 if ( d->m_owncloudUsername != username ) {
146 d->m_owncloudUsername = username;
147 emit owncloudUsernameChanged( d->m_owncloudUsername );
148 emit apiUrlChanged( apiUrl() );
152 void CloudSyncManager::setOwncloudPassword(
const QString &password )
154 if ( d->m_owncloudPassword != password ) {
155 d->m_owncloudPassword = password;
156 emit owncloudPasswordChanged( d->m_owncloudPassword );
157 emit apiUrlChanged( apiUrl() );
161 void CloudSyncManager::setStatus(
const QString &
status, CloudSyncManager::Status status_type )
163 if( d->m_status !=
status && d->m_status_type != status_type) {
165 d->m_status_type = status_type;
166 emit statusChanged( d->m_status );
172 return d->m_status_type;
175 QString CloudSyncManager::statusDescription()
const
180 QString CloudSyncManager::apiPath()
const
182 return "index.php/apps/marble/api/v1";
185 QUrl CloudSyncManager::apiUrl()
const
188 .arg( d->m_owncloudProtocol )
189 .
arg( d->m_owncloudUsername ).
arg( d->m_owncloudPassword )
190 .
arg( d->m_ownloudServer ).
arg( apiPath() ) );
193 RouteSyncManager *CloudSyncManager::routeSyncManager()
195 if ( !d->m_routeSyncManager ) {
196 d->m_routeSyncManager =
new RouteSyncManager(
this );
199 return d->m_routeSyncManager;
202 BookmarkSyncManager *CloudSyncManager::bookmarkSyncManager()
204 if ( !d->m_bookmarkSyncManager ) {
205 d->m_bookmarkSyncManager =
new BookmarkSyncManager(
this );
208 return d->m_bookmarkSyncManager;
213 #include "moc_CloudSyncManager.cpp"