gnome-todo: update to 41.0.

This commit is contained in:
Michal Vasilek 2022-02-04 02:26:52 +01:00 committed by Echo
parent ecd164103b
commit 6456532cad
4 changed files with 88 additions and 573 deletions

View file

@ -0,0 +1,65 @@
From a27a2128ce8f67d74895a721322768c2032400fe Mon Sep 17 00:00:00 2001
From: Neel Chauhan <neel@neelc.org>
Date: Wed, 29 Sep 2021 14:16:20 -0700
Subject: [PATCH] Fix race condition on enums when we bulid with a single core
---
src/meson.build | 35 +++++++++++++++++------------------
1 file changed, 17 insertions(+), 18 deletions(-)
diff --git a/src/meson.build b/src/meson.build
index ebafc5fd..a671e682 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -16,6 +16,23 @@ vcs_identifier_h = declare_dependency(sources: vcs_tag)
gnome_todo_deps += vcs_identifier_h
+#########
+# Enums #
+#########
+
+enum_headers = files(
+ join_paths('animation', 'gtd-animation-enums.h'),
+)
+
+enum_types = 'gtd-enum-types'
+
+sources += gnome.mkenums(
+ enum_types,
+ sources: enum_headers,
+ c_template: enum_types + '.c.template',
+ h_template: enum_types + '.h.template'
+)
+
###########
# Plugins #
###########
@@ -43,24 +60,6 @@ gtd_deps = gnome_todo_deps + [
]
-#########
-# Enums #
-#########
-
-enum_headers = files(
- join_paths('animation', 'gtd-animation-enums.h'),
-)
-
-enum_types = 'gtd-enum-types'
-
-sources += gnome.mkenums(
- enum_types,
- sources: enum_headers,
- c_template: enum_types + '.c.template',
- h_template: enum_types + '.h.template'
-)
-
-
################
# Header files #
################
--
GitLab

View file

@ -1,567 +0,0 @@
diff --git a/plugins/eds/gtd-eds-autoptr.h b/plugins/eds/gtd-eds-autoptr.h
index eb9b011..78bd944 100644
--- a/plugins/eds/gtd-eds-autoptr.h
+++ b/plugins/eds/gtd-eds-autoptr.h
@@ -23,6 +23,5 @@
#include <libecal/libecal.h>
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ECalComponent, g_object_unref);
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (ECalComponentId, e_cal_component_free_id);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (ECalComponentId, e_cal_component_id_free);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ECalClient, g_object_unref);
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (ESource, g_object_unref);
diff --git a/plugins/eds/gtd-provider-eds.c b/plugins/eds/gtd-provider-eds.c
index a403226..def4235 100644
--- a/plugins/eds/gtd-provider-eds.c
+++ b/plugins/eds/gtd-provider-eds.c
@@ -554,6 +554,7 @@ gtd_provider_eds_create_task (GtdProvider *provider,
e_cal_client_create_object (client,
e_cal_component_get_icalcomponent (component),
+ E_CAL_OPERATION_FLAG_NONE,
NULL,
(GAsyncReadyCallback) on_task_created_cb,
new_task);
@@ -587,6 +588,7 @@ gtd_provider_eds_update_task (GtdProvider *provider,
e_cal_client_modify_object (client,
e_cal_component_get_icalcomponent (component),
E_CAL_OBJ_MOD_THIS,
+ E_CAL_OPERATION_FLAG_NONE,
NULL,
(GAsyncReadyCallback) on_task_modified_cb,
task);
@@ -616,9 +618,10 @@ gtd_provider_eds_remove_task (GtdProvider *provider,
gtd_object_push_loading (GTD_OBJECT (provider));
e_cal_client_remove_object (client,
- id->uid,
- id->rid,
+ e_cal_component_id_get_uid (id),
+ e_cal_component_id_get_rid (id),
E_CAL_OBJ_MOD_THIS,
+ E_CAL_OPERATION_FLAG_NONE,
NULL,
(GAsyncReadyCallback) on_task_removed_cb,
provider);
diff --git a/plugins/eds/gtd-task-eds.c b/plugins/eds/gtd-task-eds.c
index 2c8cd8e..bd8f7ac 100644
--- a/plugins/eds/gtd-task-eds.c
+++ b/plugins/eds/gtd-task-eds.c
@@ -46,19 +46,19 @@ static GParamSpec *properties [N_PROPS];
*/
static GDateTime*
-convert_icaltime (const icaltimetype *date)
+convert_icaltime (const ICalTime *date)
{
GDateTime *dt;
if (!date)
return NULL;
- dt = g_date_time_new_utc (date->year,
- date->month,
- date->day,
- date->is_date ? 0 : date->hour,
- date->is_date ? 0 : date->minute,
- date->is_date ? 0 : date->second);
+ dt = g_date_time_new_utc (i_cal_time_get_year (date),
+ i_cal_time_get_month (date),
+ i_cal_time_get_day (date),
+ i_cal_time_is_date (date) ? 0 : i_cal_time_get_hour (date),
+ i_cal_time_is_date (date) ? 0 : i_cal_time_get_minute (date),
+ i_cal_time_is_date (date) ? 0 : i_cal_time_get_second (date));
return dt;
}
@@ -67,19 +67,20 @@ static void
set_description (GtdTaskEds *self,
const gchar *description)
{
- ECalComponentText text;
+ ECalComponentText *text;
GSList note;
- text.value = description && *description ? description : "";
- text.altrep = NULL;
+ text = e_cal_component_text_new (description ? description : "", NULL);
- note.data = &text;
+ note.data = text;
note.next = NULL;
g_clear_pointer (&self->description, g_free);
self->description = g_strdup (description);
- e_cal_component_set_description_list (self->component, &note);
+ e_cal_component_set_descriptions (self->component, (description && *description) ? &note : NULL);
+
+ e_cal_component_text_free (text);
}
static void
@@ -90,7 +91,7 @@ setup_description (GtdTaskEds *self)
GSList *l;
/* concatenates the multiple descriptions a task may have */
- e_cal_component_get_description_list (self->component, &text_list);
+ text_list = e_cal_component_get_descriptions (self->component);
for (l = text_list; l != NULL; l = l->next)
{
@@ -105,21 +106,21 @@ setup_description (GtdTaskEds *self)
{
carrier = g_strconcat (desc,
"\n",
- text->value,
+ e_cal_component_text_get_value (text),
NULL);
g_free (desc);
desc = carrier;
}
else
{
- desc = g_strdup (text->value);
+ desc = g_strdup (e_cal_component_text_get_value (text));
}
}
}
set_description (self, desc);
- e_cal_component_free_text_list (text_list);
+ g_slist_free_full (text_list, e_cal_component_text_free);
}
@@ -138,7 +139,7 @@ gtd_task_eds_get_uid (GtdObject *object)
self = GTD_TASK_EDS (object);
if (self->component)
- e_cal_component_get_uid (self->component, &uid);
+ uid = e_cal_component_get_uid (self->component);
else
uid = NULL;
@@ -159,7 +160,7 @@ gtd_task_eds_set_uid (GtdObject *object,
if (!self->component)
return;
- e_cal_component_get_uid (self->component, &current_uid);
+ current_uid = e_cal_component_get_uid (self->component);
if (g_strcmp0 (current_uid, uid) != 0)
{
@@ -177,7 +178,7 @@ gtd_task_eds_set_uid (GtdObject *object,
static gboolean
gtd_task_eds_get_complete (GtdTask *task)
{
- icalproperty_status status;
+ ICalPropertyStatus status;
GtdTaskEds *self;
gboolean completed;
@@ -185,8 +186,8 @@ gtd_task_eds_get_complete (GtdTask *task)
self = GTD_TASK_EDS (task);
- e_cal_component_get_status (self->component, &status);
- completed = status == ICAL_STATUS_COMPLETED;
+ status = e_cal_component_get_status (self->component);
+ completed = status == I_CAL_STATUS_COMPLETED;
return completed;
}
@@ -195,8 +196,8 @@ static void
gtd_task_eds_set_complete (GtdTask *task,
gboolean complete)
{
- icalproperty_status status;
- icaltimetype *dt;
+ ICalPropertyStatus status;
+ ICalTime *dt;
GtdTaskEds *self;
gint percent;
@@ -209,54 +210,54 @@ gtd_task_eds_set_complete (GtdTask *task,
percent = 100;
status = ICAL_STATUS_COMPLETED;
- dt = g_new0 (icaltimetype, 1);
- dt->year = g_date_time_get_year (now);
- dt->month = g_date_time_get_month (now);
- dt->day = g_date_time_get_day_of_month (now);
- dt->hour = g_date_time_get_hour (now);
- dt->minute = g_date_time_get_minute (now);
- dt->second = g_date_time_get_seconds (now);
- dt->zone = icaltimezone_get_utc_timezone ();
+ dt = i_cal_time_new_null_time ();
+ i_cal_time_set_date (dt,
+ g_date_time_get_year (now),
+ g_date_time_get_month (now),
+ g_date_time_get_day_of_month (now));
+ i_cal_time_set_time (dt,
+ g_date_time_get_hour (now),
+ g_date_time_get_minute (now),
+ g_date_time_get_seconds (now));
+ i_cal_time_set_timezone (dt, i_cal_timezone_get_utc_timezone ());
/* convert timezone
*
* FIXME: This does not do anything until we have an ical
* timezone associated with the task
*/
- icaltimezone_convert_time (dt, NULL, icaltimezone_get_utc_timezone ());
+ i_cal_time_convert_timezone (dt, NULL, i_cal_timezone_get_utc_timezone ());
}
else
{
dt = NULL;
percent = 0;
- status = ICAL_STATUS_NEEDSACTION;
+ status = I_CAL_STATUS_NEEDSACTION;
}
- e_cal_component_set_percent_as_int (self->component, percent);
+ e_cal_component_set_percent_complete (self->component, percent);
e_cal_component_set_status (self->component, status);
e_cal_component_set_completed (self->component, dt);
- if (dt)
- e_cal_component_free_icaltimetype (dt);
+ g_clear_object (&dt);
}
static GDateTime*
gtd_task_eds_get_creation_date (GtdTask *task)
{
- icaltimetype *idt;
+ ICalTime *idt;
GtdTaskEds *self;
GDateTime *dt;
self = GTD_TASK_EDS (task);
- idt = NULL;
dt = NULL;
- e_cal_component_get_created (self->component, &idt);
+ idt = e_cal_component_get_created (self->component);
if (idt)
dt = convert_icaltime (idt);
- g_clear_pointer (&idt, e_cal_component_free_icaltimetype);
+ g_clear_object (&idt);
return dt;
}
@@ -286,7 +287,7 @@ gtd_task_eds_set_description (GtdTask *task,
static GDateTime*
gtd_task_eds_get_due_date (GtdTask *task)
{
- ECalComponentDateTime comp_dt;
+ ECalComponentDateTime *comp_dt;
GtdTaskEds *self;
GDateTime *date;
@@ -294,10 +295,12 @@ gtd_task_eds_get_due_date (GtdTask *task)
self = GTD_TASK_EDS (task);
- e_cal_component_get_due (self->component, &comp_dt);
+ comp_dt = e_cal_component_get_due (self->component);
+ if (!comp_dt)
+ return NULL;
- date = convert_icaltime (comp_dt.value);
- e_cal_component_free_datetime (&comp_dt);
+ date = convert_icaltime (e_cal_component_datetime_get_value (comp_dt));
+ e_cal_component_datetime_free (comp_dt);
return date;
}
@@ -317,11 +320,10 @@ gtd_task_eds_set_due_date (GtdTask *task,
if (dt != current_dt)
{
- ECalComponentDateTime comp_dt;
- icaltimetype *idt;
+ ECalComponentDateTime *comp_dt;
+ ICalTime *idt;
- comp_dt.value = NULL;
- comp_dt.tzid = NULL;
+ comp_dt = NULL;
idt = NULL;
if (!current_dt ||
@@ -329,36 +331,34 @@ gtd_task_eds_set_due_date (GtdTask *task,
dt &&
g_date_time_compare (current_dt, dt) != 0))
{
- idt = g_new0 (icaltimetype, 1);
+ idt = i_cal_time_new_null_time ();
g_date_time_ref (dt);
/* Copy the given dt */
- idt->year = g_date_time_get_year (dt);
- idt->month = g_date_time_get_month (dt);
- idt->day = g_date_time_get_day_of_month (dt);
- idt->hour = g_date_time_get_hour (dt);
- idt->minute = g_date_time_get_minute (dt);
- idt->second = g_date_time_get_seconds (dt);
- idt->is_date = (idt->hour == 0 &&
- idt->minute == 0 &&
- idt->second == 0);
-
- comp_dt.tzid = g_strdup ("UTC");
+ i_cal_time_set_date (idt,
+ g_date_time_get_year (dt),
+ g_date_time_get_month (dt),
+ g_date_time_get_day_of_month (dt));
+ i_cal_time_set_time (idt,
+ g_date_time_get_hour (dt),
+ g_date_time_get_minute (dt),
+ g_date_time_get_seconds (dt));
+ i_cal_time_set_is_date (idt,
+ i_cal_time_get_hour (idt) == 0 &&
+ i_cal_time_get_minute (idt) == 0 &&
+ i_cal_time_get_second (idt) == 0);
- comp_dt.value = idt;
+ comp_dt = e_cal_component_datetime_new_take (idt, g_strdup ("UTC"));
- e_cal_component_set_due (self->component, &comp_dt);
+ e_cal_component_set_due (self->component, comp_dt);
- e_cal_component_free_datetime (&comp_dt);
+ e_cal_component_datetime_free (comp_dt);
g_date_time_unref (dt);
}
else if (!dt)
{
- idt = NULL;
- comp_dt.tzid = NULL;
-
e_cal_component_set_due (self->component, NULL);
}
}
@@ -369,19 +369,13 @@ gtd_task_eds_set_due_date (GtdTask *task,
static gint32
gtd_task_eds_get_priority (GtdTask *task)
{
- g_autofree gint *priority = NULL;
GtdTaskEds *self;
g_assert (GTD_IS_TASK_EDS (task));
self = GTD_TASK_EDS (task);
- e_cal_component_get_priority (self->component, &priority);
-
- if (!priority)
- return -1;
-
- return *priority;
+ return e_cal_component_get_priority (self->component);
}
static void
@@ -394,29 +388,26 @@ gtd_task_eds_set_priority (GtdTask *task,
self = GTD_TASK_EDS (task);
- e_cal_component_set_priority (self->component, &priority);
+ e_cal_component_set_priority (self->component, priority);
}
static const gchar*
gtd_task_eds_get_title (GtdTask *task)
{
- ECalComponentText summary;
GtdTaskEds *self;
g_return_val_if_fail (GTD_IS_TASK_EDS (task), NULL);
self = GTD_TASK_EDS (task);
- e_cal_component_get_summary (self->component, &summary);
-
- return summary.value;
+ return i_cal_component_get_summary (e_cal_component_get_icalcomponent (self->component));
}
static void
gtd_task_eds_set_title (GtdTask *task,
const gchar *title)
{
- ECalComponentText new_summary;
+ ECalComponentText *new_summary;
GtdTaskEds *self;
g_return_if_fail (GTD_IS_TASK_EDS (task));
@@ -424,10 +415,11 @@ gtd_task_eds_set_title (GtdTask *task,
self = GTD_TASK_EDS (task);
- new_summary.value = title;
- new_summary.altrep = NULL;
+ new_summary = e_cal_component_text_new (title, NULL);
- e_cal_component_set_summary (self->component, &new_summary);
+ e_cal_component_set_summary (self->component, new_summary);
+
+ e_cal_component_text_free (new_summary);
}
@@ -436,10 +428,10 @@ gtd_task_eds_subtask_added (GtdTask *task,
GtdTask *subtask)
{
g_autoptr (GList) subtasks = NULL;
- ECalComponentId *id;
+ const gchar *uid;
ECalComponent *comp;
- icalcomponent *ical_comp;
- icalproperty *property;
+ ICalComponent *ical_comp;
+ ICalProperty *property;
GtdTaskEds *subtask_self;
GtdTaskEds *self;
@@ -450,17 +442,17 @@ gtd_task_eds_subtask_added (GtdTask *task,
/* Hook with parent's :subtask_added */
GTD_TASK_CLASS (gtd_task_eds_parent_class)->subtask_added (task, subtask);
- id = e_cal_component_get_id (self->component);
+ uid = e_cal_component_get_uid (self->component);
comp = subtask_self->component;
ical_comp = e_cal_component_get_icalcomponent (comp);
- property = icalcomponent_get_first_property (ical_comp, ICAL_RELATEDTO_PROPERTY);
+ property = i_cal_component_get_first_property (ical_comp, I_CAL_RELATEDTO_PROPERTY);
if (property)
- icalproperty_set_relatedto (property, id->uid);
+ i_cal_property_set_relatedto (property, uid);
else
- icalcomponent_add_property (ical_comp, icalproperty_new_relatedto (id->uid));
+ i_cal_component_take_property (ical_comp, i_cal_property_new_relatedto (uid));
- e_cal_component_free_id (id);
+ g_clear_object (&property);
}
static void
@@ -468,8 +460,8 @@ gtd_task_eds_subtask_removed (GtdTask *task,
GtdTask *subtask)
{
g_autoptr (GList) subtasks = NULL;
- icalcomponent *ical_comp;
- icalproperty *property;
+ ICalComponent *ical_comp;
+ ICalProperty *property;
GtdTaskEds *subtask_self;
subtask_self = GTD_TASK_EDS (subtask);
@@ -480,12 +472,13 @@ gtd_task_eds_subtask_removed (GtdTask *task,
/* Remove the parent link from the subtask's component */
ical_comp = e_cal_component_get_icalcomponent (subtask_self->component);
- property = icalcomponent_get_first_property (ical_comp, ICAL_RELATEDTO_PROPERTY);
+ property = i_cal_component_get_first_property (ical_comp, I_CAL_RELATEDTO_PROPERTY);
if (!property)
return;
- icalcomponent_remove_property (ical_comp, property);
+ i_cal_component_remove_property (ical_comp, property);
+ g_object_unref (property);
}
diff --git a/plugins/eds/gtd-task-list-eds.c b/plugins/eds/gtd-task-list-eds.c
index eb48a73..5b71718 100644
--- a/plugins/eds/gtd-task-list-eds.c
+++ b/plugins/eds/gtd-task-list-eds.c
@@ -85,19 +85,19 @@ setup_parent_task (GtdTaskListEds *self,
GtdTask *task)
{
ECalComponent *component;
- icalcomponent *ical_comp;
- icalproperty *property;
+ ICalComponent *ical_comp;
+ ICalProperty *property;
GtdTask *parent_task;
const gchar *parent_uid;
component = gtd_task_eds_get_component (GTD_TASK_EDS (task));
ical_comp = e_cal_component_get_icalcomponent (component);
- property = icalcomponent_get_first_property (ical_comp, ICAL_RELATEDTO_PROPERTY);
+ property = i_cal_component_get_first_property (ical_comp, I_CAL_RELATEDTO_PROPERTY);
if (!property)
return;
- parent_uid = icalproperty_get_relatedto (property);
+ parent_uid = i_cal_property_get_relatedto (property);
parent_task = gtd_task_list_get_task_by_id (GTD_TASK_LIST (self), parent_uid);
if (parent_task)
@@ -112,6 +112,8 @@ setup_parent_task (GtdTaskListEds *self,
g_ptr_array_add (self->pending_subtasks, data);
}
+
+ g_object_unref (property);
}
static void
@@ -161,8 +163,8 @@ on_view_objects_added_cb (ECalClientView *view,
GtdTask *task;
const gchar *uid;
- component = e_cal_component_new_from_string (icalcomponent_as_ical_string (l->data));
- e_cal_component_get_uid (component, &uid);
+ component = e_cal_component_new_from_icalcomponent (i_cal_component_clone (l->data));
+ uid = e_cal_component_get_uid (component);
task = gtd_task_list_get_task_by_id (self, uid);
@@ -211,8 +213,8 @@ on_view_objects_modified_cb (ECalClientView *view,
GtdTask *task;
const gchar *uid;
- component = e_cal_component_new_from_string (icalcomponent_as_ical_string (l->data));
- e_cal_component_get_uid (component, &uid);
+ component = e_cal_component_new_from_icalcomponent (i_cal_component_clone (l->data));
+ uid = e_cal_component_get_uid (component);
task = gtd_task_list_get_task_by_id (self, uid);
@@ -244,7 +246,7 @@ on_view_objects_removed_cb (ECalClientView *view,
GtdTask *task;
id = l->data;
- task = gtd_task_list_get_task_by_id (self, id->uid);
+ task = gtd_task_list_get_task_by_id (self, e_cal_component_id_get_uid (id));
if (!task)
continue;
diff --git a/plugins/eds/meson.build b/plugins/eds/meson.build
index ea84426..b37f0c6 100644
--- a/plugins/eds/meson.build
+++ b/plugins/eds/meson.build
@@ -8,10 +8,9 @@ plugins_ldflags += ['-Wl,--undefined=gtd_plugin_eds_register_types']
################
eds_plugin_deps = [
- dependency('libecal-1.2', version: '>= 3.13.90'),
+ dependency('libecal-2.0', version: '>= 3.33.1'),
dependency('libedataserver-1.2', version: '>= 3.17.1'),
dependency('libedataserverui-1.2', version: '>= 3.17.1'),
- dependency('libical', version: '>= 0.43'),
]
eds_plugin_deps += gnome_todo_deps

View file

@ -0,0 +1,11 @@
--- a/src/gui/gtd-window.ui
+++ b/src/gui/gtd-window.ui
@@ -20,7 +20,7 @@
<!-- Main leaflet -->
<child>
<object class="AdwLeaflet" id="content_box">
- <property name="can-swipe-back">true</property>
+ <property name="can-navigate-forward">true</property>
<property name="width-request">360</property>
<child>

View file

@ -1,19 +1,25 @@
# Template file for 'gnome-todo'
pkgname=gnome-todo
version=3.28.1
revision=7
version=41.0
revision=1
build_style=meson
build_helper="gir qemu"
build_helper="gir"
configure_args="-Dintrospection=$(vopt_if gir true false)"
hostmakedepends="glib-devel intltool itstool pkg-config
hostmakedepends="pkg-config glib-devel gettext itstool
$(vopt_if gir 'gobject-introspection')"
makedepends="evolution-data-server-devel libpeas-devel rest-devel"
makedepends="gtk4-devel libadwaita-devel gnome-online-accounts-devel
libpeas-devel libportal-devel evolution-data-server-devel"
short_desc="Task manager designed to perfectly fit the GNOME desktop"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later"
homepage="https://wiki.gnome.org/Apps/Todo"
distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz"
checksum=c7571fc040d8901dd0e528282ef0655687f23f29d304057c72548ab3e2c2cf23
checksum=5a657c978f451f61fb773f0b14f3121b9236fc504b41eb20940b4ed2004224e5
build_options="gir"
build_options_default="gir"
do_check() {
glib-compile-schemas data
GSETTINGS_SCHEMA_DIR=$wrksrc/data ninja -C build test
}