These are some of the flows followed inside the application.

Adding calendar (gcal_store_add_source)
  Sources are added defined by an URI, at least for now. I think there's
    been done on improving this, but for now, there and URI defining every
    source we're adding.

  - Check if the URI already existed
    (here will have to take into account relative and absolute URIs)
  - If it isn't new end processing.
  - Create the ECalClient, add it to the list.
  - Open the ECalClient (e_client_open)
  - Retrieve capabilities ? (ask IRC, what's this) //FIXME this wil be later implemented, when needed
  - Get Object list based on the existing query
  - Create ECalClientView using the existing query.
  - Hook to ECalClientView signals

Setting a view in the main window (MainWindow.set_view)
  This will work for setting a new view (the app hasn't instanced a view
    of that type yet), or for updating an old view with a new time lapse

  - Update GSettings key for keeping active-view-type
  - Create/Update the view with the active date from MainWindow._date
  - Retrieve new time range from view.
  - Update time range in MainWindow._store (a GcalStore)
  - Hook up to signals emitted from GcalStore to read new events
      from updated time range
  - Hook up to signals emitted from GcalStore to get events
      updates lively
  - Update MainWindow._view_type
