Commit Graph
100 Commits
Author SHA1 Message Date
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
Georges Basile Stavracas Neto 4974e03216 event-widget: properly draw dnd icon
Instead of using a pixbuf and relying on the underlying GdkWindow,
simply perform a custom draw() over a manually created cairo context
and avoid nasty crashes.
2017-01-17 11:24:22 -02:00
Georges Basile Stavracas Neto 530aaa24c4 week-grid: implement drag n' drop 2017-01-17 11:24:22 -02:00
Georges Basile Stavracas Neto 096327e046 week-view: set the header's and grid's manager as well 2017-01-17 10:50:32 -02:00
Georges Basile Stavracas Neto 661d1d0926 Update POTFILES.in 2017-01-17 09:37:04 -02:00
Georges Basile Stavracas Neto 529acca239 week-grid: fix index sorting
This was causing conflicts on event overlapping calculation.
2017-01-09 18:25:55 -02:00
Georges Basile Stavracas Neto 30cb8a5020 week-header: improve rendering of selection 2016-12-15 17:32:27 -02:00
Georges Basile Stavracas Neto f013d7442e week-header: fix event margins 2016-12-15 17:09:45 -02:00
Georges Basile Stavracas Neto 9da0704e37 week-grid: set child widgets' orientation to vertical 2016-12-15 17:03:26 -02:00
Georges Basile Stavracas Neto 4074bee50e event-widget: implement GtkOrientable
So that we can control how much information, and how this
information is displayed, depending on the widget orientation.
2016-12-15 17:02:51 -02:00
Georges Basile Stavracas Neto 69ad53352d week-grid: remove unused vars 2016-12-15 17:01:20 -02:00
Georges Basile Stavracas Neto 33f1e4cd31 week-header: minor improvements on date selection 2016-12-14 17:18:48 -02:00
Georges Basile Stavracas Neto 84c411e505 week-grid: fix inversed selection on RTL languages 2016-12-14 17:11:37 -02:00
Georges Basile Stavracas Neto 1cab5278f1 style: smoother selection background 2016-12-14 17:11:11 -02:00
Georges Basile Stavracas Neto ffaf7153d7 week-header: implement event creation 2016-12-14 17:00:11 -02:00
Georges Basile Stavracas Neto 55d9232b0c quick-add-popover: fix creation of timed events
On week view, we want to create events that span 1 day, but with
different hours. The current code of Quick Add popover, however,
doesn't support that, as the only test case up to now was month
and year views - both not making use of timed events.

Fix that by adding the necessary comparisons, adapting the strings
and allowing events with the same date but different times.
2016-12-13 20:19:28 -02:00
Georges Basile Stavracas Neto ab3b80f3b9 event-widget: factor out clock format function
This function will be used by other pieces of code later. We also gain
a tiny performance improvement, as only one GSetting is ever created.
2016-12-13 20:17:28 -02:00
Georges Basile Stavracas Neto 9a07dad0e9 week-grid: minor fixups 2016-12-13 16:29:24 -02:00
Georges Basile Stavracas Neto e8906c9e04 week-view: smoothly scroll the grid when moving to today 2016-12-13 16:29:07 -02:00
Georges Basile Stavracas Neto f134da5a1d week-view: avoid segfault when scrolling when unmapped 2016-12-13 16:29:07 -02:00
Georges Basile Stavracas Neto 343283e37a week-grid: implement event creation 2016-12-13 16:29:07 -02:00
Georges Basile Stavracas Neto 112b82c179 utils: add utility to unref datetimes 2016-12-09 14:45:45 -02:00
Georges Basile Stavracas Neto 93acf26507 week-grid: properly position overlapping events
When two or more events overlap, the week grid almost
does the right thing and correctly calculates the width
of the events.

It fails, however, in calculating the position of the
events.

This commit introduces a simple yet efficient way to
position the events. It uses a temporary range tree to
efficiently store already positioned widgets, and checks
for their indexes looking for a hole to position the
new event.
2016-12-09 00:06:26 -02:00
Georges Basile Stavracas Neto bcfe13bcbc week-view: adapt view and widgets to handle RTL 2016-12-08 20:33:34 -02:00
Georges Basile Stavracas Neto 6d4f719829 week-header, week-grid: update drawing when time changes
When minutes change, the week grid should update the today strip
if it's visible and, if the day change, week header should update
the blue week name.
2016-12-08 19:33:20 -02:00
Georges Basile Stavracas Neto 23010afa1a window: fix today button sensitivitiness on week view 2016-12-08 19:20:45 -02:00
Georges Basile Stavracas Neto 7e53c433b7 week-view: center grid on date change 2016-12-08 19:14:03 -02:00
Georges Basile Stavracas Neto c1ab1c2d3b week-header, week-grid: remove duplicate code 2016-12-08 18:53:34 -02:00
Georges Basile Stavracas Neto 7a6ca3d711 week-view: simplify code 2016-12-08 18:34:06 -02:00
Georges Basile Stavracas Neto b8a297fdde week-header: small ui fix
Add 2px at the bottom so events don't overlap with the
bottom line.
2016-12-08 18:31:01 -02:00
Georges Basile Stavracas Neto 36f716ebf4 week-view: reimplement editing events 2016-12-08 18:23:25 -02:00
Georges Basile Stavracas Neto 5238e6ff9d week-header: don't rearrange events if week didn't change 2016-12-08 17:50:30 -02:00
Georges Basile Stavracas Neto f98a465612 week-header: don't set a minimum content height 2016-12-08 16:40:00 -02:00
Georges Basile Stavracas Neto f7658bede2 week-header: fix various issues with dates
When breaking and merging event widgets, the start
and end dates must be updated to reflect the current
widget state.
2016-12-08 16:39:02 -02:00
Georges Basile Stavracas Neto e474ac1902 week-header: redraw the whole background on draw() 2016-12-08 16:21:08 -02:00
Georges Basile Stavracas Neto 6e3b4a5f04 week-header: don't leak overflow labels when expanded 2016-12-08 16:20:10 -02:00
Georges Basile Stavracas Neto 21c9f721ae week-header: properly propagate height when expanded 2016-12-08 16:10:46 -02:00
Georges Basile Stavracas Neto 3f4715fd4a week-header: batch fix overflow management
It's getting close to be completely working.
2016-12-08 16:04:07 -02:00
Georges Basile Stavracas Neto 13906a3000 week-header: fix all-day events, add comments 2016-12-08 16:00:39 -02:00
Georges Basile Stavracas Neto 74ac2d83ee week-view: fix active and current date handling
The active date is the visible date, while the current date
is today. We shouldn't confuse those two.
2016-12-08 14:18:37 -02:00
Georges Basile Stavracas Neto 6fc89fb626 week-header: remove needless margin 2016-12-08 03:14:40 -02:00
Georges Basile Stavracas Neto e897f38eee week-header: simplify event addition 2016-12-08 03:09:35 -02:00
Georges Basile Stavracas Neto 7e68588cfb week-header: rework drawing model 2016-12-08 03:09:35 -02:00
Georges Basile Stavracas Neto f50a258f05 week-header: fix initial overflow check 2016-12-08 03:09:35 -02:00
Georges Basile Stavracas Neto 1c48d0a543 week-header: fix date handling 2016-12-08 03:09:35 -02:00
Georges Basile Stavracas Neto e5407d8c72 week-grid, week-header: special-case today when drawing
The week grid should display a horizontal strip on the today
column, and the week header should draw the week day labels
with a custom color.
2016-12-08 03:09:35 -02:00
Georges Basile Stavracas Neto 1c048fb538 week-grid, week-header: improve rendering of vertical lines 2016-12-07 22:56:10 -02:00
Georges Basile Stavracas Neto 336e584099 week-grid: implement event handling
This is the glorious commit where Week grid starts
showing and handing events.
2016-12-07 21:31:30 -02:00
Georges Basile Stavracas Neto 29ad51b19a project: introduce GcalRangeTree
In order to correctly implement the week grid, we must
have a fast and optimized data structure to handle date
intervals.

This commit introduces, then, GcalRangeTree. The range tree
is an augmented AVL tree designed to handle intervals (i.e.
ranges) rather than single-dimensional keys.

It is a very good struct since common operations like insert
and removal are O(log n). It also is optimized for the ranges
we work on, so the nodes only take up the absolutely minimum
space required.
2016-12-07 21:27:25 -02:00
Georges Basile Stavracas Neto c93d634454 week-view: add events to the grid when needed 2016-12-07 17:02:47 -02:00
Georges Basile Stavracas Neto 8a9a58419a week-grid: add stub add_event() and remove_event() 2016-12-07 17:02:14 -02:00
Georges Basile Stavracas Neto 54ff4eefc3 week-header: reimplement header expansion and collapsing 2016-12-03 01:40:10 -02:00
Georges Basile Stavracas Neto 4a7754c677 week-header: fix merging events 2016-12-03 00:04:06 -02:00