Georges Basile Stavracas Neto
62749c165a
40.0
2021-03-22 15:54:41 -03:00
Georges Basile Stavracas Neto
9a636f33e5
tests: Disable unauthorized test again
...
Needs more love.
Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/700
2021-03-22 15:54:41 -03:00
Georges Basile Stavracas Neto
c37a9ef9ff
Post-release version bump
2021-03-12 11:13:08 -03:00
Georges Basile Stavracas Neto
2465b9e7be
40.rc
2021-03-12 11:06:59 -03:00
Georges Basile Stavracas Neto
46c225e07c
build: Bump GLib dependency
...
We depend on a newer version now.
2021-03-12 11:06:07 -03:00
Georges Basile Stavracas Neto
d38c1f2f41
tests: Enable unauthorized discovery test
...
This one is actually implemented, what's not implemented is the WebDAV one.
2021-03-12 11:03:26 -03:00
Georges Basile Stavracas Neto
d1a0dbd8f5
event: Switch to g_time_zone_new_identifier()
...
And add the relevant NULL checks here.
2021-02-26 19:26:49 -03:00
Georges Basile Stavracas Neto
27c6d2c017
time-zone-monitor: Switch to g_time_zone_new_identifier()
...
We don't even need to check for NULL here because if the system timezone
is invalid, we're too screwed to have a fallback path anyway.
2021-02-26 19:26:49 -03:00
Georges Basile Stavracas Neto
64fe7e543c
utils/date-time-utils: Use g_time_zone_new_identifier()
...
g_time_zone_new() is deprecated in favor of it, so use it.
2021-02-26 19:26:49 -03:00
Georges Basile Stavracas Neto
9800fbec4b
utils/date-time-utils: Trivial style cleanup
2021-02-26 19:26:49 -03:00
Georges Basile Stavracas Neto
97d127c9db
Post-release version bump
2021-02-26 19:26:49 -03:00
Georges Basile Stavracas Neto
232d7e725e
40.beta
2021-02-14 13:53:18 -03:00
Georges Basile Stavracas Neto
efe60e10d1
notes-section: Remove scrolled window
...
The entire dialog is wrapped under a scrolled window, it
doesn't make much sense to have yet another one for the
notes. This is a relif of times when the edit dialog didn't
have a scrolled window.
Remove the scrolled window of the notes section.
2020-11-10 15:00:59 +00:00
Georges Basile Stavracas Neto
7a5580980b
summary-section: Use expandable entries
...
Now the entry grows as much as possible to accomodate the
text.
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/153
2020-11-10 15:00:59 +00:00
Georges Basile Stavracas Neto
b4fedbbba5
Introduce GcalExpandableEntry
...
This is simply a copy-past of GNOME To Do's GtdExpandableEntry.
2020-11-10 15:00:59 +00:00
Georges Basile Stavracas Neto
d41af9f8a0
summary-section: Set max-width-char on entries
...
We want them to grow a bit more, and not let the expansion
of the title label detemine the width. Allow the location
and title entries to expand, and set a maximum width char
to 30 on them.
See https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/554
2020-11-10 15:00:59 +00:00
Georges Basile Stavracas Neto
a146b9050d
project: Silence CI warnings
2020-10-31 16:55:06 -03:00
Georges Basile Stavracas Neto
06f0c4d011
schedule-section: Make date & time labels dim
...
They should have been dim labels since the beginning, this was an
oversight.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto
b481b40381
schedule-section: Mark date & time labels as action children
...
Otherwise they appear inside the expanded section, and not outside like
we wanted. This was a regression from the libhandy 1.0 port.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto
b725d25b86
schedule-section: Remove useless labels
...
They're placeholders, and always overriden. Remove them.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto
968ae16e08
window: Use leaf type for GcalEventEditorDialog
...
We're casting either way, to at least let's cast to something
that requires fewer characters.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto
4c24103bae
event-editor-dialog: Make 'event' property read-only
...
It is not meant to be set externally.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto
b0cdca78b1
event-editor-dialog: Unify set_event and set_event_is_new
...
The split is annoying, and a relic of time.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto
7e10c6d451
event-editor-dialog: Stop using response type
...
Using dialog responses to communicate intent to GcalWindow was always
a hack, and as the code is cleaned, it's getting increasingly annoying.
Replace this with a proper 'remove-event' signal ('delete-event' would
conflict with the equally named GTK signal), remove the custom response
types, and cleanup the code.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto
1480d7ac70
event-editor-dialog: Code cleanup
...
Use g_autofoo when possible; avoid allocating new strings when fetching
from GVariant; sort and reorder fields.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto
c098dc7aa7
event-editor-dialog: Store sections in an array
...
It allows us to simplify some boring copy-pasted code.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto
3a9f9009a4
event-editor-dialog: Remove dead code
...
These weren't being used anywhere.
2020-10-31 16:15:54 -03:00
Georges Basile Stavracas Neto
0f1dc88030
event-editor-dialog: Move notes to GcalNotesSection
2020-10-31 16:15:49 -03:00
Georges Basile Stavracas Neto
73cbe1f39c
event-editor-dialog: Move summary to GcalSummarySection
2020-10-31 13:30:56 -03:00
Georges Basile Stavracas Neto
46aee00f65
event-editor-dialog: More schedule to GcalScheduleSection
2020-10-31 13:30:56 -03:00
Georges Basile Stavracas Neto
997f6bb671
event-editor-dialog: Move reminders to GcalRemindersSection
...
Move all widgetry, logic, and setup to GcalReminderSection.
2020-10-31 13:30:56 -03:00
Georges Basile Stavracas Neto
a839a0d860
Introduce GcalEventEditorSection
...
This is the interface to represent sections of the event editor
dialog.
2020-10-31 13:30:56 -03:00
Georges Basile Stavracas Neto
f9c466a1be
event-editor-dialog: Notify context when setting property
...
The 'context' property is set a explicit notify property, meaning we have
to manually notify it when setting it.
2020-10-31 13:30:56 -03:00
Georges Basile Stavracas Neto
b4029b0c23
edit-dialog: Rename to GcalEventEditorDialog
2020-10-31 13:30:56 -03:00
Georges Basile Stavracas Neto
c73dc191db
project: Move GcalEditDialog and friends to src/gui/event-editor/
2020-10-30 15:13:35 -03:00
Georges Basile Stavracas Neto
e67ebcfc50
project: Move all UI-related files to src/gui/
...
So we can have a nice separation.
2020-10-30 14:44:33 -03:00
Georges Basile Stavracas Neto
92863f578f
project: Split GResource files in subdirs
2020-10-30 14:17:40 -03:00
Georges Basile Stavracas Neto
87ce5e6d49
project: Move css-code.h to src/gui/
...
It is only used there.
2020-10-30 13:47:38 -03:00
Georges Basile Stavracas Neto
eb954505e4
project: Split meson files in subdirs
...
It allows us to better control what each subdir does, etc. This is
only the first step; we want to also split GResources, etc.
2020-10-30 13:45:50 -03:00
Georges Basile Stavracas Neto
28be1e858d
build: Use meson summary instead of hardocded string
2020-09-16 10:28:33 -03:00
Georges Basile Stavracas Neto
5d858f1905
40.alpha
2020-09-16 10:28:32 -03:00
Georges Basile Stavracas Neto
dc06fa92e2
3.38.0
2020-09-12 12:49:29 -03:00
Georges Basile Stavracas Neto
a202818c54
Update screenshots
2020-09-12 12:47:23 -03:00
Georges Basile Stavracas Neto
5f381b01f2
3.37.92
2020-09-05 13:51:27 -03:00
Georges Basile Stavracas Neto
158c65db4b
event: Trivial cleanup
...
We can avoid a lookup by simply checking if the alarm id
isn't NULL.
2020-06-17 21:24:36 -03:00
Georges Basile Stavracas Neto
4b6a559924
manager: Assert that cloning was successful
...
Cloning an ECalComponent can fail, and we need to be able to
catch these failures.
Assert that cloning was successful before procceeding with
the move.
2020-06-17 21:24:36 -03:00
Georges Basile Stavracas Neto
1bb00b8989
edit-dialog: Commit sequence after poking at component
...
GcalEditDialog code pre-dates GcalEvent and apply changes directly
to the underlying ECalComponent. However, it doesn't commit the
sequence after doing so, which opens the door for doom.
Commit the component sequence after changing the recurrence data.
2020-06-17 21:24:36 -03:00
Georges Basile Stavracas Neto
c1ec9e734b
event: Commit component more often
...
GcalEvent was mising many points where committing the component
is required. Commit the component more often.
https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/620
2020-06-17 21:24:36 -03:00
Georges Basile Stavracas Neto
53bc8d15a7
edit-dialog: Fake a cancel response when moving
...
When moving an event to another calendar, the GcalEvent instance
that is being held by GcalEditDialog is not valid one. On the other
hand, moving an event shouldn't trigger an update either.
For now, simply fake a GTK_RESPONSE_CANCEL. In the future, it'll
be better to move most of the GcalWindow code to GcalEventDialog
itself.
2020-06-17 21:24:36 -03:00
Georges Basile Stavracas Neto
d5ed8626ca
edit-dialog: Factor out update code to a separate function
...
To simplify readability of the response function, move some of
its code to an auxiliary function.
2020-06-17 21:24:36 -03:00
Georges Basile Stavracas Neto
4b1e303448
year-view: Clone and modify new event when dropping
...
Pretty much the same rationale and implementation of the previous
commit.
2020-06-15 13:32:02 -03:00
Georges Basile Stavracas Neto
ed7121c995
month-cell: Clone and modify new event when dropping
...
Instead of modifying the original event, create a new event
from it and modify this new event instead. After updating it
through gcal_manager_update_event(), GcalMonthView will remove
the old instance and add the new one anyway.
2020-06-15 13:26:51 -03:00
Georges Basile Stavracas Neto
cab7d5907f
month-cell: Instrument drop function
...
It's useful for debugging DnD.
2020-06-15 13:26:12 -03:00
Georges Basile Stavracas Neto
8243e0b8ed
edit-dialog: Edit cloned event
...
Edit a cloned event instead of the actual event, so that it
can preserve the original event's integrity. This allows for
a major edit dialog cleanup in the future.
2020-06-15 13:19:38 -03:00
Georges Basile Stavracas Neto
dbd81f401c
event: Add API to clone events
...
This will be useful for updating events without having
to keep track of the event states.
Add the new API, and also a unit test.
2020-06-15 13:07:48 -03:00
Georges Basile Stavracas Neto
d18441204f
tests: Trivial cleanup
2020-06-15 13:07:37 -03:00
Georges Basile Stavracas Neto
e5986a05c1
calendar-monitor: Use inclusive end date for ECalClientView
...
May prevent a few events from being transmitted.
2020-04-16 16:31:36 -03:00
Georges Basile Stavracas Neto
0c510d6709
month-view: Ignore events outside current range
...
The month view looks specially awful when switching between
dates, since it doesn't implicitly filter the ranges it's
displaying.
Ignore events outside the current month range, since they'll
be removed anyway by the timeline.
2020-04-16 16:16:49 -03:00
Georges Basile Stavracas Neto
d2da70fb28
range: Properly compare ranges
...
The behavior of gcal_range_compare(), and the 'position' argument
of gcal_range_calculate_overlap(), should be the same. However,
because we were comparing the end dates in the wrong order, they
didn't match.
Fix that by properly comparing the end of the ranges.
2020-04-16 16:15:34 -03:00
Georges Basile Stavracas Neto
a790f30176
timeline: Add sentinel events to the queue
...
Moving to have one subscriber per event made us face an interesting
problem: when removing an event, there may be no subscribers that
contain this event, in which case we never queue any REMOVE_EVENT
and the range tree isn't updated.
Add sentinel events (that update the range tree) and subscriber events
(that update subscribers, but not the range tree).
2020-04-16 16:10:33 -03:00
Georges Basile Stavracas Neto
494bd187d8
timeline: Cancel additions and removals
...
When we add an event to the queue, and later remove it, if the
event is still in the queue, we can just cancel both out and
save the timeline some processing time.
2020-04-16 15:11:53 -03:00
Georges Basile Stavracas Neto
61815ddccf
timeline: Trivial code cleanup
2020-04-16 13:47:09 -03:00
Georges Basile Stavracas Neto
381ae0046a
timeline: Protect against NULL arrays
2020-04-15 20:49:47 -03:00
Georges Basile Stavracas Neto
3073b6b6d8
timeline: Also queue remove events
2020-04-15 20:35:17 -03:00
Georges Basile Stavracas Neto
b5cdc0bd38
timeline: Only diff when ranges intersect
...
When the old and the new range of the subscribers don't
overlap entirely, we can't use the regular diff algorithm.
It fails quite spectacularly.
Do a full cleanup when ranges don't overlap.
2020-04-15 20:35:04 -03:00
Georges Basile Stavracas Neto
a1a4804315
timeline: Only modify event tree once
...
Now that we queue one event per subscriber, we need to
make sure to update the range tree only once.
2020-04-15 19:16:00 -03:00
Georges Basile Stavracas Neto
678d0acc00
timeline: Remove subscriber from range tree as well
...
update_range() does not remove any subscriber. They must be
removed manually.
2020-04-15 18:49:36 -03:00
Georges Basile Stavracas Neto
e9812b2f28
timeline: Don't try to use removed subscribers
...
Because the timeline is essentially asynchronous, it may
try and process events after their subscribers were removed.
Protect against that.
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/576
2020-04-15 18:49:36 -03:00
Georges Basile Stavracas Neto
db668a0b90
timeline: Queue one event per subscriber
...
Right now, GcalTimeline queues one event per N subscribers. Queue
one event per subscriber instead.
2020-04-15 18:49:36 -03:00
Georges Basile Stavracas Neto
98e6ac28e7
event: Remove unused method
...
Comparing ranges is so easy now that we don't need this
helper anymore.
2020-04-14 19:08:06 +00:00
Georges Basile Stavracas Neto
fd32492053
timeline, calendar-monitor: Remove useless event range checks
...
GcalRange is now smart enough to compare correctly with other ranges.
2020-04-14 19:08:06 +00:00
Georges Basile Stavracas Neto
d4a6cd0e61
timeline: Process events in batches
...
A batch size of 5 doesn't seem to impact the mainloop
any more than a batch of size 1, but it reduces the
amount of time spinning the loop quite considerably.
2020-04-14 19:08:06 +00:00
Georges Basile Stavracas Neto
16c156914a
calendar-monitor: Use GcalRange
2020-04-14 19:08:06 +00:00
Georges Basile Stavracas Neto
f3c3bbf5ab
event: Use GcalRange in public API
2020-04-14 19:08:06 +00:00
Georges Basile Stavracas Neto
12fd607d56
utils: Make date comparison follow time comparison semantics
...
Right now, comparing dates with gcal_date_time_compare_date() gives
the exact opposite result of when comparing using g_date_time_compare().
As shown by this patch, this was a source of *many* bugs.
2020-04-14 19:08:06 +00:00
Georges Basile Stavracas Neto
bed8e10609
range-tree: Add print utility
...
Useful for debugging
2020-04-14 19:08:05 +00:00
Georges Basile Stavracas Neto
3efbc2436c
range-tree: Use GcalRange
2020-04-14 19:08:05 +00:00
Georges Basile Stavracas Neto
b97c4a27e0
range-tree: Cleanup header
2020-04-14 19:08:05 +00:00
Georges Basile Stavracas Neto
923e3b7b71
project: Move range tree to core/
2020-04-14 19:08:05 +00:00
Georges Basile Stavracas Neto
0935a67558
event: Add helper API to return a GcalRange
2020-04-14 19:08:05 +00:00
Georges Basile Stavracas Neto
d9733aee27
event: Simplify some code
2020-04-14 19:08:05 +00:00
Georges Basile Stavracas Neto
dbfebc85fa
Introduce GcalRange
...
GcalRange is a new structure that represents a time range. It is
always inclusive at the start, and exclusive at the end.
2020-04-14 19:08:05 +00:00
Georges Basile Stavracas Neto
aaab4af282
timeline: Respond well to subscriber removal
2020-04-01 23:10:01 -03:00
Georges Basile Stavracas Neto
fa0173e174
window: Remove subscribers on destroy
2020-04-01 23:10:01 -03:00
Georges Basile Stavracas Neto
e4debb9912
views: Free GDateTimes with g_date_time_unref()
2020-04-01 23:10:01 -03:00
Georges Basile Stavracas Neto
93542e8853
timeline: Add already cached events to new subscribers
2020-04-01 23:10:01 -03:00
Georges Basile Stavracas Neto
6586c8738c
calendars-page: Add already connected calendars on startup
...
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/479
2020-04-01 23:10:01 -03:00
Georges Basile Stavracas Neto
d606bafd15
calendar-monitor: Properly cleanup ECalComponents
...
Unfortunately, they do not have autoptr functions.
2020-04-01 21:08:21 -03:00
Georges Basile Stavracas Neto
19fc8138ba
week-header: Use g_date_time_compare()
...
It is incorrect to use the date-only comparison here. Use the appropriate
GDateTime API and fix a truckload of issues.
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/546
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto
b703f5746d
week-header: Rename a variable
...
"event_start" and "event_end" clearly communicate they're the
start and end datetimes of the event. I'm dumb, so I need the
code to tell me what's it about easily.
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto
a65a370317
time-zone-monitor: Clear GTimeZone with g_time_zone_unref
...
GTimeZone is not an object, and it cannot be cleared with g_clear_object().
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto
c77e4ecfb5
year-view: Small code cleanup
...
Merge update_date() with gcal_year_view_set_date(), and
tidy up the code style a bit.
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto
cfa4b56a05
timeline: Implement processing changes in idle
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto
f052cb6589
event-widget: Remove idle on destroy
...
Finalize may be too late for us, since a widget
may be destroyed long before it's finalized.
Remove the idle timer on destroy then.
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto
7a0b55aa61
timeline: Replace useless function by GcalEvent counterpart
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto
1f6559de68
Remove ECalDataModel and ECalDataModelSubscriber
...
Drop the bomb!
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto
c68ef4b9ab
manager: Remove more unused API
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto
399b9d8d00
Simplify calendar views
...
We don't need a split subscription update step in GcalView
anymore, since subscribers communicate range directly to
the timeline now.
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto
84eeb58804
Move Shell search to GcalShellSearchProvider
...
Add a custom timeline to GcalShellSearchProvier and use
it to gather events.
Do a massive cleanup of unused APIs as well.
2020-04-01 21:06:51 -03:00
Georges Basile Stavracas Neto
06fbe2c2b9
month-view: Properly notify the "context" property
...
After adding the EXPLICIT_NOTIFY flag, we needed to make
GcalMonthView notify about it manually, otherwise the
context wouldn't propagate to GcalMonthPopover. We never
did that.
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/553
2020-04-01 21:06:51 -03:00