Commit Graph
100 Commits
Author SHA1 Message Date
Erick Pérez Castellanos eba5a341bb NEWS: updated for release 2014-12-23 12:01:43 -05:00
Erick Pérez Castellanos ef3b4f059f build: fix make distcheck 2014-12-23 12:01:42 -05:00
Erick Pérez Castellanos c4c2ae3517 build: autogen does not need git submodule mojo 2014-12-23 12:01:42 -05:00
Erick Pérez Castellanos 64a00b78b5 ignore: updated 2014-12-22 23:37:40 -05:00
Erick Pérez Castellanos 1b31d419d4 app: make DBus-activatable
This commit installs a service file, renames the desktop file
to follow the bus name, and adds the DBusActivatable key to the
desktop file, following
https://wiki.gnome.org/HowDoI/DBusApplicationLaunching

Updates POTFILE files accordingly
2014-12-22 23:34:29 -05:00
Erick Pérez Castellanos 43522b8845 build: update GLib required version
g_strv_contains is a new acquisition of Glib, so we need to bump the
dependency up.
2014-12-22 22:50:31 -05:00
Erick Pérez Castellanos 1b88c2fd89 build: remove mention to non-existent file
Fix make distcheck
2014-12-22 22:08:50 -05:00
Erick Pérez Castellanos 1de6a8b87a misc: whitespace and code style minor fixes 2014-12-22 21:56:38 -05:00
Erick Pérez Castellanos 0ff177c1d8 comments: document utils functions, add FIXME 2014-12-22 21:55:55 -05:00
Erick Pérez Castellanos 4eabc0223b build: remove unneeded code
GObject type system zeroing instance private data, so initialization to
NULL and FALSE is not needed.
Misc code styles fixes.
2014-12-22 21:52:35 -05:00
Erick Pérez Castellanos 8f8bb21534 event-widget: use custom class for background colors 2014-12-22 21:41:14 -05:00
Erick Pérez Castellanos 64f9e45c76 app: create custom provider for background colors
GcalEventWidgets get its background colors dynamically, so we are
creating a custom provider with a CSS class per calendar color, and
later on the proper class will be applied to the widget.
2014-12-22 21:37:24 -05:00
Erick Pérez Castellanos 442b26b5ea month-view: properly handle all-day events
Note: when the marking of break events is made, this have to be taken
into account.
2014-12-22 14:54:05 -05:00
Erick Pérez Castellanos 5a36689e07 event-widget: advertise properly multiday status
When an event is marked all day, the end-date is always one day ahead of
the true end of the event, and both dates are marked as date. We need to
take this into account.
2014-12-22 14:52:34 -05:00
Erick Pérez Castellanos 748b3f74c0 manager: fix gchar** memory allocation
I had totally forgot you need to end the array with NULL.
2014-12-22 14:36:18 -05:00
Erick Pérez Castellanos c00ae959d1 manager: chains ::constructed up 2014-12-22 13:10:25 -05:00
Erick Pérez Castellanos 3f093c5e13 month-view: fix drawing of overflow indicator
The drawing was happening but the clipping was not including the full
widget. Queuing a new draw expands the clip to the whole area of the widget.
2014-12-22 10:01:58 -05:00
Erick Pérez Castellanos 073719ef35 manager: get all connected sources
Added ::get_sources_connected API to retrieve a list of every source the
application has connected, no matter whether they are enabled or not.
Use ::get_sources_connected on calendars menu in GcalWindow to enable
disabled sources.
2014-12-22 08:38:20 -05:00
Erick Pérez Castellanos 761475e47b build: remove unusued code
Since we don't build treeview anymore using cell renderer, this code is
not needed.
2014-12-22 08:38:20 -05:00
Erick Pérez Castellanos 6081b9547c manager: emit ::source-activated on enabled sources
The ::source-activated signal has no much sense right now, I'm leaving
it around, for a while, in case some use case pop up. Otherwise in time,
it will go.
2014-12-22 08:38:20 -05:00
Erick Pérez Castellanos bfeef45983 manager: make ::get_sources retrieve only enabled sources 2014-12-22 08:38:20 -05:00
Erick Pérez Castellanos f0d35f60fb Revert "edit-dialog: update sources when their readonly state changes"
This reverts commit 31fa4e8e06.
2014-12-22 08:38:20 -05:00
Erick Pérez Castellanos c4de15eeef window: unmark disabled sources checkbox
Calendars selector menu needs to know which source is enable to properly
mark the checkbox
2014-12-22 08:38:20 -05:00
Erick Pérez Castellanos 5a00fddfb3 manager: use "disabled-sources" settings 2014-12-22 08:38:19 -05:00
Erick Pérez Castellanos 9af65c8f1f manager: hold a reference of the application's settings
We need to keep on the settings the list of the disabled sources
Moved code from ::init vfunc to ::constructed vfunc in order to wait for
construction properties to be set
2014-12-22 08:38:19 -05:00
Erick Pérez Castellanos c28e345b5b app: settings gained "disabled-sources" key
This key will keep a list of the uid of the sources marked as disabled
in the interface in order to keep the same state between runs of the application
2014-12-22 08:38:19 -05:00
Erick Pérez Castellanos a08a0a66c1 event-widget: remove unused CSS tag name
Since Gtk+ parses automatically widgets' name, there's no need of custom class
2014-12-22 08:38:19 -05:00
Erick Pérez Castellanos e2d4e52ec7 month-view: monitor click only on overflow indicator 2014-12-22 08:38:19 -05:00
Erick Pérez Castellanos 83bd285f3d window: use GcalView::create-event-detailed signal 2014-12-22 08:38:19 -05:00
Erick Pérez Castellanos c97473e955 month-view: emit ::create-event-detailed
Emit this signal from the "Add new event..." button of overflow popover,
the reason is mainly aesthetics since it won't look good showing one
popover after another.
2014-12-22 08:38:18 -05:00
Erick Pérez Castellanos 09f42ad955 gcal-view: signal the opening of edit-dialog directly 2014-12-22 08:38:18 -05:00
Erick Pérez Castellanos 0749520a35 edit-dialog: don't open with summary entry empty 2014-12-22 08:38:18 -05:00
Erick Pérez Castellanos 56f7f88572 month-view: fix insert ordered widgets
The head of the list might changed when ordering the list at insertion,
then, some events was getting lost
2014-12-22 08:38:18 -05:00
Erick Pérez Castellanos 4bef6148f9 month-view: sort single-day event widgets by start date
This guarantee that events widgets appear sorted by its start date on
the overflow popover
2014-12-20 09:10:00 -05:00
Erick Pérez Castellanos 420e66bdb1 event-widget: add ::compare_by_start_date
This function will eventually deprecate gcal_compare_event_widget_by_date()
2014-12-20 09:10:00 -05:00
Erick Pérez Castellanos f9627fcf98 month-view: show start time header on overflow popover 2014-12-20 09:10:00 -05:00
Erick Pérez Castellanos 9badd9f502 month-view: read 12/24 time format setting
The setting will be used when showing the start time of events in the
overflow popover.
2014-12-20 09:10:00 -05:00
Erick Pérez Castellanos 5051ba600f month-view: draw a background on the overflow indicator
This code suffer from a similar bug to ::queue_area on
::size_allocate. This need some revisiting to make it work properly.
2014-12-20 09:10:00 -05:00
Erick Pérez Castellanos 7a00364efb month-view: preserve hovered cell on popover show
The hovered cell is the indicator to draw the background and the
coloring of the overflow indicator. Preserve its value as long as the
overflow is shown.
2014-12-20 09:10:00 -05:00
Erick Pérez Castellanos d63d23bc16 month-view: add title to overflow popover 2014-12-20 09:10:00 -05:00
Erick Pérez Castellanos 96a939ab48 month-view: update note about Gtk+ clipping bug 2014-12-20 09:10:00 -05:00
Erick Pérez Castellanos bd62b96a75 month-view: FIXME removed, feature added 2014-12-20 09:10:00 -05:00
Erick Pérez Castellanos ca20726959 month-view: fix popover placement on RTL locales 2014-12-20 09:09:59 -05:00
Erick Pérez Castellanos 046dac4fe9 month-view: highlight overflow indicator on hover 2014-12-20 09:09:59 -05:00
Erick Pérez Castellanos 07b4ee4862 month-view: initial impl of overflow popover 2014-12-20 09:09:59 -05:00
Erick Pérez Castellanos e5f507b95a month-view: track events on overflow indicator area
We keep to state variables to handle hovering and clicking on the
indicator.
Note: This commit does not build because requires of upcoming work
2014-12-20 09:09:59 -05:00
Erick Pérez Castellanos 9bfa048101 month-view: add proper count of overflowed events
Keep a list of the hidden events per cell in order to add them later to
the popover
2014-12-20 09:09:59 -05:00
Erick Pérez Castellanos 06e43d836f month-view: amend fix ::forall impl 2014-12-19 10:40:39 -05:00
Erick Pérez Castellanos 2c639d2d00 month-view: queue draw on size_allocate
It should not be necessary to queue a draw operation after
::size_allocate. This has been discussed over with Gtk+ devs, as soon as
the bug is fixed these statements will goes away.
2014-12-18 22:21:18 -05:00
Erick Pérez Castellanos 780bebf871 month-view: optimize text direction query
By keeping the value of the direction factor k around we save code and
function calling every time we need to use it.
2014-12-18 19:58:13 -05:00
Erick Pérez Castellanos 232b93095d month-view: fix ::forall and ::remove impl
Take care of removing parts-widgets first whenever a master widgets is removed
2014-12-18 19:25:23 -05:00
Erick Pérez Castellanos 5b4e7d470d month-view: implement GcalView::get_by_uuid 2014-12-18 15:43:13 -05:00
Erick Pérez Castellanos 170501bbdd month-view: add helper method 2014-12-18 14:50:29 -05:00
Erick Pérez Castellanos ceabae5e2c month-view: rework handling of widget's hiding
Previously, we were hoping keeping a list of the widgets hidden by the
application, but the implementation did not work.
Now we keep a hash of those widgets hidden because of the overflow, when
a widget is not visible, and it's not in GcalMonthView::hidden_as_overflow
hash, then was hidden by the application.
2014-12-18 14:44:05 -05:00
Erick Pérez Castellanos 1f9b380238 month-view: overflow indicator drawn centered 2014-12-18 01:54:24 -05:00
Erick Pérez Castellanos fbeb6d35b2 month-view: initial implementation of size alloc
This implements breaking of events, and showing of its parts. It also
provides the information need for the drawing of the overflow indicator.
This implementation brings support to RTL locales as well as LTR.

There's some things still missing here:
1. Mark the widgets with CSS classes for styling its broken status
2. Draw properly the overflow indicator
2014-12-18 01:23:46 -05:00
Erick Pérez Castellanos 7f7739db6d month-view: add helper for hidden event-widgets
When an event is deleted we hide it while the notification with the Undo
option is shown and after a while the event is actually destroyed. This
helper is meant for keeping a set of the event-widgets hidden in that situation
2014-12-18 01:11:17 -05:00
Erick Pérez Castellanos 87856ec31c month-view: initial drawing of overflow indicator
Added FIXME for properly wording the message
2014-12-18 01:11:04 -05:00
Erick Pérez Castellanos 4c7626cad2 month-view: fix ::add, ::remove, ::forall vfuncs
Fixed some bugs:
1. Insert single-day event-widgets on the proper structure
(GcalMonthView::single_day_children)
2. Add FIXME for keep single-day events-widgets ordered
3. Properly handle hash table replacement. GHashTable::replace call
key_destroy_func() and value_destroy_func() if those are provided
4. Don't keep NULL lists on any of the hashes kept by GcalMonthView
5. Change the order in which forall is executed. Don't modify the hashes
while iterating over it.
2014-12-18 01:03:45 -05:00
Erick Pérez Castellanos 9c29618fb6 month-view: helper to calculate the split of widgets
This calculates the split according to the space left on each cell
2014-12-18 00:59:58 -05:00
Erick Pérez Castellanos 51c7e5e2ea event-widget: add convenient API to query dates
Simply it is faster not to allocate memory when there is no need of it
2014-12-18 00:56:46 -05:00
Erick Pérez Castellanos f5a08f24bb month-view: rework internals data structures
Changed internals data structures in order to handle allocation of
multidays events properly.
Modified GtkContainer::add, GtkContainer::remove and
GtkContainer::forall according to this new internal structure.
Commented out GcalView::get_by_uuid since it might get deprecated.
2014-12-16 10:06:09 -05:00
Erick Pérez Castellanos 719a294fae event-widget: add helper API
Added GcalEventWidget::is_multiday to check if an event span more than
one day.
Added GcalEventWidget::compare_by_length which compares two event
widgets according to the duration of the events they represent.
2014-12-16 10:06:09 -05:00
Erick Pérez Castellanos d1a7c6ee24 month-view: fix sigsegv if end_date is not created 2014-12-16 10:06:09 -05:00
Erick Pérez Castellanos 52a4e617b5 month-view: draw selected days marks 2014-12-16 10:06:09 -05:00
Erick Pérez Castellanos 70d69ac966 month-view: organize, clean code 2014-12-16 10:06:08 -05:00
Erick Pérez Castellanos 268ef17484 month-view: updated press/release/motions handlers
Now internal values of button press, motion and releases are kept
according the cell numbers alone, as explained in the comments.
2014-12-16 10:06:08 -05:00
Erick Pérez Castellanos aaee4a2657 month-view: initial work to new mockup from Lapo
There's a bunch of stuff missing here, but this code is already working.
This includes only part of the drawing code, I already take into account
here LTR and RTL languages.
Here month-view make use of classes for styling different regions of the
grid, there are:
1. header class, which is used for the font and color details of the
days naming on the top of the grid
2. current class, which is used for drawing the current day number and
its background
3. lines class: which set the color property of the lines in the grid
4. :selected pseudo-class is used for drawing the font on the days
marked when creating an event. This will work as well for keyboard
navigation

What's missing here:
1. properly update click/press marks to new model
2. draw border around the selected days
2014-12-16 10:06:08 -05:00
Erick Pérez Castellanos 60946551b3 event-widget: add ::clone API 2014-12-16 10:06:08 -05:00
Erick Pérez Castellanos 069ea90d57 manager: implement ::enable/disable methods 2014-12-15 13:38:42 -05:00
Erick Pérez Castellanos 9e42922543 manager: Keep references of the clients internally
In order to remove clients from the ECalDataModel without destroying we
need to keep a reference to it.
2014-12-15 13:38:37 -05:00
Erick Pérez Castellanos 2a6b9a31ce app: fix sigsegv when not getting a date from cli 2014-12-10 01:21:19 -05:00
Erick Pérez Castellanos e2a2721e9e window: add safety check 2014-12-09 15:37:02 -05:00
Erick Pérez Castellanos 83345b2fb4 app: gained --date option
GcalWindow loads the date from GcalApplication.
2014-12-09 15:36:01 -05:00
Erick Pérez Castellanos 738bb89d94 edit-dialog: fix memory leaks 2014-12-08 12:33:41 -05:00
Erick Pérez Castellanos e58959d851 e-cal-data-model: fix event with no end-date
Google Calendar set no end-date on events with 0 sec duration time. We
need to make the corner case work.
2014-12-08 11:33:44 -05:00
Erick Pérez Castellanos 98e4b44a7d manager: defer adding client to the internal hash
Wait until the client is opened and connected to add it to the internal
hash, so GcalManager::get_sources work properly.
2014-12-08 11:21:14 -05:00
Erick Pérez Castellanos e62f48bfea events: fix handling of event with no end date
Fix the sigsegv in edit-dialog and event-widgets when there's no
end-date set.
Set a guard in Utils::gcal_dup_icaltime function.
There's still some problems with the events showing the first time but
not anymore.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=736002
2014-12-08 11:21:14 -05:00
Erick Pérez Castellanos b5ff5437f6 manager: removed unneeded code, and comments 2014-12-05 22:40:15 -05:00
Erick Pérez Castellanos db71a1c1f6 window: adjust new-event popover position 2014-12-05 22:30:10 -05:00
Erick Pérez Castellanos 314f60e040 about: praise our artists properly
Add jimmac to artists list
2014-12-05 16:20:57 -05:00
Erick Pérez Castellanos fe7b1d942e app: use new icon 2014-12-05 16:20:16 -05:00
Erick Pérez Castellanos 2853e9a3b2 about: add Lapo to the design/art team 2014-12-05 08:17:30 -05:00
Erick Pérez Castellanos da19ffd6ab window: create edit-dialog at construct time
This isn't as dynamical as one was, so create it at construction will
work just fine, and we have the 'if's.
2014-12-05 08:17:30 -05:00
Erick Pérez Castellanos 532a4de02e event-widget: fixed typo on method name 2014-12-05 08:17:30 -05:00
Erick Pérez Castellanos 9188d37e53 manager: removed EVENT_CREATED signal
Since we are opening edit-dialog on event creation directly, we don't
need this notification anymore.
2014-12-05 08:17:30 -05:00
Erick Pérez Castellanos 1f614948a8 style: HACKING updated 2014-12-04 17:31:00 -05:00
Erick Pérez Castellanos 1916986f15 app: active More details button from new event popover
GcalWindow got connected to GcalManager, and pass just created component
to GcalEditDialog
GcalEditDialog gained support to handle component not committed to
manager singleton instance yet.
2014-12-04 17:10:56 -05:00
Erick Pérez Castellanos b36a390292 manager: updated GcalManager::create_event
Move the API to use ECalComponent instead of uids.
2014-12-04 17:10:56 -05:00
Erick Pérez Castellanos 78bced937e utils: add helper method for component construction 2014-12-04 17:10:56 -05:00
Erick Pérez Castellanos 1c277b99b3 window: connect signal to the right object
The ::remove_event handler was not connected to the GtkRevealer so it
was not executing itself when the notification was closed. That caused
the application never removed any events. Fixed now.
2014-12-04 17:10:55 -05:00
Erick Pérez Castellanos dc941b6a9d edit-dialog: use reccurrence_id of events
When generating the uuid of an event if the event is recurrent, you need
to take into account its rid.
2014-12-04 17:10:55 -05:00
Erick Pérez Castellanos 927233cabb build: remove GcalNewEventWidget related files 2014-12-04 17:10:55 -05:00
Erick Pérez Castellanos af3ce14ac2 app: remove GcalNewEventWidget, use GcalWindow ui
Since there will be no behavior on GcalNewEventWidget we can use simple
ui from GcalWindow to accomplish this.
2014-12-04 17:10:55 -05:00
Erick Pérez Castellanos 83eb99efba manager: update retrieve sources API
The move to newer API is to drop GtkListStore dependency on the manager.
2014-12-04 17:10:55 -05:00
Erick Pérez Castellanos 329118079d manager: update GcalManager::remove_event API
Move GcalManager::remove_event API to new style using ESource and
ECalComponent instead of uuid
Update GcalWindow uses of this API
2014-12-04 17:10:55 -05:00
Erick Pérez Castellanos 67732884bb utils: build an uuid string
Use an ESource and ECalComponent to build an uuid string with the format specified
2014-12-04 17:10:55 -05:00
Erick Pérez Castellanos e0ef2892fd window: fixed event removed notification
Moved all this code into ui file.
Removed public API of GcalWindow. In time, if needed by some other
object it can be brought back.
2014-12-04 17:10:55 -05:00
Erick Pérez Castellanos 52fc61a1a5 window: set view visible before show it
Since the move into using GtkBuilder's files the views aren't show
automatically. That's why the setting of the view initially was failing.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=741003
2014-12-04 17:10:54 -05:00
Erick Pérez Castellanos 947e23758c misc: whitespace, comments and strings fixed 2014-12-04 17:10:54 -05:00