build: move docs out of source tree.
TODO file left as developer guide I plan to host the docs on a web apart, not decision on it yet, maybe a projects.gnome.org site.
This commit is contained in:
@@ -1,19 +0,0 @@
|
||||
# Some words about how do we work so far #
|
||||
|
||||
1. We load calendar sources from Online Accounts, and the default sources.
|
||||
(So we'll need a view for adding sources)
|
||||
|
||||
2. Using sexp for getting objects between two dates:
|
||||
(occur-in-time-range? (make-time "20001116T230000Z") (make-time "20001217T230000Z") "America/Havana")
|
||||
|
||||
3. We'll merge all the description from `e_cal_component_get_description_list`
|
||||
into one big description for an event. Actually the thing is for now we'll just handle E_CAL_COMPONENT_EVENT
|
||||
any other VType will cause unknown behavior
|
||||
|
||||
4. I've done a lot of simplication from what the API of e-d-s offers to how we
|
||||
show alarms of events. The code is marked with comments inside GcalManager.
|
||||
Among other stuff we'll show only reminders set before the event, and just
|
||||
before the start time of the event.
|
||||
|
||||
5. All-day events are those that fall under one of these conditions:
|
||||
- Both, start date and end date are marked with is_date, so doesn't have time specified
|
||||
-110
@@ -1,110 +0,0 @@
|
||||
GcalWindow
|
||||
|
||||
+- GtkGrid ------------------------------------------------------------------+
|
||||
| +- GdHeaderBar -------------------------------------------------------+ |
|
||||
| | | |
|
||||
| +---------------------------------------------------------------------+ |
|
||||
| +- GtkSearchBar ------------------------------------------------------+ |
|
||||
| | | |
|
||||
| +---------------------------------------------------------------------+ |
|
||||
| +- GcalNavBar -------------------------------------------------------+ |
|
||||
| | < > May 2013 | |
|
||||
| +---------------------------------------------------------------------+ |
|
||||
| +- GtkOverlay --------------------------------------------------------+ |
|
||||
| | +- GdStack (views) ---------------------------------------------+ | |
|
||||
| | | | | |
|
||||
| | +---------------------------------------------------------------+ | |
|
||||
| | | |
|
||||
| | +- GcalNewEvent (overlayed) ------------------------------------+ | |
|
||||
| | | | | |
|
||||
| | +---------------------------------------------------------------+ | |
|
||||
| +---------------------------------------------------------------------+ |
|
||||
+----------------------------------------------------------------------------+
|
||||
|
||||
Year View
|
||||
|
||||
+--------------------
|
||||
| header > padding.top
|
||||
|-l- - - - - - - - -
|
||||
| e |Year 2021
|
||||
|-f- - - - - - - - -
|
||||
| t | header > padding.bottom
|
||||
|----------------------------+-------
|
||||
| | top |
|
||||
|- - - - - - - |
|
||||
| l |January |
|
||||
| e |
|
||||
| f | |
|
||||
| t |
|
||||
| | |
|
||||
|
||||
Month View
|
||||
|
||||
+--------------------
|
||||
| header > padding.top
|
||||
|- - - - - - - - - -
|
||||
| |July, 2021
|
||||
|- - - - - - - - - -
|
||||
| l | header > bottom
|
||||
| e - - - - - - - -
|
||||
| f |Sun
|
||||
| t - - - - - - - -
|
||||
| | normal > top
|
||||
|----------------------------+-------
|
||||
| | top |
|
||||
|- - - - - - - |
|
||||
| l |1 |
|
||||
| e |
|
||||
| f | |
|
||||
| t |
|
||||
| | |
|
||||
|
||||
Week View
|
||||
|
||||
+--------------------
|
||||
| l | header_padding.top
|
||||
|- e - - - - -
|
||||
| f |July 13, 2021
|
||||
|- t - - - - -
|
||||
| header > bot| l |
|
||||
|- - - - e - - - -
|
||||
| | f |Sun
|
||||
|- - - - t - - - -
|
||||
| normal > top| |
|
||||
|- - - -+-----------------+
|
||||
| | |
|
||||
| | All-day event |
|
||||
| | |
|
||||
| | |
|
||||
|-------------------------------+
|
||||
| | top r | ^ |
|
||||
|- - -| i | | |
|
||||
| l |9 AM g | cell_height |
|
||||
| e | h | v |
|
||||
| f |--------+-----------------+
|
||||
| t | |
|
||||
| | | |
|
||||
|
||||
Notes: cell_height is equal to: padding.top + padding.bottom + 3*font_height
|
||||
|
||||
Week View Grid
|
||||
|
||||
+----------------+--------------------
|
||||
| Midnight |
|
||||
| |
|
||||
| +- - - - - - - - - - -
|
||||
| |
|
||||
| |
|
||||
+-------------------------------------
|
||||
| 1:00 AM |
|
||||
| |
|
||||
| +- - - - - - - - - - -
|
||||
| |
|
||||
| |
|
||||
+-------------------------------------
|
||||
| 2:00 AM |
|
||||
| |
|
||||
| +- - - - - - - - - -
|
||||
| |
|
||||
| |
|
||||
+-------------------------------------
|
||||
@@ -1,38 +0,0 @@
|
||||
# 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
|
||||
|
||||
* Create/Update the view with the selected_date
|
||||
* Retrieve new time range from view.
|
||||
* Update time range in store (a `GcalStore`)
|
||||
* Update `GcalMainWindow.view_type`
|
||||
|
||||
|
||||
### Starting the application ###
|
||||
|
||||
* Instantiate every view (here I'm doubt yet if I'll fill the view with it's children event widgets)
|
||||
* Set every view to the actual date (or the one got from the settings)
|
||||
* Set the last active view as active (got from the settings)
|
||||
@@ -1,73 +0,0 @@
|
||||
# Internals #
|
||||
|
||||
Description of some internals of Gnome Calendar Application
|
||||
|
||||
* mainToolbar object (GdHeaderBar type):
|
||||
|
||||
Has 2 states:
|
||||
1. Overview
|
||||
2. Search
|
||||
|
||||
* 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
|
||||
|
||||
* 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 current date
|
||||
|
||||
* Has `set_view/update_view` method
|
||||
For updating the view content by talking to GcalManager
|
||||
about events and dates of the view
|
||||
@@ -1,6 +0,0 @@
|
||||
EXTRA_DIST = \
|
||||
Assumptions \
|
||||
Drawing \
|
||||
Flows \
|
||||
Views \
|
||||
Internals
|
||||
@@ -1,18 +0,0 @@
|
||||
### Views ###
|
||||
|
||||
Here, I'll place some notes about views
|
||||
|
||||
- For the creation of new events:
|
||||
Views will provide one date or two (a range), in both cases the event created from
|
||||
views are all day event, so the date passed by the views to GcalEventOverlay
|
||||
should be marked as is_date views
|
||||
|
||||
- For marking current unit:
|
||||
View will draw with selected_color the font of the current unit, so:
|
||||
December, 14, or the hour (in day view) will be drawn in a different color.
|
||||
View will provide a two pixels mark for the current unit in every view.
|
||||
So:
|
||||
week-view will mark the day of week of the current date, no matters
|
||||
which week we are seeing.
|
||||
month-view will mark the day of the month of the current date.
|
||||
year-view will mark as current unit the month we're living today.
|
||||
Reference in New Issue
Block a user