Federico Mena Quintero
2ca29785dc
Remove superfluous conditional
...
Now that all cases set the same times to the
{start,end}_date_time_chooser widgets, we don't need that condition anymore.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:58 -03:00
Federico Mena Quintero
1309bf4a82
gcal_schedule_section_set_event(): Don't change the timezones when setting up the widgets
...
I think this was being done so that:
- create a new all-day event
- open it in the event editor
- switch to time-slot
- time choosers now say "UTC"
doesn't happen. I think this can be handled more gracefully.
Evolution does not handle it very gracefully; when turning off
all-day in its event editor, it sets the times to $now.
The iOS calendar app is better. If you turn all-day off, it picks
$next_hour_based_on_now for the start time, and $next_hour_plus_one
for the end time. So if you turn off all-day and it is 18:24 right
now, it will set the start_time to 19:00 and the end_time to 20:00 ---
that is, it creates a one-hour event at the next start of the hour
from now.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:58 -03:00
Federico Mena Quintero
923424acab
Run the tests for the flatpak build
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:58 -03:00
Federico Mena Quintero
a0a817ee8a
Add scaffolding for a new test-internals binary
...
* There is a gcal_tests_add_internal() function...
* called from tests/test-internals.c...
* ... which doesn't add any tests yet, but we'll have some soon.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:57 -03:00
Federico Mena Quintero
cdc602bb1f
Start sketching gcal_schedule_values_set_start_date()
...
But we need a test first!
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:17 -03:00
Federico Mena Quintero
938419c1d4
Handle the time_format as part of GcalScheduleValues and WidgetState
...
This will let us write tests for changing the time format without a
context object.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:17 -03:00
Federico Mena Quintero
11dcab5ddf
Set the state of the schedule_type_toggle_group in update_widgets()
...
And now the redundancy in gcal_schedule_section_set_event() is gone.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:17 -03:00
Federico Mena Quintero
253b1d4f17
Start transitioning gcal_schedule_section_set_event() to use update_widgets()
...
For now this is redundant, as update_widgets() only sets the
visibility of the time selectors, while the call to
adw_toggle_group_set_active_name() effectively does the same.
But that redundancy will go away in the next step.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:17 -03:00
Federico Mena Quintero
640488883b
Introduce a WidgetState structure and compute it from GcalScheduleValues
...
You may think, yet more indirection! But behold:
1. We take events from the widgets ("schedule type (all-day) changed") and turn
them into actions (gcal_schedule_values_set_all_day()).
2. Those actions (e.g. that function) decide how to change the GcalScheduleValues.
3. We compute the desired state of the wigets, based on the new
values.
4. We set the state of the widgets based on that.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:17 -03:00
Federico Mena Quintero
2c476f6d02
New function to set the all_day flag on GcalScheduleValues
...
You may think that this is too much indirection. But wait! This is
the start of enabling tests. Hang in there.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:17 -03:00
Federico Mena Quintero
a4d891aadd
New function to copy a GcalScheduleValues
...
These structs are immutable. Any changes will be made on a copy.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:17 -03:00
Federico Mena Quintero
939b60d6b4
gcal_schedule_section_apply(): extract an _apply_to_event() helper function
...
With this, there's no direct mutation of the self->event anywhere; the
_apply() function just uses self->event as a target for mutation
because that's what the surrounding architecture expects.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:16 -03:00
Federico Mena Quintero
70173639e4
gcal-schedule-section.c: Use the stored values instead of pulling them from the event every time
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:16 -03:00
Federico Mena Quintero
f51186c298
gcal_schedule_section_apply(): use the stored values as a reference
...
Also, update the values from the updated event at the end.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:16 -03:00
Federico Mena Quintero
68126bcfac
gcal_schedule_section_set_event(): set the widgets from the extracted values, not from the event
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:16 -03:00
Federico Mena Quintero
d44e6847c7
GcalScheduleSection: store the values when an event is set
...
We don't use them yet; just hooking things up for now.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:16 -03:00
Federico Mena Quintero
f75785a34c
GcalScheduleValues: new struct to hold values from a GcalEvent for the schedule widges
...
We'll move GcalScheduleSection to operate without a backing GcalEvent,
so we can add tests.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:16 -03:00
Federico Mena Quintero
42b00ec052
Fix cut&paste error
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:16 -03:00
Federico Mena Quintero
72762ee11d
GcalEventWidget: remove the date-end property; it is unused
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:16 -03:00
Federico Mena Quintero
7a814cc1f3
Move explanatory comment
...
Analogous to date-start
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:16 -03:00
Federico Mena Quintero
6e10e746c3
GCalEventWidget: remove the date-start property; it is never used
...
Setting and getting the value always happens through
gcal_event_widget_set_date_start() and gcal_event_widget_get_date_start().
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:16 -03:00
Federico Mena Quintero
2f86a7a77b
Move explanatory comment
...
We'll remove the date-start property, so put its description in the
corresponding setter function.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/550 >
2025-08-27 19:59:15 -03:00
Federico Mena Quintero
84cf41cc4f
core/timeline: Fix leak of QueueData in queue_event_data()
...
The new QueueData was created even for REMOVE_EVENT, which causes an
early exit. Only create the QueueData when needed.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/582 >
2025-05-30 14:10:05 +00:00
Federico Mena Quintero
2eec02b76a
gui/views/month-view: Initialize two variables
...
The static analizer can't figure out that they will always be initialized
by the for loop in this function.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
ef8c6ff55d
utils/source-discoverer: Use temporary variable only when tracing is enabled
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
a3ddd8e510
gui/views/month-view: Mark variable as unused
...
It's just a temporary reference that will get removed at function exit.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
3c38a272b8
gui/importer/import-dialog: Remove superfluous assignment
...
The variable is initialized where it is declared.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
8c2daf672b
gui/importer/import-dialog: Remove an unused variable
...
Looks like a cut&paste error.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
b03eabb7b7
gui/event-widget: Mark a variable as unused
...
The actual parsed guri is unused here; the code just does the parsing
as a way to tell whether the event's location refers to a URI/service
or not (e.g. a physical location or address).
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
172f07c44e
gui/views/week-grid: Remove superfluous assignment
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
e56ce53ea5
gui/views/week-header: Remove superfluous assignment
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
81c8900076
gui/views/week-header: Remove unused variable
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
bc53f169eb
gui/views/week-header: Remove unused variable
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
d1499329cc
core/calendar-monitor: Replace a manual GRWLockWriterLocker with G_RW_LOCK_WRITER_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
cf48f79f36
core/calendar-monitor: Replace a manual GRWLockWriterLocker with G_RW_LOCK_WRITER_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
26c3f83e3c
core/calendar-monitor: Replace a manual GRWLockWriterLocker with G_RW_LOCK_WRITER_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
e2dc3460a6
core/calendar-monitor: Replace a manual GRWLockWriterLocker with G_RW_LOCK_WRITER_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
1d5fd3eec9
core/calendar-monitor: Replace a manual GRWLockWriterLocker with G_RW_LOCK_WRITER_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
21b7607c39
core/calendar-monitor: Replace a manual GRWLockReaderLocker with G_RW_LOCK_READER_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
f55f42b81c
core/calendar-monitor: Replace a manual GRWLockReaderLocker with G_RW_LOCK_READER_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
32ebd80613
core/calendar: Replace a manual GMutexLocker with G_MUTEX_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
eeb9c99172
core/calendar: Replace a manual GMutexLocker with G_MUTEX_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
0d3975b556
core/calendar: Replace a manual GMutexLocker with G_MUTEX_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
e884a09268
core/calendar: Replace a manual GMutexLocker with G_MUTEX_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
872aae9183
core/calendar: Replace a manual GMutexLocker with G_MUTEX_AUTO_LOCK()
...
This takes care of static-scan's warning about a variable being set
but never read.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
384411b33a
Increase the required version of glib to 2.80.0
...
We'll need this for G_MUTEX_AUTO_LOCK(). It basically does
g_autoptr (GMutexLocker) G_GNUC_UNUSED var = g_mutex_locker_new (mutex)
which will let us remove static-scan's warnings about assigned
variables that are never read, e.g. it complains about "locker" here:
g_autoptr (GMutexLocker) locker = g_mutex_locker_new (&priv->shared.mutex);
The whole point of GMutexLocker is to be used with g_autoptr for a
mutex that is unlocked when its scope ends.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
7d869ed4e8
CI: copy the scanbuild directory from the correct place
...
Ninja's scan-build command creates a directory with an ugly unique
name. So, we copy it to a well-known "scanbuild" directory instead.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/580 >
2025-05-27 13:42:19 +00:00
Federico Mena Quintero
a00c72b139
Add an index.html landing page for GitLab pages
...
For https://gnome.pages.gitlab.gnome.org/gnome-calendar/
2025-05-26 18:39:08 -06:00
Federico Mena Quintero
1a232ba811
CI: Add a static-scan job
...
This will run static analysis and publish the report on
https://gnome.pages.gitlab.gnome.org/gnome-calendar/scanbuild
2025-05-26 18:39:08 -06:00
Federico Mena Quintero
9c7315a66a
CI: Add a test coverage job
...
This uses grcov internally to generate the HTML report. We use grcov
instead of, say, lcov, because grcov actually generates accessible
pages.
We use the gnome-build-meta:core-nightly container image. It doesn't
contain grcov by default, but we download the binary from its github
page. We can change this later to build a custom container image for
gnome-calendar's own CI.
This will publish the report on
https://gnome.pages.gitlab.gnome.org/gnome-calendar/coverage/
2025-05-26 18:13:55 -06:00