Commit Graph
21 Commits
Author SHA1 Message Date
Milan Crha 1ba749ee59 gcal-recurrence: Handle invalid 'until' time
When the until's time part is invalid, the libical claims the time
as valid, but the conversion into the GDateTime fails and returns NULL.
Such events, which claim to have until-date recurrence, but NULL 'until'
cannot be edited, because they cause a crash of the application.

More information can be found downstream at:
https://bugzilla.redhat.com/show_bug.cgi?id=2135772

Related to https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/892
2022-11-17 10:46:16 +00:00
Milan Crha 21e5396bf5 event-editor: Fix possible use-after-free of recurrence until date
The GcalDateSelector returns an internal instance, while the 'until' date/time
is meant to be an own instance, which is freed by the GcalRecurrence instance
in its free function. That means the 'until' date/time is supposed to be reffed
when being assigned into the GcalRecurrence structure.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/892
2022-10-31 12:25:11 +00:00
Milan Crha 11a34a1d28 Misc: Fix GObject property types for GLabel::xalign/yalign properties
When running under valgrind, it claims that there's used uninitialized
memory, which is set as GObject property in the code. It's for
GtkLabel::xalign. The problem was that the value in the code is
an integer, but the property itself expects float type. This fixes
the place and where a floating point is already used it annotates
the value to be float, not a double.
2022-10-06 13:36:10 +02:00
Milan Crha 8138619419 gcal-window: Event deletion aborts unfinished previous delete attempt
Cannot use g_clear_pointer() here, because it unsets the pointer first and
only then calls the free function, which means the test on self->delete_event_toast
NULL-ness would be satisfied in the on_toast_dismissed_cb(), thus the previous
event delete attempt would be "cancelled" internally.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/858
2022-10-05 18:44:25 +02:00
Milan Crha 5e72aa53f2 gcal-event-editor-dialog: Use user-chosen mode in on_ask_recurrence_response_save_cb()
...to do what the user asked for.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/871
2022-10-05 15:39:57 +00:00
Milan Crha df3587752d gcal-month-view: Use gcal_view_set_date() to update date on scroll
This way the content of the view is updated properly, otherwise only
internal GDateTime structure had been updated, but not the view itself.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/868
2022-10-05 15:10:47 +00:00
Milan Crha 15ce841a6c gcal-date-chooser: Update also combined_choice in set_date()
Thus it's in sync with the rest of the date chooser.

Also use a common function to replace `self->date` value.

Related to https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/868
2022-10-05 15:10:47 +00:00
Milan Crha d273b4304f gcal_set_date_time: Avoid possible use-after-free
When the `*dest` and `src` are the same, doing g_date_time_unref()
can free the instance before it's assigned back to the `*dest`.
2022-10-05 15:10:47 +00:00
Milan Crha 0bd11799dc Port to libsoup3 2022-06-22 08:51:30 -03:00
Milan Crha bde989cc0e event: Workaround libical-glib bug before 3.0.12 version
Even the is_daylight argument is optional, the libical-glib had a bug
to require it. No need to bump the dependency, just workaround the problem.

Related to https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/444
2022-03-07 14:53:52 -03:00
Milan Crha be95d58cda event: Rework initialization process
While fixing timezone bugs, it was found that the calendar property needs
to be set before the component property. The component times may require
to have the calendar set, to be able to lookup the custom timezones in the
calendar, thus make sure the calendar is set before the component is set,
during the construction time.

Rework the initialization process so that setting the construct-only
component property merely takes a hold on the references; and the actual
setting up of the event happens during g_initable_init().

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/788
2022-03-07 14:53:52 -03:00
Milan Crha 3ca07505a6 Update libical version to 3.0.5 in the flatpak manifest 2019-05-17 22:14:04 +02:00
Milan Crha a0cae4356a Port to libecal-2.0
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/merge_requests/70
2019-05-17 21:58:55 +02:00
Milan Crha e07590d1cf window: remove refresh timeout on exit
https://bugzilla.gnome.org/show_bug.cgi?id=783441
2017-06-18 14:54:50 -03:00
Milan Crha a53581ed53 window: connect search view when manager is set
https://bugzilla.gnome.org/show_bug.cgi?id=782475
2017-05-27 11:01:41 -03:00
Milan Crha 6a39614e38 Bug 751206 - correct trust prompt for collection sources
This enables trust prompts for collection sources. Note the changes from the
above cited bug are needed to have this fully and properly working.

https://bugzilla.gnome.org/show_bug.cgi?id=751206
2015-06-20 23:04:10 -03:00
Milan Crha 3e97490e1d Bug 751211 - crash on ESource::read-only property change notification
Two things changes:
a) the actual crash cause in on_client_readonly_changed(), to test whether
   the 'unit' is valid at all before dereferencing it
b) the callback doesn't seem to be disconnected at all, thus added a disconnect
   of it on the source removal as well

The b) might be enough, but just to be sure I included also a).

https://bugzilla.gnome.org/show_bug.cgi?id=751211
2015-06-20 23:00:40 -03:00
Milan Crha afdd726daf manager: fix bug #751209
https://bugzilla.gnome.org/show_bug.cgi?id=751209
2015-06-20 22:56:47 -03:00
Milan Crha b72de0c8b0 Misleading counts of events in the Calendar view's mini-calendar
It was caused by missing view events remove notifications when replacing
ongoing ECalClientView. The previously known (ViewData::lost_components)
were not notified as removed, thus made incorrect counts in the mini-calendar.
2015-04-29 22:27:10 -04:00
Milan Crha b94a804d3a manager: Enable authentication for eds calendars 2015-02-13 13:02:55 -05:00
Milan Crha 560fddeebe manager: port to latest EDS 2015-02-06 14:09:08 -05:00