Initial commit
CalDav Plugin for Buteo - Initial commit
2 Way Sync for caldav server is implemented
OAuth works only for Google server. Username/Password authentication works for other servers
Made OAuthHandler more generic to support OAuth & Password authentication
Renamed OAuthHandler to AuthHandler
Check for Method instead of mechanism.
Get scope of authentication from Account's property
Load only the required notebook
Fixes Crash when an unkown element is present in the reply
Add correct Relams
Do Cleanup on Account delete
Adding client / sync xml files
Adapting to OOPP arch
Changing profile settings name
[caldav] Change code to using Qt style

This commit just cleans up the code style of the plugin by:
 - removing unnecessary whitespace
 - ensuring brace usage and indentation consistency
 - changing header guards to match header file names
 - using Q_ macros (Q_FOREACH, Q_SIGNALS, Q_SLOTS)
 - changing value arguments to const refs where appropriate
[caldav] Allow different OAuth2 providers for authentication

Previously, only Google authentication was supported.
This commit changes the plugin so that it can also load the oauth2
keys for providers other than Google.
[caldav] Fix possible memory leak

If an error occurs while retrieving or decoding the stored key,
but memory for the stored key has already been allocated, the plugin
previously leaked that memory.

This commit checks the pointer and frees it if required.
[caldav] Load dates between a valid date range

Previously, the plugin did not load incidences into calendar memory
from storage during a valid date range.
This commit ensures that incidences between 6 months ago and 12 months
in the future are loaded into calendar memory from storage prior to
sync.
[caldav] Decrease the window of possible missed updates

Previously, the plugin added thirty seconds to the previously recorded
last syccessful sync time, and used that timestamp when determining
which changes had occurred since last sync.  This meant that there
existed a window of 30 seconds within which updates would be "lost"
and not detected during the sync process.

This commit reduces the window down to 2 seconds (selected to be long
enough to allow database commit fs syncs to complete, but short enough
to reduce the chance of missed updates by a very significant factor).
[caldav] Use UTC time specification where possible

This commit changes the plugin to use UTC time specification instead
of LocalZone time specification where applicable, in order to be
more interoperable with services which assume UTC.
[caldav] Re-use account manager where possible

Contructing an Accounts::Manager is expensive.  This commit ensures
that we re-use the one owned by the main client plugin class instance
where possible.
[caldav] Fix incorrect terminology usage

Previously, the plugin conflated the terms RemoteDatabasePath and
Scope, which leads to confusion.  This commit ensures that the remote
endpoint URI is called the RemoteDatabasePath and that OAuth2 scopes
are called scopes.
[caldav] Add rpm spec file

This commit adds an rpm spec to allow building the package.
It also supports building the plugin in either out-of-process mode
or in-process (legacy client library) mode, depending on a qmake
define.
[caldav] Fix sync profile name

Previously, the sync profile name did not match the xml description
filename.  This caused issues when attempting to use the profile
as a template for per-account sync profiles.
[caldav] Fix crashes in AuthHandler

This commit adds some pointer guards to AuthHandler, to avoid crashing
in the case where no auth/method or auth/mechanism keys exist in the
global service of the account.
[buteo-sync-plugin-caldav] Initial commit

Add a README file to describe the purpose of the plugin.