Commit Graph
100 Commits
Author SHA1 Message Date
Georges Basile Stavracas Neto 1fee8ff144 core/recurrence: Port to gatomicrefcount 2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto e3c7a1d777 core/manager: Remove old hack around recurrences
We handle it all before reaching GcalManager now.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 502b381975 event-editor/dialog: Properly handle editing recurrent events
When a recurrent event is edited, we now are able to only offer the
MOD_ALL option when it actually will work. However, we're still left
with the problem that we end up applying the instance-specific data
onto the main event, through an old hack.

The views already aren't able to offer the MOD_ALL property, since
they all change the dates of events, but GcalEventEditorDialog can,
and it must handle that properly.

For now, do the simplest possible approach, which is: retrive the
template event and apply all properties that can be applied to it,
without letting the start and end days leak into it. We already only
allow passing MOD_ALL on situations where the dates aren't really
modified, so it should be safe.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/882
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 102346534a event-editor/dialog: Improve detection of MOD_ALL exclusion cases 2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 679a392b71 event-editor/dialog: Don't hide dialog on cancelling operation
If the user clicks the "Cancel" button, it obviously means "cancel",
so let's cancel.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 2f1fe2b49b core/event: Fix transfer annotation 2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto cc696bc365 window: Properly hide start headerbar buttons
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/859
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 23dedc0fc8 event-editor/schedule: Trivial autoptr cleanup 2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 185490e272 event-editor/dialog: Don't ask mod type if event wasn't recurrent 2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 966411843a event-editor/dialog: Don't show MOD_ALL if schedule changed
We get into seriously tricky situations if we try and change the
date & time of an event with recurrency, and pass MOD_ALL. That's
because it is ambioguous *where* the change must be applied.

Don't allow selecting MOD_ALL when the scheduling of the recurrent
event changes.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/882
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto df5b9e7821 event-editor/dialog: Don't apply changes if nothing changed
This saves some cycles by not doing anything when nothing needs to
be done.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 82d8ec31ca event-editor/sections: Add vfunc to check for changes
This will be useful for next commits where we will need to check
if the schedule section actually changed something.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto dbd2f0df58 event-editor/dialog: Don't apply changes to readonly events
In practice this never does anything relevant, because widgets are
insensitive, but it's better not to nonetheless.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 5329c2297b views: Don't show MOD_ALL
The only field that views may change using DnD is the start date
field (and, consequently, the end date), and that's exactly what
we must not show the MOD_ALL option for.

Don't show it.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/882
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 6a5c0229b9 utils: Add boolean flag for showing MOD_ALL
This will be used by next commit to more finely control editing
of recurrent events.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 1beb3c9cf3 manager: Remove unnecessary comment 2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 1bb834e110 event-widget: Properly dispose template children 2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto db43bcd096 event: Trivial style fix 2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto a0963c0d36 calendar-monitor: Properly update and delete recurrent events
When we receive the 'objects-modified' signal, we get components
that may represent main events. We also may receive components
that have no recurrency because they were just changed from being
recurrent to non-recurrent.

We need to handle all these cases properly.

If the event has no recurrency set, remove any potential old
recurrence instance lingering around. If we're changing an event
with recurrency, make sure the recurrency instances are in sync
with the new recurrency.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/881
(or so I hope.)
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 16b9337e3f calendar-monitor: Move events hash table to shared section
We'll start accessing the hash table from multiple threads, so
it must be in the shared section of the structure, and it must
be encapsulated by locking.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 791d443c54 calendar-monitor: Simplify locking code a bit
Use GRWLock*Locker to simplify the locking code in a couple of
places.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 5f67c55304 calendar-monitor: Replace mutex by a rw-lock
This will be more appropriate once we start accessing the events
hash table from the monitor thread.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto baacf696a6 calendar-monitor: Shuffle some variables around
Move them to where they're used.
2022-10-17 23:37:13 -03:00
Georges Basile Stavracas Neto 6eaa00ffca Post-release version bump 2022-09-15 12:38:39 -03:00
Georges Basile Stavracas Neto 66f93e1fd0 43.0 2022-09-15 12:33:34 -03:00
Georges Basile Stavracas Neto fb1ca515e9 agenda-view: Fix translatable strings 2022-09-15 12:30:13 -03:00
Georges Basile Stavracas Neto 4550ca28e4 Post-release version bump 2022-08-12 00:29:51 -03:00
Georges Basile Stavracas Neto 0cc5086f03 43.beta 2022-08-12 00:26:51 -03:00
Georges Basile Stavracas Neto 39030f3669 Post-release version bump 2022-07-09 15:55:34 -03:00
Georges Basile Stavracas Neto 0c09876ad6 43.alpha 2022-07-09 15:33:57 -03:00
Georges Basile Stavracas Neto 4c9e7a2d03 manager: Bring back credentials 2022-06-23 13:50:20 -03:00
Georges Basile Stavracas Neto a67c63ca2d flatpak: Update dependencies
Include grc4 and build livedataserverui4
2022-06-23 13:49:56 -03:00
Georges Basile Stavracas Neto 258e73af2c Post-branching version bump 2022-04-26 21:00:56 -03:00
Georges Basile Stavracas Neto 45da797c16 Post-release version bump 2022-04-26 21:00:11 -03:00
Georges Basile Stavracas Neto 4220b381f9 42.1 2022-04-26 20:53:13 -03:00
Georges Basile Stavracas Neto 748e3e3d81 Post-release version bump 2022-03-18 18:26:17 -03:00
Georges Basile Stavracas Neto f49bec413e 42.0 2022-03-18 18:21:15 -03:00
Georges Basile Stavracas Neto 5b06ccb813 Post-release version bump 2022-03-07 15:47:27 -03:00
Georges Basile Stavracas Neto 8d8ff9dc50 42.rc 2022-03-07 15:43:27 -03:00
Georges Basile Stavracas Neto e3df821ae3 flatpak: Remove libdazzle
We don't use it anymore.
2022-03-07 15:42:22 -03:00
Georges Basile Stavracas Neto 9520a2b5c1 import-dialog: Only search for non-NULL default calendars
The default calendar might be NULL during the initial loading,
protect against that.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/813
2022-03-07 14:37:01 -03:00
Georges Basile Stavracas Neto 8790fb9f58 import-dialog: Properly store rows
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/812
2022-03-07 14:34:01 -03:00
Georges Basile Stavracas Neto 829da4b38b NEWS: Fix another typo 2022-02-15 17:49:22 -03:00
Georges Basile Stavracas Neto fc3ec8ef63 Fix NEWS header 2022-02-15 17:38:29 -03:00
Georges Basile Stavracas Neto eeed7e6e82 Post-release version bump 2022-02-15 17:32:29 -03:00
Georges Basile Stavracas Neto b46c0c4051 42.beta 2022-02-15 17:01:01 -03:00
Georges Basile Stavracas Neto 552fd413ae window: Properly declare shortcuts
I messed up shortcut declaration, but this should be enough
to get them working again.
2022-02-12 18:13:30 -03:00
Georges Basile Stavracas Neto 87e376b15b window: Add more tracing 2022-02-12 18:13:20 -03:00
Georges Basile Stavracas Neto f47e222037 window: Uncomment accidental leftover 2022-02-12 16:56:41 -03:00
Georges Basile Stavracas Neto 69d320f49c event-editor/dialog: Improve calendar selection menu 2022-02-12 13:24:57 -03:00
Georges Basile Stavracas Neto 47a72f8156 event-editor-dialog: Port to new callback-based ask API 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto ee5acbd493 Reimplement event drag n' drop
Reintroduce the code using GTK4 tooling for in-process DnD.
This is looking much better!
2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto ad0a97d6ac Rework calendar popover to be a button
This allows more precise control of the style and the contents
of the popover.
2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto fb504db31f util: Drop unused function 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto eb63f10651 help-overlay: Port to GTK4 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto 5ebab9f6d5 calendar-popover: Port to GTK4 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto c91f03feb1 weather-settings: Port to GTK4 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto b8cbb1653d event-popover: Port to GTK4 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto fd023e0a28 year-view: Port to GTK4 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto c31d2c5821 css: Adjust slanted events CSS 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto e190f5a3fd flatpak: Add DRI to devices
This allows GTK4 to use accelerated rendering (OpenGL)
2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto 1cbce60c4a month-view: Port to GTK4 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto b31b16da17 week-view: Port to GTK4 2022-02-12 13:08:50 -03:00
Georges Basile Stavracas Neto 132d4435f6 event-widget: Port to GTK4 2022-02-11 09:18:42 -03:00
Georges Basile Stavracas Neto fcfb387f5a importer: Port to GTK4 2022-02-11 09:18:42 -03:00
Georges Basile Stavracas Neto 74c410bd85 Port search subsystem to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto bd2ac18c19 quick-add-popover: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto ffadcb4f4e meeting-row: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto e390706e44 event-editor/time-selector: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto b5dc363a3b event-editor/summary: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 333b8ecc2a event-editor/schedule: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto c0365a1681 event-editor/reminders: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto d32be45273 event-editor/notes-section: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 0f7a0db138 event-editor/dialog: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 2139f40e67 project: Adjust color rendering to use GdkPaintable 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 760d74686d event-editor/date-selector: Port to GTK4
Needed some popover management, but otherwise uneventful.
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto b1781146b7 calendar-management/page: Port to GTK4
Just switch to include adwaita.h
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 27659cf4fb calendar-management/new-calendar-page: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 5ee03040c5 calendar-manager/edit-calendar-page: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 41ba168250 calendar-management/calendars-page: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 2b834b27ff calendar-management-dialog: Port to GTK4
Subclass AdwWindow. Adjust the API to return GtkHeaderBar
instead of HdyHeaderBar.
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto e3196644bb window: Port to GTK4
Subclass AdwApplicationWindow.
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 4506fb7477 event-editor/multi-choice: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto c6fab7675b application: Port to GTK4
Subclass AdwApplication.
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 9b56010b12 event-editor/date-chooser: Port to GTK4 2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto e138a35a6b event-editor/alarm-row: Port to GTK4
Subclass AdwActionRow.
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 97456e3428 date-chooser-day: Port to GTK4
Subclass AdwBin. Remove unnecessary GtkWidget overrides.
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 2809ed3abb Depend on GTK4 and libadwaita
This breaks the build. Next commits will port each widget to
GTK4.
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 2b7e2cb574 build: Temporarily remove libedataserverui dep
Since we'll be switching to GTK4, we can't depend on this
library which links to GTK3. There's a GTK4 port underway,
we'll reenable when it lands
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 7efd6facc9 Port to GWeather4
In preparation for the GTK4 port. This is just a cheap port,
I'll implement proper entry completion after porting to GTK4.
2022-02-11 09:18:38 -03:00
Georges Basile Stavracas Neto 2697dac460 import-dialog: Also import timezones
Some calendars provide custom timezones, and set events to
them. We need to account for that when importing calendars.

Original patch proposed by Milan Crha.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/444
2021-12-08 17:18:16 -03:00
Georges Basile Stavracas Neto 0751c2e93c event-editor/schedule-section: Show times in local timezone
Preserve the original timezone when editing, but always display
the start and end times in local timezone.
2021-12-07 13:32:16 -03:00
Georges Basile Stavracas Neto fc3ad22169 event-popover: Display times in local timezone
Convert the start and end datetimes to the local timezone
before displaying them.
2021-12-07 13:32:16 -03:00
Georges Basile Stavracas Neto 0811242180 event: Query client timezone on failure
If we can't find an appropriate timezone, query the ECalClient
for it and give it an extra chance of finding the right timezone.

Thanks to Milan Crha for proposing this fix.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/444
2021-12-07 12:39:15 -03:00
Georges Basile Stavracas Neto f1ac400e5d Drop gnome-online-accounts dependency
We don't need it anymore.
2021-10-13 13:48:09 -03:00
Georges Basile Stavracas Neto 3326ab77f7 Post-branching version bump 2021-10-13 12:46:01 -03:00
Georges Basile Stavracas Neto ab9b5b218a 41.0 2021-09-17 19:20:45 -03:00
Georges Basile Stavracas Neto 04c2f99028 Post-release version bump 2021-09-05 18:47:44 -03:00
Georges Basile Stavracas Neto 70d4124c88 41.rc1 2021-09-05 18:35:52 -03:00
Georges Basile Stavracas Neto 8f715c19b5 application: Move CSS providers to GcalWindow 2021-09-05 18:34:32 -03:00