Commit Graph
100 Commits
Author SHA1 Message Date
Georges Basile Stavracas Neto 4b15e7647c search-button: Use 'search-changed' signal
It uses a 150ms delay, which helps with reducing the number of
queries we do.
2023-03-16 09:28:30 -03:00
Georges Basile Stavracas Neto 485a6cf5a7 search-button: Instrument some functions 2023-03-16 09:28:30 -03:00
Georges Basile Stavracas Neto bd97430bf3 search-button: Use GtkSearchEntry
Allows us to cleanup style a bit. Next commits will use search entry
functionality better.
2023-03-16 09:28:30 -03:00
Georges Basile Stavracas Neto 0a0128bf4c core/calendar-monitor: Keep event alive while removing it
This might be the last reference to it, so keep it alive while
the signal is being emitted.
2023-03-16 12:27:47 +00:00
Georges Basile Stavracas Neto daec07c9f6 search: Rework threading
Search uses GcalTimeline, an object that is meant to be single
threaded, in multple threads. That mostly worked okay because
GcalTimeline mostly relies on GcalCalendarMonitor, which is
heavily threaded. But, sometimes it failed.

Rework that to be single-threaded, and asynchronous.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/981
Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/987
Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/988
2023-03-16 12:27:47 +00:00
Georges Basile Stavracas Neto f751803e07 views/week-header: Use minute granurality
We end up losing minutes information when running through this code
path. Technically it's fine, because we copy the minutes from the
event, but it's better nonetheless to operate on the level of
granularity that Calendar supports.
2023-03-16 12:27:09 +00:00
Georges Basile Stavracas Neto 8b9af9241e views/week-header: Don't change all day state
I don't know what I had in mind when I wrote this, since 2017 self
did not bother adding a proper commit message, but 2023 me is pretty
convinced we never want to change the event length when dragging it
around.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/896
2023-03-16 12:27:09 +00:00
Georges Basile Stavracas Neto 0650c89ee2 views/week: Cleanup unused struct field
We don't use 'scroll_scale' anymore
2023-03-16 12:26:28 +00:00
Georges Basile Stavracas Neto e1616039d6 views/week: Special case discrete events
They behave slightly differently from smooth scroll events, and
they don't emit 'scroll-begin' nor 'scroll-end', so we have to
execute that the callbacks of these signals do inside the scroll
callback itself.
2023-03-16 12:26:28 +00:00
Georges Basile Stavracas Neto a55bf69dfb views/week: Don't swap callback arguments
No function changes
2023-03-16 12:26:28 +00:00
Georges Basile Stavracas Neto 189c809271 views/week: Store and restore zoom level
Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/916
2023-03-16 12:26:28 +00:00
Georges Basile Stavracas Neto a9e4a5ae12 views/week: Connect to 'scroll-begin'
The scroll-begin callback is being connected to the 'scroll' signal.
This is an obvious oversight.

Connect to the right signal.
2023-03-16 12:26:28 +00:00
Georges Basile Stavracas Neto 8d92808992 views/week: Operate on zoom levels
Instead of freely using heights and pixel sizes, operate on zoom
levels.
2023-03-16 12:26:28 +00:00
Georges Basile Stavracas Neto 42ee33c783 gschema: Remove unused key 2023-03-16 12:26:28 +00:00
Georges Basile Stavracas Neto c2fcf0049e gschema: Cosmetics
Cleanup indentation.
2023-03-16 12:26:28 +00:00
Georges Basile Stavracas Neto b93aa0dd23 calendar-button: Stop spinning when not synchronizing
GtkSpinner queues relayouts even when the stack is not displaying
it, and this causes excessive redrawing. This button design looks
obsolete and should eventually be reworked, but for now, let's
just stop spinning when the spinner is invisible.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/971
2023-03-16 12:25:15 +00:00
Georges Basile Stavracas Neto 98dff07ee7 Post-release version bump 2023-03-16 09:23:45 -03:00
Georges Basile Stavracas Neto 8498973383 44.0 2023-03-16 09:19:56 -03:00
Georges Basile Stavracas Neto 267a801c42 Post-release version bump 2023-03-06 23:25:31 -03:00
Georges Basile Stavracas Neto 6b3676a53f 44.rc 2023-03-06 23:17:02 -03:00
Georges Basile Stavracas Neto 9ea2ceef1a gui: Fix search from Shell overview 2023-03-05 11:53:50 -03:00
Georges Basile Stavracas Neto d6a216d0fa gui: Propagate context to GcalSearchButton
The people who introduced this code were not careful enough to
make sure the code they removed from GcalWindow was added back
in GcalToolbarEnd.

They also simply commented out some code instead of properly
reimplementing that.

I regret having trusted their code :(

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/880
2023-03-05 11:41:35 -03:00
Georges Basile Stavracas Neto 0322bcf54c utils/source-discoverer: Test URI before discovery
This makes sure that we have a valid host set. This check is
copies from Soup's private SOUP_URI_IS_VALID() macro.

Add a test for this behavior.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/794
2023-03-05 11:24:49 -03:00
Georges Basile Stavracas Neto 075b91d279 tests: Set bug base 2023-03-05 11:24:49 -03:00
Georges Basile Stavracas Neto fd7baeb787 utils/source-discoverer: Pass error
An oversight of the GUri port.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/794
2023-03-03 19:50:30 -03:00
Georges Basile Stavracas Neto 0e8332b07b calendar-management/new: Switch to a GtkDialog
The implementation of the credentials popover has relied on a hack,
and sadly this hack doesn't work anymore.

It's too late for a redesign, so for now, just put it into a dialog
and show it on top of the calendar management dialog.
2023-03-03 19:50:30 -03:00
Georges Basile Stavracas Neto 4f9d7de032 calendar-management/new: Dispose template 2023-03-03 19:50:30 -03:00
Georges Basile Stavracas Neto 2b947e83a6 utils/source-discoverer: Use caldav-stub and caldav
As per suggestion from Milan, use caldav-stub as the parent name,
and caldav as the backend name.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/539
2023-03-03 19:50:30 -03:00
Georges Basile Stavracas Neto 98f6ccdb88 utils/source-discoverer: Set security method
Set the security method of the discovered source into the newly
created source. This should preserve the TLS security method in
these sources.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/40
2023-03-03 19:50:30 -03:00
Georges Basile Stavracas Neto 02c2119c39 utils/source-discoverer: Use g_strcmp0
Cosmetical change.
2023-03-03 19:50:30 -03:00
Georges Basile Stavracas Neto 69728fc814 views/agenda: Properly activate events
The code that activates event is just a sad FIXME in the file, and
the implementation is simple enough.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/897
2023-03-02 21:49:27 -03:00
Georges Basile Stavracas Neto e13eb17816 views/agenda: Cleanup unused Week View (!!!)
This is to show how much I suck at reviewing code. Look at this
massive gold nugget of garbage. Nobody on their serious mind would
have let that pass code review.

But I did. And now I deserve the punishment to deal with this.

Of course, the author didn't seem to have spared more than a fraction
of a second of their brain power to even consider what they were
doing here. But that's what code review is for - preventing garbage
like this from landing. And yet, here we are, removing an invisible
Week view from the sidebar.
2023-03-02 21:49:27 -03:00
Georges Basile Stavracas Neto bd9ff41a37 views/month-view: Use new signal helpers 2023-03-02 21:49:27 -03:00
Georges Basile Stavracas Neto bedf4e610d views/week-grid: Use new signal helpers 2023-03-02 21:49:27 -03:00
Georges Basile Stavracas Neto c80c06c86e views/week-view: Use new signal helpers 2023-03-02 21:49:27 -03:00
Georges Basile Stavracas Neto 1359465c62 views/week-header: Use new signal helpers 2023-03-02 21:49:27 -03:00
Georges Basile Stavracas Neto cdb80cfd3a views/view: Cosmetics 2023-03-02 21:49:27 -03:00
Georges Basile Stavracas Neto 5d5709122f views/view: Add private signal helpers
They'll be useful to stop hijacking view signals.
2023-03-02 21:49:27 -03:00
Georges Basile Stavracas Neto 5a028471e9 views/week-header: Cosmetics 2023-03-02 21:25:02 -03:00
Georges Basile Stavracas Neto a77f6e39e4 views/view: Store signal id
This will be used by next commits
2023-03-02 21:14:02 -03:00
Georges Basile Stavracas Neto f0c8d7bd81 Post-release version bump 2023-02-14 22:30:54 -03:00
Georges Basile Stavracas Neto 9393f186b5 44.beta 2023-02-14 22:28:27 -03:00
Georges Basile Stavracas Neto 40fa82deab event-editor/dialog: Check if calendars changed too
In addition to checking if any event fields changed, check if the
caledar changed too.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/924
2023-02-06 22:48:40 +00:00
Georges Basile Stavracas Neto 40f3bee3d6 Post-branching version bump 2022-11-21 08:46:25 -03:00
Georges Basile Stavracas Neto 80dd2df7c3 utils: Remove obsolete comment 2022-11-21 08:45:09 -03:00
Georges Basile Stavracas Neto fc11c26e4d Post-release version bump 2022-10-17 23:43:10 -03:00
Georges Basile Stavracas Neto 54f1ada6be 43.1 2022-10-17 23:40:52 -03:00
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