Second commit.

Adding actions.
This commit is contained in:
Erick Pérez Castellanos
2012-04-26 01:32:37 -04:00
parent 07b6ee8887
commit ad87be3194
10 changed files with 401 additions and 55 deletions
+9
View File
@@ -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")
+30
View File
@@ -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
View File
@@ -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
+4
View File
@@ -0,0 +1,4 @@
EXTRA_DIST= \
Assumptions \
Flows \
Internals