Commit Graph
100 Commits
Author SHA1 Message Date
Georges Basile Stavracas Neto f9454b6a8a event-widget: properly escape event description
When we escape first, then truncate, we might end up truncating at
the middle of a special character sequence, breaking the markup.

Fix that by escaping after truncating.
2017-05-08 21:26:21 -03:00
Georges Basile Stavracas Neto 817325da05 month-view: simplify code 2017-04-29 12:57:06 -03:00
Georges Basile Stavracas Neto 7dc5eb5bf5 week-grid, week-header: properly initialize datetimes
Since we use autoptr on those, we may end up falling in to
the early return and mistakenly unreferencing the not
initialized new date.
2017-04-29 12:57:06 -03:00
Georges Basile Stavracas Neto e2c40af9ff docs: update list of undocumented symbols 2017-04-29 10:47:25 -03:00
Georges Basile Stavracas Neto dac4f4cd50 project: cleanup gitignore 2017-04-29 10:47:25 -03:00
Georges Basile Stavracas Neto 45f11ed5c0 project: drop intltool usage 2017-04-29 10:47:25 -03:00
Georges Basile Stavracas Neto 0aaa58de0f Bump 3.25.1 release 2017-04-24 10:55:08 -03:00
Georges Basile Stavracas Neto b9c1a36256 project: update NEWS and appdata from gnome-3-24 2017-04-24 10:50:09 -03:00
Georges Basile Stavracas Neto 7d771830f1 edit-dialog: fix g_list_sort() usage 2017-04-24 10:03:28 -03:00
Georges Basile Stavracas Neto 9d91c11b52 year-view: simplify code
By storing the coordinates array in a local pointer,
we avoid 9 super slow full memory lookups. That matters
when we're inside the drawing function, trying to keep
60fps.
2017-04-19 16:48:51 -03:00
Georges Basile Stavracas Neto c5772f994e shell-search: don't crash 2017-04-19 16:46:19 -03:00
Georges Basile Stavracas Neto 141f8d87b8 window: attach update date timeout to window
So we can properly remove the timeout source whenever the
window is finalized.

https://bugzilla.gnome.org/show_bug.cgi?id=781431
2017-04-18 09:55:56 -03:00
Georges Basile Stavracas Neto dff41ebef5 event-widget: fix previous commit 2017-04-18 09:43:42 -03:00
Georges Basile Stavracas Neto 5b44a34407 event-widget: escape event location
https://bugzilla.gnome.org/show_bug.cgi?id=781434
2017-04-18 09:38:44 -03:00
Georges Basile Stavracas Neto 5396b946ad source-dialog: improve validation of remote calendars 2017-04-13 09:53:00 -03:00
Georges Basile Stavracas Neto fc074bcde3 source-dialog: improve URI handler
Now we have a more reliable way to detect whether
the passed URI is a file or a resource.

https://bugzilla.gnome.org/show_bug.cgi?id=780455
2017-04-13 09:17:52 -03:00
Georges Basile Stavracas Neto 78eb9a7435 window: add more shortcuts
Add the following new shortcuts:

 - Home: moves to today
 - PageUp: previous week/month/year
 - PageDn: next week/month/year

https://bugzilla.gnome.org/show_bug.cgi?id=740844
2017-04-13 07:32:21 -03:00
Georges Basile Stavracas Neto 1362762efe manager: fail when client unit isn't found
This is a temporary solution to avoid a crash that
some people are experiencing. More investigation is
required.

https://bugzilla.gnome.org/show_bug.cgi?id=781071
2017-04-13 07:08:35 -03:00
Georges Basile Stavracas Neto e26648a2c6 month-view: don't cancel selection on date change
https://bugzilla.gnome.org/show_bug.cgi?id=781244
2017-04-13 06:55:30 -03:00
Georges Basile Stavracas Neto 662373141b event-widget: correctly ellipsize descripton tooltip
https://bugzilla.gnome.org/show_bug.cgi?id=781185
2017-04-12 21:04:42 -03:00
Georges Basile Stavracas Neto aa5b963412 view: rework active-date
The current implementation is deficient in many ways, the
worst one being the it relying on GObject semi-synchronous
property emission.

This issue was exposed by the Week view code, where the active
date was updated, but delayed to reach the Week header and some
events were being added ~before~ the active date changed.

With this work, I was also able to figure out a bunch of code
that relied on this (i.e. luck) to work.
2017-04-12 20:51:23 -03:00
Georges Basile Stavracas Neto 2e84c00233 Merge branch 'wip/gbsneto/docs' 2017-04-12 15:17:37 -03:00
Georges Basile Stavracas Neto 7681b7a2da project: document classes 2017-04-12 15:17:17 -03:00
Georges Basile Stavracas Neto 57a2bf8983 week-grid, week-header: simplify code
We don't need to check whether the end date is NULL,
for GcalEvent always ensures that.
2017-04-12 15:12:03 -03:00
Georges Basile Stavracas Neto 89f142d79e week-grid: draw today indicator above events 2017-04-12 14:21:02 -03:00
Georges Basile Stavracas Neto 6c784d03c4 event-widget: escape summary and description 2017-04-11 10:38:29 -03:00
Georges Basile Stavracas Neto 8ad65d311b project: run gtkdocize before autoreconf 2017-04-08 20:59:51 -03:00
Georges Basile Stavracas Neto f9469f79ee doc: group sections 2017-04-08 20:59:51 -03:00
Georges Basile Stavracas Neto e3ef063e00 event: fix documentation 2017-04-08 20:59:51 -03:00
Georges Basile Stavracas Neto 014bcfddc5 doc: add skeleton documentation
This adds API documentation, generated at compile time.
2017-04-08 20:59:50 -03:00
Georges Basile Stavracas Neto b93fe11da8 view: cleanup unused code 2017-03-29 16:25:47 -03:00
Georges Basile Stavracas Neto 2f2867179d week-grid: fix event creation on RTL languages
On RTL languages, the calcs to detect the start and end
of the new event were wrong, leading to the weird behavior
it currently has.

Fix that by correctly calculating the start and end cells
on RTL languages.

https://bugzilla.gnome.org/show_bug.cgi?id=777429
2017-03-29 00:04:10 -03:00
Georges Basile Stavracas Neto 090a79100f project: update gitignore 2017-03-28 23:57:01 -03:00
Georges Basile Stavracas Neto 19b1563aab year-view: simplify code
The code in ECalDataModelSubscriber:component_changed() and
:component_removed() was actually duplicated, and we can
simplify the :component_changed() routine by simply removing
and readding the event.
2017-03-25 17:56:36 -03:00
Georges Basile Stavracas Neto 3bbd6b64e4 window: show quick add popover with a nice animation
Instead of plain show and hide it, let's add a smooth
animation.
2017-03-25 17:46:08 -03:00
Georges Basile Stavracas Neto a7d7726a35 year-view: optimize drawing
The current Year view drawing routine gathers events
every single time we draw the navigator. This is, to
the best case, slow to death. In fact, this is why
year view's navigator is so memory and processor
consuming.

To fix that, cache the added components and simply
query them at drawing time.
2017-03-25 11:22:22 -03:00
Georges Basile Stavracas Neto c2f3953dde week-header: don't attempt to add events incorrectly
One of the biggest issues of GNOME Calendar views right now
is that they rely on GObject property system to update the
active date. Even gcal_view_set_date() is just a wrapper
around GObject set.

Because GObject asynchronously updates the property by letting
the mainloop handle it, we can never be assured that all the
views had their views updated before updating the data model.

This patch temporarily adds sanity checks to GcalWeekHeader
to prevent making Calendar unusable, until we fix GcalView.
2017-03-24 22:21:24 -03:00
Georges Basile Stavracas Neto 2544773645 manager: use EDS selectable property to track disabled agendas
This way, we can keep GNOME Calendar and Evolution synchronized.
And we can save some code too.
2017-03-17 21:25:23 -03:00
Georges Basile Stavracas Neto 95e293beed project: update TODO 2017-03-17 21:09:33 -03:00
Georges Basile Stavracas Neto 82aa5fadb0 week-header: correctly check for updatable events
When comparing events' dates against week dates, we must
be careful to compare UTC with UTC. Otherwise, some events
will be left, specially at the first and last days.
2017-03-17 21:09:33 -03:00
Georges Basile Stavracas Neto f1b59d64d2 week-header: fix dnd at first column 2017-03-17 16:38:59 -03:00
Georges Basile Stavracas Neto 8b718ee0a0 week-view, week-header: instrument more functions 2017-03-17 16:38:28 -03:00
Georges Basile Stavracas Neto fa7f579592 window: correctly check today for week view 2017-03-17 16:11:42 -03:00
Georges Basile Stavracas Neto 002271ebb1 views: get rid of current date
We can easily track the current date with GDateTime API,
so we don't actually need the current date field.
2017-03-17 15:49:12 -03:00
Georges Basile Stavracas Neto 1dadd34409 week-view: instrument possibly crasher function 2017-03-17 15:06:02 -03:00
Georges Basile Stavracas Neto be137fca02 manager: unify completion flags
Instead of having a completion flag for GOA and calendars,
unify both of them and simplify some code.
2017-03-17 12:46:40 -03:00
Georges Basile Stavracas Neto 1d64b00df3 project: improve configure output 2017-03-17 12:46:40 -03:00
Georges Basile Stavracas Neto 339b49e7d5 views: cleanup code 2017-03-17 11:13:19 -03:00
Georges Basile Stavracas Neto 0d44471546 window: cleanup code 2017-03-17 10:51:37 -03:00
Georges Basile Stavracas Neto d1a24d8adb application: cleanup code 2017-03-17 10:35:56 -03:00
Georges Basile Stavracas Neto 219187d02c project: update gitignore 2017-03-17 10:19:03 -03:00
Georges Basile Stavracas Neto 0b07d7d27d manager: improve code
This is a big cleanup commit where I tried my best to
make GcalManager code more structured and readable. This
included both cosmetic and functional changes.
2017-03-17 10:14:25 -03:00
Georges Basile Stavracas Neto cf6cdfd2aa project: use cairo_surface_t when possible
We can avoid an entire roundtrip from surface > pixbuf > surface
if we simply pass the surface to GtkImage. We also save quite
a bunch of debug lines.
2017-03-17 10:14:25 -03:00
Georges Basile Stavracas Neto 478db350e3 project: intrument functions
Add the newly added macros to provide useful tracing
information.
2017-03-17 10:14:25 -03:00
Georges Basile Stavracas Neto 7b05abea90 debug: add debug macros 2017-03-17 10:14:25 -03:00
Georges Basile Stavracas Neto d5825bbd35 project: override log domains
This way, we can have more useful debug spils.
2017-03-17 10:14:25 -03:00
Georges Basile Stavracas Neto 5d980de797 log: add initial logging capabilities 2017-03-17 10:14:25 -03:00
Georges Basile Stavracas Neto 7fff90ded7 Bump 3.25.0 release
Let's start a new release cycle already.
2017-03-17 10:13:52 -03:00
Georges Basile Stavracas Neto 0b19d2b990 project: update release info 2017-03-16 21:39:09 -03:00
Georges Basile Stavracas Neto 0266202d40 week-header: continue fixing event positions 2017-03-15 09:50:51 -03:00
Georges Basile Stavracas Neto 669869cf3f week-header: fix calc of events' start and end positions
Another shot in this issue. Again.

https://bugzilla.gnome.org/show_bug.cgi?id=780051
2017-03-15 17:45:49 +05:30
Georges Basile Stavracas Neto d4ef9b22ca week-grid: consider daylight when calculating event position
There are some weird cases around the globe where the timezone
changes in the middle of the day. In GMT-8:00, for example, the
DST changes at 2:00 am. This makes the timezone of thestart of
the week different from the event's timezone, and somehow the
GLib API doesn't take that into account when calculating the
diff between two dates.

Fix that by also considering different timezones when calculating
the event start and end positions.

https://bugzilla.gnome.org/show_bug.cgi?id=780079
2017-03-15 04:52:33 -07:00
Georges Basile Stavracas Neto 0b0dee101a quick-add-popover: only focus entry if popover is visible
Otherwise, we end up with a warning and many keybindings won't
work anymore.
2017-03-14 21:51:37 -03:00
Georges Basile Stavracas Neto 39d871d2ef week-grid: disconsider reported min-width for events
Sometimes, we'll need to ignore the reported minimum sizes
to be able to set the width of events to an acceptable
size. This is the case of the week grid.

https://bugzilla.gnome.org/show_bug.cgi?id=780052
2017-03-14 20:50:53 -03:00
Georges Basile Stavracas Neto f608f8fd9d week-header: don't account first weekday twice
The auxiliary functions to calculate the week start
already takes the first weekday into account. We,
however, were considering it again when calculating
the event position.

Fix that by only considering it once, through the
get_start_of_week() function.

https://bugzilla.gnome.org/show_bug.cgi?id=780051
2017-03-14 20:27:32 -03:00
Georges Basile Stavracas Neto 0dcf86b7c2 week-header: improve drag and drop
The rudimentary drag n' drop support should also deal
with the following corner cases:

           All Day
Multiday |   TRUE   |   FALSE    |
         |----------|------------|
    TRUE |   utc    | no changes |
   FALSE |   utc    |    utc     |

https://bugzilla.gnome.org/show_bug.cgi?id=777424
2017-03-14 20:19:28 -03:00
Georges Basile Stavracas Neto c33d820387 week-grid: use a proper function to queue redraw
Same as 97698ad1c9 for the Week grid.
2017-03-14 20:17:46 -03:00
Georges Basile Stavracas Neto 180621cd91 week-view: also check for realized
Be more strict about the checks, and avoid crashes.
2017-03-14 15:53:09 -03:00
Georges Basile Stavracas Neto 8102912541 window: set the correct date range for week view
Previous commits broke the week view's date range (more
than it was already broken). This patch fixes that by
using the correct method to get the week start.

https://bugzilla.gnome.org/show_bug.cgi?id=779967
2017-03-15 00:02:17 +05:30
Georges Basile Stavracas Neto 97698ad1c9 week-header: use a proper function to queue redraw
We were using gtk_widget_queue_draw() as a callback to
a GTimeoutSource, which expects a boolean return type.
This is clearly wrong, and has the chance to cause
a segmentation fault.

Fix that by passing a function with the apropriate signature.

https://bugzilla.gnome.org/show_bug.cgi?id=779823
2017-03-10 08:00:39 -03:00
Georges Basile Stavracas Neto 36cabc0aff Revert "edit-dialog: fix date span backward"
This reverts commit 1228f05a90.
2017-03-06 22:19:34 -03:00
Georges Basile Stavracas Neto e406f93239 event-widget: escape event summary
Now that we may set event markups, we have
to be careful to escape the event summary
and make sure that we always pass a valid
markup.
2017-03-06 21:56:11 -03:00
Georges Basile Stavracas Neto eb10c84811 window: fix warning 2017-03-05 20:36:41 -03:00
Georges Basile Stavracas Neto 31aa709487 week-header: fix placement of events
When the first weekday wasn't monday, we were
miscalculating the initial and final positions
of the widgets.

Fix that by properly calculating the initial and
final positions.
2017-03-05 20:32:33 -03:00
Georges Basile Stavracas Neto 0d27d36218 window: correctly subscribe the week view
The week view was being subscribed to the wrong dates,
because the window was miscalculating the start of week
on sundays.

Fix that by properly calculating the start of week offset.
2017-03-05 20:31:34 -03:00
Georges Basile Stavracas Neto 1d8993d450 window: use gcal_clear_datetime
We have our own macro to make the code a little bit
more pleasant to read, let's just use it.
2017-03-05 20:30:08 -03:00
Georges Basile Stavracas Neto 5b48fd528d Bump 3.23.91.1 release 2017-02-28 12:21:36 -03:00
Georges Basile Stavracas Neto 816f6410c3 project: add Isaque as a maintainer 2017-02-28 12:19:22 -03:00
Georges Basile Stavracas Neto a1e7ab7324 Bump 3.23.91 release 2017-02-28 08:43:51 -03:00
Georges Basile Stavracas Neto 4a65483164 project: update NEWS from other branches 2017-02-28 08:34:22 -03:00
Georges Basile Stavracas Neto ef46755f3c project: update TODO 2017-02-27 19:52:14 -03:00
Georges Basile Stavracas Neto e69c9aa09c week-header: fix untranslated strings 2017-02-27 08:46:52 -03:00
Georges Basile Stavracas Neto aa9b83a92e window: reset edit dialog's event on response
Currently, we keep the to-be-edited event of the Edit
dialog when it sends any response. However, this can
cause issues since we can edit the event, press Esc and
see that the event didn't change but Edit dialog keeps
the changes.

Fix that by always resetting the edited event to NULL
after a response.

https://bugzilla.gnome.org/show_bug.cgi?id=778644
2017-02-20 08:29:59 -03:00
Georges Basile Stavracas Neto 21dab73283 Bump 3.23.90 release 2017-02-14 18:25:22 -02:00
Georges Basile Stavracas Neto ce52cdd9ce week-header: fix double dnd highlight 2017-02-14 18:00:05 -02:00
Georges Basile Stavracas Neto 7cf41f8f45 month-view: fix warning on closing overflow popover 2017-02-14 18:00:05 -02:00
Georges Basile Stavracas Neto 006ee30495 Revert "application: don't remove providers from screen when finalizing"
This reverts commit 0ce04c0eeb.
2017-02-09 11:20:28 -02:00
Georges Basile Stavracas Neto 0ce04c0eeb application: don't remove providers from screen when finalizing
When finalizing the application, it is possible that the main window
had already been destroyed and the Gtk+ CSS machinery to stop working.
We currently try to remove the CSS providers from screen when finalizing,
which (i) has no effect, and (ii) causes a segfault.

Fix that by simply destroying the CSS providers, and not trying to
remove them on finalize.

https://bugzilla.gnome.org/show_bug.cgi?id=773871
2017-02-09 11:09:40 -02:00
Georges Basile Stavracas Neto 8f34049793 views: sync header labels' style
The Week view exposed a bug where we had different
CSS selectors for the exact same label. This made
them look inconsistent, with different colors and
paddings.

Fix that by ensuring they all use the same style
class. The Year view drawing code needed to be
reworked a little.

https://bugzilla.gnome.org/show_bug.cgi?id=778391
2017-02-09 10:28:28 -02:00
Georges Basile Stavracas Neto d63e007a7a week-grid, week-view: improve hour sidebar rendering
The hour strings are too soft and can barely be read. Fix
that by setting a stronger color.

https://bugzilla.gnome.org/show_bug.cgi?id=777420
2017-02-09 09:21:28 -02:00
Georges Basile Stavracas Neto 6c2653809b week-grid: simplify drawing function
This patch simplifies the drawing function by removing
the unused layout and font descriptions.

https://bugzilla.gnome.org/show_bug.cgi?id=777420
2017-02-09 09:21:28 -02:00
Georges Basile Stavracas Neto ba871e4004 theme: reduce vertical padding
This reduces each hour cell's height, and makes more of the
week grid visible at a glance.

https://bugzilla.gnome.org/show_bug.cgi?id=777767
2017-02-01 15:07:46 -02:00
Georges Basile Stavracas Neto cdc5bde96a week-grid: make sure events span at least 1 minute
When adding an event with the same start and end dates and
times, the event effectively spans 0 minutes, leading a division
by zero and causing varius UI glitches.

Fix that by making sure events span at least 1 minute.

https://bugzilla.gnome.org/show_bug.cgi?id=777414
2017-02-01 15:06:56 -02:00
Georges Basile Stavracas Neto e119d27718 week-grid: enforce a minimum width
https://bugzilla.gnome.org/show_bug.cgi?id=777414
2017-02-01 15:06:56 -02:00
Georges Basile Stavracas Neto e4555ea292 search-view: various fixes 2017-01-24 09:22:57 -02:00
Georges Basile Stavracas Neto 53f9158f25 search-view: only decrease search counter when something is removed
Because we were blindlessly decreasing the search hit counter without
considering that we could've not removed anything, the search hit
counter is going nuts.

Fix that by properly checking if something was removed, and only decrease
the search hit counter when that happens.
2017-01-24 08:59:00 -02:00
Georges Basile Stavracas Neto c573201b74 Update POTFILES.in 2017-01-17 11:29:36 -02:00
Georges Basile Stavracas Neto e74cfc0e22 project: move views to views/ folder 2017-01-17 11:28:48 -02:00
Georges Basile Stavracas Neto 1f3f275cd6 Merge branch 'wip/pandusonu/week-view' 2017-01-17 11:25:53 -02:00
Georges Basile Stavracas Neto 7a21e1e5ac week-header: implement drag n' drop 2017-01-17 11:24:22 -02:00