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