• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • lib
  • marble
  • cloudsync
CloudSyncManager.cpp
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2013 Utku Aydın <utkuaydin34@gmail.com>
9 //
10 
11 #include "CloudSyncManager.h"
12 #include "BookmarkSyncManager.h"
13 #include "RouteSyncManager.h"
14 
15 namespace Marble
16 {
17 
18 class CloudSyncManager::Private {
19 
20 public:
21  Private();
22  ~Private();
23 
24  bool m_workOffline;
25 
26  bool m_syncEnabled;
27 
28  QString m_owncloudProtocol;
29  QString m_ownloudServer;
30  QString m_owncloudUsername;
31  QString m_owncloudPassword;
32  QString m_status;
33  CloudSyncManager::Status m_status_type;
34 
35  RouteSyncManager* m_routeSyncManager;
36  BookmarkSyncManager* m_bookmarkSyncManager;
37 };
38 
39 CloudSyncManager::Private::~Private()
40 {
41  delete m_routeSyncManager;
42  delete m_bookmarkSyncManager;
43 }
44 
45 CloudSyncManager::Private::Private() :
46  m_workOffline( false ),
47  m_syncEnabled( false ),
48  m_owncloudProtocol( "http" ),
49  m_ownloudServer(),
50  m_owncloudUsername(),
51  m_owncloudPassword(),
52  m_status(),
53  m_status_type( CloudSyncManager::Unknown),
54  m_routeSyncManager( 0 ),
55  m_bookmarkSyncManager( 0 )
56 {
57 }
58 
59 CloudSyncManager::CloudSyncManager( QObject *parent ) :
60  QObject( parent ),
61  d( new Private )
62 {
63 }
64 
65 CloudSyncManager::~CloudSyncManager()
66 {
67  delete d;
68 }
69 
70 bool CloudSyncManager::workOffline() const
71 {
72  return d->m_workOffline;
73 }
74 
75 void CloudSyncManager::setWorkOffline( bool offline )
76 {
77  if ( offline != d->m_workOffline ) {
78  d->m_workOffline = offline;
79  emit workOfflineChanged( d->m_workOffline );
80  }
81 }
82 
83 bool CloudSyncManager::isSyncEnabled() const
84 {
85  return d->m_syncEnabled;
86 }
87 
88 QString CloudSyncManager::owncloudServer() const
89 {
90  return d->m_owncloudProtocol + d->m_ownloudServer;
91 }
92 
93 QString CloudSyncManager::owncloudUsername() const
94 {
95  return d->m_owncloudUsername;
96 }
97 
98 QString CloudSyncManager::owncloudPassword() const
99 {
100  return d->m_owncloudPassword;
101 }
102 
103 void CloudSyncManager::setSyncEnabled( bool enabled )
104 {
105  if ( d->m_syncEnabled != enabled ) {
106  d->m_syncEnabled = enabled;
107  emit syncEnabledChanged( d->m_syncEnabled );
108  }
109 }
110 
111 void CloudSyncManager::setOwncloudCredentials( const QString &server, const QString &user, const QString &password )
112 {
113  QUrl const oldApiUrl = apiUrl();
114  blockSignals( true );
115  setOwncloudServer( server );
116  setOwncloudUsername( user );
117  setOwncloudPassword( password );
118  blockSignals( false );
119  if ( oldApiUrl != apiUrl() ) {
120  emit apiUrlChanged( apiUrl() );
121  }
122 }
123 
124 void CloudSyncManager::setOwncloudServer( const QString &server )
125 {
126  QString const oldProtocol = d->m_owncloudProtocol;
127  QString const oldServer = d->m_ownloudServer;
128 
129  if ( server.startsWith( "http://" ) ) {
130  d->m_owncloudProtocol = "http://";
131  d->m_ownloudServer = server.mid( 7 );
132  } else if ( server.startsWith( "https://" ) ) {
133  d->m_owncloudProtocol = "https://";
134  d->m_ownloudServer = server.mid ( 8 );
135  } else {
136  d->m_owncloudProtocol = "http://";
137  d->m_ownloudServer = server;
138  }
139 
140  if ( oldServer != d->m_ownloudServer ) {
141  emit owncloudServerChanged( owncloudServer() );
142  emit apiUrlChanged( apiUrl() );
143  } else if ( oldProtocol != d->m_owncloudProtocol ) {
144  emit apiUrlChanged( apiUrl() );
145  }
146 }
147 
148 void CloudSyncManager::setOwncloudUsername( const QString &username )
149 {
150  if ( d->m_owncloudUsername != username ) {
151  d->m_owncloudUsername = username;
152  emit owncloudUsernameChanged( d->m_owncloudUsername );
153  emit apiUrlChanged( apiUrl() );
154  }
155 }
156 
157 void CloudSyncManager::setOwncloudPassword( const QString &password )
158 {
159  if ( d->m_owncloudPassword != password ) {
160  d->m_owncloudPassword = password;
161  emit owncloudPasswordChanged( d->m_owncloudPassword );
162  emit apiUrlChanged( apiUrl() );
163  }
164 }
165 
166 void CloudSyncManager::setStatus( const QString &status, CloudSyncManager::Status status_type )
167 {
168  if( d->m_status != status && d->m_status_type != status_type) {
169  d->m_status = status;
170  d->m_status_type = status_type;
171  emit statusChanged( d->m_status );
172  }
173 }
174 
175 CloudSyncManager::Status CloudSyncManager::status() const
176 {
177  return d->m_status_type;
178 }
179 
180 QString CloudSyncManager::statusDescription() const
181 {
182  return d->m_status;
183 }
184 
185 QString CloudSyncManager::apiPath() const
186 {
187  return "index.php/apps/marble/api/v1";
188 }
189 
190 QUrl CloudSyncManager::apiUrl() const
191 {
192  return QUrl( QString( "%0%1:%2@%3/%4" )
193  .arg( d->m_owncloudProtocol )
194  .arg( d->m_owncloudUsername ).arg( d->m_owncloudPassword )
195  .arg( d->m_ownloudServer ).arg( apiPath() ) );
196 }
197 
198 RouteSyncManager *CloudSyncManager::routeSyncManager()
199 {
200  if ( !d->m_routeSyncManager ) {
201  d->m_routeSyncManager = new RouteSyncManager( this );
202  }
203 
204  return d->m_routeSyncManager;
205 }
206 
207 BookmarkSyncManager *CloudSyncManager::bookmarkSyncManager()
208 {
209  if ( !d->m_bookmarkSyncManager ) {
210  d->m_bookmarkSyncManager = new BookmarkSyncManager( this );
211  }
212 
213  return d->m_bookmarkSyncManager;
214 }
215 
216 }
217 
218 #include "CloudSyncManager.moc"
Marble::CloudSyncManager::apiPath
QString apiPath() const
Returns API path as a QString.
Definition: CloudSyncManager.cpp:185
Marble::CloudSyncManager::setOwncloudCredentials
void setOwncloudCredentials(const QString &server, const QString &user, const QString &password)
Change owncloud server URL, username and password at once without emitting change signals like setOwn...
Definition: CloudSyncManager.cpp:111
Marble::CloudSyncManager::setWorkOffline
void setWorkOffline(bool offline)
Setter for offine mode.
Definition: CloudSyncManager.cpp:75
Marble::CloudSyncManager::setOwncloudUsername
void setOwncloudUsername(const QString &owncloudUsername)
Setter for ownCloud username.
Definition: CloudSyncManager.cpp:148
Marble::CloudSyncManager::owncloudServer
QString owncloudServer() const
Gets ownCloud server from settings.
Marble::CloudSyncManager::syncEnabledChanged
void syncEnabledChanged(bool enabled)
Marble::CloudSyncManager::workOfflineChanged
void workOfflineChanged(bool workOffline)
Marble::CloudSyncManager::routeSyncManager
RouteSyncManager * routeSyncManager()
Marble::CloudSyncManager::statusDescription
QString statusDescription() const
Definition: CloudSyncManager.cpp:180
Marble::CloudSyncManager::owncloudUsername
QString owncloudUsername() const
Gets ownCloud username from settings.
Marble::CloudSyncManager::~CloudSyncManager
~CloudSyncManager()
Definition: CloudSyncManager.cpp:65
Marble::CloudSyncManager::setStatus
void setStatus(const QString &status, CloudSyncManager::Status status_type)
Setter for authentication error.
Definition: CloudSyncManager.cpp:166
Marble::CloudSyncManager::bookmarkSyncManager
BookmarkSyncManager * bookmarkSyncManager()
QObject
QString::startsWith
bool startsWith(const QString &s, Qt::CaseSensitivity cs) const
RouteSyncManager.h
Marble::CloudSyncManager::isSyncEnabled
bool isSyncEnabled() const
Checks if the user enabled synchronization.
Definition: CloudSyncManager.cpp:83
QString
Marble::CloudSyncManager::apiUrl
QUrl apiUrl() const
Returns an API url ready for use.
Marble::CloudSyncManager::status
CloudSyncManager::Status status() const
Definition: CloudSyncManager.cpp:175
QObject::blockSignals
bool blockSignals(bool block)
QUrl
Marble::CloudSyncManager::owncloudPassword
QString owncloudPassword() const
Gets ownCloud password from settings.
Marble::CloudSyncManager::setSyncEnabled
void setSyncEnabled(bool enabled)
Setter for enabling/disabling synchronization.
Definition: CloudSyncManager.cpp:103
Marble::CloudSyncManager::owncloudPasswordChanged
void owncloudPasswordChanged(const QString &password)
Marble::CloudSyncManager::workOffline
bool workOffline() const
Getter for offine mode.
QString::mid
QString mid(int position, int n) const
Marble::CloudSyncManager::setOwncloudServer
void setOwncloudServer(const QString &owncloudServer)
Setter for ownCloud server.
Definition: CloudSyncManager.cpp:124
Marble::CloudSyncManager::setOwncloudPassword
void setOwncloudPassword(const QString &owncloudPassword)
Setter for ownCloud password.
Definition: CloudSyncManager.cpp:157
Marble::CloudSyncManager::statusChanged
void statusChanged(const QString &status)
Marble::CloudSyncManager::Status
Status
Status enumeration.
Definition: CloudSyncManager.h:46
Marble::CloudSyncManager::owncloudServerChanged
void owncloudServerChanged(const QString &server)
Marble::CloudSyncManager::apiUrlChanged
void apiUrlChanged(const QUrl &url)
Marble::CloudSyncManager::owncloudUsernameChanged
void owncloudUsernameChanged(const QString &username)
QString::arg
QString arg(qlonglong a, int fieldWidth, int base, const QChar &fillChar) const
CloudSyncManager.h
BookmarkSyncManager.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:38 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal