Docs comments and fixes.
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
Some words about how do we work so far:
|
||||
# Some words about how do we work so far #
|
||||
|
||||
1. We load calendar sources from Online Accounts.
|
||||
(So we'll need a view for adding sources, since I refuse
|
||||
(So we'll need a view for adding sources, since I refuse
|
||||
to read some gconf key from evolution to load some others.
|
||||
Maybe that's will be the way eventually, but well)
|
||||
|
||||
2. Using sexp for getting objects between two dates:
|
||||
(occur-in-time-range? (make-time "20001116T230000Z") (make-time "20001217T230000Z") "America/New_York")
|
||||
(occur-in-time-range? (make-time "20001116T230000Z") (make-time "20001217T230000Z") "America/New_York")
|
||||
@@ -1,30 +0,0 @@
|
||||
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
|
||||
@@ -0,0 +1,32 @@
|
||||
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`)
|
||||
* 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 (`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`
|
||||
-108
@@ -1,108 +0,0 @@
|
||||
Rough description of some internals of Gnome Calendar Application
|
||||
|
||||
|
||||
+ mainToolbar object:
|
||||
|
||||
Has 3 states:
|
||||
1. Overview
|
||||
2. View Event
|
||||
3. Edit Event (this one could act as New Event View, or even as New anything view)
|
||||
|
||||
|
||||
+ GcalApplication
|
||||
|
||||
Has dconf-key attribute
|
||||
For keeping the last view and last day selected
|
||||
|
||||
Has command-line option
|
||||
For opening on the day specified
|
||||
|
||||
Has a GcalManager object
|
||||
For managingn source and events, and everything else
|
||||
|
||||
|
||||
+ GcalManager
|
||||
|
||||
Has a list of GcalStoreUnit,
|
||||
Containing:
|
||||
Esource, ECalClient,ECalClientView
|
||||
|
||||
Has a list of ESourceGroup
|
||||
|
||||
Has icaltimetype *initial_date, *final_date
|
||||
For defining a range to get events from
|
||||
Could have an active query representing the range (s-exp)
|
||||
|
||||
Has a list of Events in the active range (a list of ECalComponent)
|
||||
|
||||
Emit signals for:
|
||||
- objects-added (wrapping ECalClientView)
|
||||
- objects-removed (wrapping ECalClientView)
|
||||
- events-retrieved (for time range changing)
|
||||
|
||||
Has a GtkListStore with calendar/sources info.
|
||||
|
||||
+ GcalSource
|
||||
|
||||
Has a base_uri
|
||||
Has a relative uri
|
||||
Has a color
|
||||
|
||||
|
||||
+ GcalView
|
||||
|
||||
Has NavigationPane
|
||||
Has icaltimetype: selected_date attribute
|
||||
|
||||
Has child classes
|
||||
1. GcalDayView
|
||||
...
|
||||
|
||||
|
||||
+ GcalEvent
|
||||
|
||||
Has one source
|
||||
|
||||
|
||||
+ GcalMainWindow
|
||||
|
||||
Design
|
||||
|
||||
+- GtkClutter.Embed::ClutterBox(BoxLayout) ----------------------------------+
|
||||
| |
|
||||
| +- _body_actor::ClutterBox(BoxLayout) --------------------------------+ |
|
||||
| | | |
|
||||
| | +- _main_toolbar -----------------------------------------------+ | |
|
||||
| | | | | |
|
||||
| | +---------------------------------------------------------------+ | |
|
||||
| | +- _contents_actor::ClutterBox(BinLayout) ----------------------+ | |
|
||||
| | | | | |
|
||||
| | | +- _sources_actor ----------------------------------------+ | | |
|
||||
| | | | | | | |
|
||||
| | | +---------------------------------------------------------+ | | |
|
||||
| | | | | |
|
||||
| | | +- _notebook_actor ---------------------------------------+ | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | +---------------------------------------------------------+ | | |
|
||||
| | +---------------------------------------------------------------+ | |
|
||||
| | | |
|
||||
| +---------------------------------------------------------------------+ |
|
||||
+----------------------------------------------------------------------------+
|
||||
|
||||
Has an active_view attribute
|
||||
For keeping the type view is actually showing
|
||||
|
||||
Has views
|
||||
1. GcalDayView
|
||||
2. GcalWeekView
|
||||
3. GcalMonthView
|
||||
...
|
||||
|
||||
Has icaltimetype attribute
|
||||
For keeping actual date
|
||||
|
||||
Has set_view/update_view method
|
||||
For updating the view content by talking to GcalManager
|
||||
about events an dates of the view
|
||||
@@ -0,0 +1,102 @@
|
||||
# Internals #
|
||||
|
||||
Description of some internals of Gnome Calendar Application
|
||||
|
||||
* mainToolbar object:
|
||||
|
||||
Has 3 states:
|
||||
1. Overview
|
||||
2. View Event
|
||||
3. Edit Event (this one could act as New Event View,
|
||||
or even as New anything view)
|
||||
|
||||
* GcalApplication
|
||||
|
||||
* Has dconf-key attribute (To keep the last view and last day selected)
|
||||
|
||||
* Has command-line option (To open on a specified day)
|
||||
|
||||
* Has a GcalManager object (To manage source and events, and everything else)
|
||||
|
||||
* GcalManager
|
||||
|
||||
* Has a list of GcalStoreUnit containing:
|
||||
1. Esource, ECalClient,ECalClientView,
|
||||
2. `GHashTable<uid, ECalComponent>`
|
||||
(representing *active events* of the view)
|
||||
|
||||
* Has a list of ESourceGroup
|
||||
|
||||
* Has `icaltimetype *initial_date, *final_date;`
|
||||
For defining a range to get events from
|
||||
Could have an active query representing the range (s-exp)
|
||||
|
||||
* Has a list of Events in the active range (a list of ECalComponent)
|
||||
|
||||
* Emit signals for:
|
||||
1. objects-added (wrapping ECalClientView)
|
||||
2. objects-removed (wrapping ECalClientView)
|
||||
3. events-changed (for time range changing)
|
||||
This signal is emitted so the views knows they have to update the
|
||||
GcalEvent widgets they contain. E.g. when you disable/enable a Calendar in
|
||||
SourcesView widget.
|
||||
|
||||
* Has a GtkListStore with calendar/sources info.
|
||||
|
||||
* GcalView
|
||||
|
||||
* Has NavigationPane
|
||||
|
||||
* Has icaltimetype: `selected_date` attribute
|
||||
|
||||
* Has child classes
|
||||
1. GcalDayView
|
||||
|
||||
* GcalEvent
|
||||
|
||||
* Has one source
|
||||
|
||||
* GcalMainWindow
|
||||
|
||||
Design
|
||||
|
||||
<pre style="font-family: Mono;">
|
||||
+- GtkClutter.Embed::ClutterBox(BoxLayout) ----------------------------------+
|
||||
| |
|
||||
| +- _body_actor::ClutterBox(BoxLayout) --------------------------------+ |
|
||||
| | | |
|
||||
| | +- _main_toolbar -----------------------------------------------+ | |
|
||||
| | | | | |
|
||||
| | +---------------------------------------------------------------+ | |
|
||||
| | +- _contents_actor::ClutterBox(BinLayout) ----------------------+ | |
|
||||
| | | | | |
|
||||
| | | +- _sources_actor ----------------------------------------+ | | |
|
||||
| | | | | | | |
|
||||
| | | +---------------------------------------------------------+ | | |
|
||||
| | | | | |
|
||||
| | | +- _notebook_actor ---------------------------------------+ | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | +---------------------------------------------------------+ | | |
|
||||
| | +---------------------------------------------------------------+ | |
|
||||
| | | |
|
||||
| +---------------------------------------------------------------------+ |
|
||||
+----------------------------------------------------------------------------+
|
||||
</pre>
|
||||
|
||||
* Has an `active_view` attribute
|
||||
For keeping the type view is actually showing
|
||||
|
||||
* Has views
|
||||
1. GcalDayView
|
||||
2. GcalWeekView
|
||||
3. GcalMonthView
|
||||
...
|
||||
|
||||
* Has icaltimetype attribute
|
||||
For keeping actual date
|
||||
|
||||
* Has `set_view/update_view` method
|
||||
For updating the view content by talking to GcalManager
|
||||
about events and dates of the view
|
||||
Reference in New Issue
Block a user