Second commit.
Adding actions.
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
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
|
||||
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")
|
||||
@@ -0,0 +1,30 @@
|
||||
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
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
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)
|
||||
|
||||
|
||||
+ Global
|
||||
|
||||
Has dconf-key attribute
|
||||
For keeping the last view and last day selected
|
||||
|
||||
Has GcalStore object
|
||||
For managingn source and events, and everything else
|
||||
|
||||
Has a SourceManager object
|
||||
|
||||
|
||||
+ SourceManager
|
||||
|
||||
It's the javascript counter part of GcalStore objects. It will handle adding
|
||||
sources to GcalStore.
|
||||
|
||||
|
||||
+ GcalStore
|
||||
|
||||
Has a list of GcalSToreUnit,
|
||||
Containing:
|
||||
Esource, ECalClient,ECalClientView
|
||||
|
||||
Has a list of ESourceGroup
|
||||
|
||||
Has GDate *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)
|
||||
|
||||
|
||||
+ GcalSource
|
||||
|
||||
Has a base_uri
|
||||
Has a relative uri
|
||||
Has a color
|
||||
|
||||
|
||||
+ GcalApplication
|
||||
|
||||
Has command-line option
|
||||
For opening on the day specified
|
||||
|
||||
|
||||
+ GcalView
|
||||
|
||||
Has NavigationPane
|
||||
Has GDate: selected_date attribute
|
||||
|
||||
Has child classes
|
||||
1. GcalDayView
|
||||
...
|
||||
|
||||
|
||||
+ GcalEvent
|
||||
|
||||
Has one source
|
||||
|
||||
|
||||
+ GcalMainWindow
|
||||
|
||||
Design
|
||||
|
||||
+- GtkClutter.Embed::ClutterBox(BoxLayout) ----------------------------------+
|
||||
| |
|
||||
| +- _bodyContainer::ClutterBox(BoxLayout) -----------------------------+ |
|
||||
| | | |
|
||||
| | +- _mainToolbar ------------------------------------------------+ | |
|
||||
| | | | | |
|
||||
| | +---------------------------------------------------------------+ | |
|
||||
| | +- _contentsContainer::ClutterBox(BinLayout) -------------------+ | |
|
||||
| | | | | |
|
||||
| | | +- _sourcesView ------------------------------------------+ | | |
|
||||
| | | | | | | |
|
||||
| | | +---------------------------------------------------------+ | | |
|
||||
| | | | | |
|
||||
| | | +- _notebookActor ----------------------------------------+ | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | | | | | |
|
||||
| | | +---------------------------------------------------------+ | | |
|
||||
| | +---------------------------------------------------------------+ | |
|
||||
| | | |
|
||||
| +---------------------------------------------------------------------+ |
|
||||
+----------------------------------------------------------------------------+
|
||||
|
||||
Has an active_view attribute
|
||||
For keeping the type view is actually showing
|
||||
|
||||
Has views
|
||||
1. GcalDayView
|
||||
2. GcalWeekView
|
||||
3. GcalMonthView
|
||||
...
|
||||
|
||||
Has GDate attribute
|
||||
For keeping actual date
|
||||
|
||||
Has set_view/update_view method
|
||||
For updating the view content by talking to GcalStore
|
||||
about events an dates of the view
|
||||
@@ -0,0 +1,4 @@
|
||||
EXTRA_DIST= \
|
||||
Assumptions \
|
||||
Flows \
|
||||
Internals
|
||||
Reference in New Issue
Block a user