# Flows # 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 work 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`) * Create ECalClientView using the existing query. * Hook to ECalClientView signals * Retrieve capabilities ? (ask IRC, what's this) //FIXME this wil be later implemented, when needed * Get Object list based on the existing query ### Setting a view in the main window (`gcal_main_window_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 `GcalMainWindow.active_date` * Retrieve new time range from view. * Update time range in store (a `GcalStore`) * Hook up to signals emitted from GcalStore to read active events from updated time range * Hook up to signals emitted from GcalStore to get events updates lively * Update `GcalMainWindow.view_type`