[evolution/wip/mcrha/eds-libical-glib] src/calendar/gui/ - table and list views
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/wip/mcrha/eds-libical-glib] src/calendar/gui/ - table and list views
- Date: Wed, 20 Mar 2019 17:50:15 +0000 (UTC)
commit 8beacbd4f3f75cd146b09f463c8bf8d279788c05
Author: Milan Crha <mcrha redhat com>
Date: Wed Mar 20 18:50:47 2019 +0100
src/calendar/gui/ - table and list views
src/calendar/gui/e-cal-list-view.c | 61 ++++++------
src/calendar/gui/e-cal-list-view.h | 20 +---
src/calendar/gui/e-date-time-list.c | 120 ++++++++++------------
src/calendar/gui/e-memo-table.c | 133 +++++++++++--------------
src/calendar/gui/e-memo-table.h | 6 --
src/calendar/gui/e-task-table.c | 193 +++++++++++++++++-------------------
src/calendar/gui/e-task-table.h | 6 --
7 files changed, 244 insertions(+), 295 deletions(-)
---
diff --git a/src/calendar/gui/e-cal-list-view.c b/src/calendar/gui/e-cal-list-view.c
index e1d210b13c..2c13250a6c 100644
--- a/src/calendar/gui/e-cal-list-view.c
+++ b/src/calendar/gui/e-cal-list-view.c
@@ -39,6 +39,14 @@
#include "calendar-config.h"
#include "misc.h"
+struct _ECalListViewPrivate {
+ /* The main display table */
+ ETable *table;
+
+ /* The last ECalendarViewEvent we returned from e_cal_list_view_get_selected_events(), to be freed */
+ ECalendarViewEvent *cursor_event;
+};
+
enum {
PROP_0,
PROP_IS_EDITING
@@ -93,6 +101,8 @@ e_cal_list_view_class_init (ECalListViewClass *class)
widget_class = (GtkWidgetClass *) class;
view_class = (ECalendarViewClass *) class;
+ g_type_class_add_private (class, sizeof (ECalListViewPrivate));
+
/* Method override */
object_class->dispose = e_cal_list_view_dispose;
object_class->get_property = e_cal_list_view_get_property;
@@ -112,9 +122,10 @@ e_cal_list_view_class_init (ECalListViewClass *class)
static void
e_cal_list_view_init (ECalListView *cal_list_view)
{
- cal_list_view->table = NULL;
- cal_list_view->cursor_event = NULL;
- cal_list_view->set_table_id = 0;
+ cal_list_view->priv = G_TYPE_INSTANCE_GET_PRIVATE (cal_list_view, E_TYPE_CAL_LIST_VIEW,
ECalListViewPrivate);
+
+ cal_list_view->priv->table = NULL;
+ cal_list_view->priv->cursor_event = NULL;
}
/* Returns the current time, for the ECellDateEdit items. */
@@ -211,7 +222,6 @@ setup_e_table (ECalListView *cal_list_view)
e_table_extras_add_cell (extras, "dateedit", popup_cell);
g_object_unref (popup_cell);
- cal_list_view->dates_cell = E_CELL_DATE_EDIT (popup_cell);
gtk_widget_hide (E_CELL_DATE_EDIT (popup_cell)->none_button);
@@ -287,7 +297,7 @@ setup_e_table (ECalListView *cal_list_view)
widget = e_table_new (E_TABLE_MODEL (model), extras, specification);
gtk_container_add (GTK_CONTAINER (container), widget);
- cal_list_view->table = E_TABLE (widget);
+ cal_list_view->priv->table = E_TABLE (widget);
gtk_widget_show (widget);
g_object_unref (specification);
@@ -296,27 +306,27 @@ setup_e_table (ECalListView *cal_list_view)
/* Connect signals */
g_signal_connect (
- cal_list_view->table, "double_click",
+ cal_list_view->priv->table, "double_click",
G_CALLBACK (e_cal_list_view_on_table_double_click),
cal_list_view);
g_signal_connect (
- cal_list_view->table, "right-click",
+ cal_list_view->priv->table, "right-click",
G_CALLBACK (e_cal_list_view_on_table_right_click),
cal_list_view);
g_signal_connect (
- cal_list_view->table, "key-press",
+ cal_list_view->priv->table, "key-press",
G_CALLBACK (e_cal_list_view_on_table_key_press),
cal_list_view);
g_signal_connect (
- cal_list_view->table, "white-space-event",
+ cal_list_view->priv->table, "white-space-event",
G_CALLBACK (e_cal_list_view_on_table_white_space_event),
cal_list_view);
g_signal_connect_after (
- cal_list_view->table, "cursor_change",
+ cal_list_view->priv->table, "cursor_change",
G_CALLBACK (e_cal_list_view_cursor_change_cb),
cal_list_view);
e_signal_connect_notify_after (
- cal_list_view->table, "notify::is-editing",
+ cal_list_view->priv->table, "notify::is-editing",
G_CALLBACK (e_cal_list_view_table_editing_changed_cb),
cal_list_view);
}
@@ -346,19 +356,14 @@ e_cal_list_view_dispose (GObject *object)
cal_list_view = E_CAL_LIST_VIEW (object);
- if (cal_list_view->set_table_id) {
- g_source_remove (cal_list_view->set_table_id);
- cal_list_view->set_table_id = 0;
- }
-
- if (cal_list_view->cursor_event) {
- g_free (cal_list_view->cursor_event);
- cal_list_view->cursor_event = NULL;
+ if (cal_list_view->priv->cursor_event) {
+ g_free (cal_list_view->priv->cursor_event);
+ cal_list_view->priv->cursor_event = NULL;
}
- if (cal_list_view->table) {
- gtk_widget_destroy (GTK_WIDGET (cal_list_view->table));
- cal_list_view->table = NULL;
+ if (cal_list_view->priv->table) {
+ gtk_widget_destroy (GTK_WIDGET (cal_list_view->priv->table));
+ cal_list_view->priv->table = NULL;
}
/* Chain up to parent's dispose() method. */
@@ -550,18 +555,18 @@ e_cal_list_view_get_selected_events (ECalendarView *cal_view)
GList *event_list = NULL;
gint cursor_row;
- if (E_CAL_LIST_VIEW (cal_view)->cursor_event) {
- g_free (E_CAL_LIST_VIEW (cal_view)->cursor_event);
- E_CAL_LIST_VIEW (cal_view)->cursor_event = NULL;
+ if (E_CAL_LIST_VIEW (cal_view)->priv->cursor_event) {
+ g_free (E_CAL_LIST_VIEW (cal_view)->priv->cursor_event);
+ E_CAL_LIST_VIEW (cal_view)->priv->cursor_event = NULL;
}
cursor_row = e_table_get_cursor_row (
- E_CAL_LIST_VIEW (cal_view)->table);
+ E_CAL_LIST_VIEW (cal_view)->priv->table);
if (cursor_row >= 0) {
ECalendarViewEvent *event;
- event = E_CAL_LIST_VIEW (cal_view)->cursor_event = g_new0 (ECalendarViewEvent, 1);
+ event = E_CAL_LIST_VIEW (cal_view)->priv->cursor_event = g_new0 (ECalendarViewEvent, 1);
event->comp_data =
e_cal_model_get_component_at (
e_calendar_view_get_model (cal_view),
@@ -666,5 +671,5 @@ e_cal_list_view_is_editing (ECalListView *eclv)
{
g_return_val_if_fail (E_IS_CAL_LIST_VIEW (eclv), FALSE);
- return eclv->table && e_table_is_editing (eclv->table);
+ return eclv->priv->table && e_table_is_editing (eclv->priv->table);
}
diff --git a/src/calendar/gui/e-cal-list-view.h b/src/calendar/gui/e-cal-list-view.h
index b8a6aaabb8..72973f7c99 100644
--- a/src/calendar/gui/e-cal-list-view.h
+++ b/src/calendar/gui/e-cal-list-view.h
@@ -55,26 +55,14 @@
G_BEGIN_DECLS
-typedef struct _ECalListView ECalListView;
-typedef struct _ECalListViewClass ECalListViewClass;
+typedef struct _ECalListView ECalListView;
+typedef struct _ECalListViewClass ECalListViewClass;
+typedef struct _ECalListViewPrivate ECalListViewPrivate;
struct _ECalListView {
ECalendarView parent;
- /* The main display table */
- ETable *table;
-
- /* The default category for new events */
- gchar *default_category;
-
- /* Date editing cell */
- ECellDateEdit *dates_cell;
-
- /* The last ECalendarViewEvent we returned from e_cal_list_view_get_selected_events(), to be freed */
- ECalendarViewEvent *cursor_event;
-
- /* Idle handler ID for setting a new ETableModel */
- gint set_table_id;
+ ECalListViewPrivate *priv;
};
struct _ECalListViewClass {
diff --git a/src/calendar/gui/e-date-time-list.c b/src/calendar/gui/e-date-time-list.c
index 681e0a2bcf..be469b1907 100644
--- a/src/calendar/gui/e-date-time-list.c
+++ b/src/calendar/gui/e-date-time-list.c
@@ -45,7 +45,7 @@ struct _EDateTimeListPrivate {
guint columns_dirty : 1;
gboolean use_24_hour_format;
- icaltimezone *zone;
+ ICalTimezone *zone;
};
enum {
@@ -63,28 +63,11 @@ G_DEFINE_TYPE_WITH_CODE (
G_IMPLEMENT_INTERFACE (
GTK_TYPE_TREE_MODEL, e_date_time_list_tree_model_init))
-static void
-free_datetime (struct icaltimetype *itt)
-{
- g_free (itt);
-}
-
-static struct icaltimetype *
-copy_datetime (const struct icaltimetype itt)
-{
- struct icaltimetype *itt_copy;
-
- itt_copy = g_new0 (struct icaltimetype, 1);
- *itt_copy = itt;
-
- return itt_copy;
-}
-
static gint
-compare_datetime (const struct icaltimetype *itt1,
- const struct icaltimetype *itt2)
+compare_datetime (const ICalTimetype *itt1,
+ const ICalTimetype *itt2)
{
- return icaltime_compare (*itt1, *itt2);
+ return i_cal_time_compare ((ICalTimetype *) itt1, (ICalTimetype *) itt2);
}
static void
@@ -155,39 +138,30 @@ row_updated (EDateTimeList *date_time_list,
/* Builds a static string out of an exception date */
static gchar *
get_exception_string (EDateTimeList *date_time_list,
- struct icaltimetype *itt)
+ ICalTimetype *itt)
{
static gchar buf[256];
- struct icaltimetype tt;
struct tm tmp_tm;
- icaltimezone *zone;
+ ICalTimetype *tt;
+ ICalTimezone *zone;
gboolean use_24_hour_format;
use_24_hour_format = e_date_time_list_get_use_24_hour_format (date_time_list);
zone = e_date_time_list_get_timezone (date_time_list);
- tt = *itt;
-
if (zone)
- tt = icaltime_convert_to_zone (tt, zone);
-
- tmp_tm.tm_year = tt.year - 1900;
- tmp_tm.tm_mon = tt.month - 1;
- tmp_tm.tm_mday = tt.day;
- tmp_tm.tm_hour = tt.hour;
- tmp_tm.tm_min = tt.minute;
- tmp_tm.tm_sec = tt.second;
- tmp_tm.tm_isdst = -1;
+ tt = i_cal_time_convert_to_zone (itt, zone);
+ else
+ tt = g_object_ref (itt);
- tmp_tm.tm_wday = time_day_of_week (
- tt.day,
- tt.month - 1,
- tt.year);
+ tmp_tm = icaltimetype_to_tm (tt);
e_time_format_date_and_time (
&tmp_tm, use_24_hour_format,
FALSE, FALSE, buf, sizeof (buf));
+ g_clear_object (&tt);
+
return buf;
}
@@ -238,6 +212,22 @@ date_time_list_get_property (GObject *object,
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
+static void
+date_time_list_finalize (GObject *object)
+{
+ EDateTimeList *date_time_list = E_DATE_TIME_LIST (object);
+
+ g_clear_object (&date_time_list->priv->zone);
+
+ g_warn_if_fail (date_time_list->priv->list == NULL);
+
+ g_list_free_full (date_time_list->priv->list, g_object_unref);
+ date_time_list->priv->list = NULL;
+
+ /* Chain up to parent's method. */
+ G_OBJECT_CLASS (e_date_time_list_parent_class)->finalize (object);
+}
+
static GtkTreeModelFlags
date_time_list_get_flags (GtkTreeModel *tree_model)
{
@@ -321,10 +311,10 @@ date_time_list_get_value (GtkTreeModel *tree_model,
gint column,
GValue *value)
{
- EDateTimeList *date_time_list = E_DATE_TIME_LIST (tree_model);
- struct icaltimetype *itt;
- GList *l;
- const gchar *str;
+ EDateTimeList *date_time_list = E_DATE_TIME_LIST (tree_model);
+ ICalTimetype *itt;
+ GList *link;
+ const gchar *str;
g_return_if_fail (E_IS_DATE_TIME_LIST (tree_model));
g_return_if_fail (column < E_DATE_TIME_LIST_NUM_COLUMNS);
@@ -336,8 +326,8 @@ date_time_list_get_value (GtkTreeModel *tree_model,
if (!date_time_list->priv->list)
return;
- l = iter->user_data;
- itt = l->data;
+ link = iter->user_data;
+ itt = link->data;
if (!itt)
return;
@@ -463,6 +453,7 @@ e_date_time_list_class_init (EDateTimeListClass *class)
object_class = G_OBJECT_CLASS (class);
object_class->set_property = date_time_list_set_property;
object_class->get_property = date_time_list_get_property;
+ object_class->finalize = date_time_list_finalize;
g_object_class_install_property (
object_class,
@@ -519,7 +510,7 @@ e_date_time_list_new (void)
return g_object_new (E_TYPE_DATE_TIME_LIST, NULL);
}
-struct icaltimetype *
+ICalTimetype *
e_date_time_list_get_date_time (EDateTimeList *date_time_list,
GtkTreeIter *iter)
{
@@ -531,15 +522,15 @@ e_date_time_list_get_date_time (EDateTimeList *date_time_list,
void
e_date_time_list_set_date_time (EDateTimeList *date_time_list,
GtkTreeIter *iter,
- const struct icaltimetype itt)
+ const ICalTimetype *itt)
{
- struct icaltimetype *itt_old;
+ ICalTimetype *itt_old;
g_return_if_fail (IS_VALID_ITER (date_time_list, iter));
itt_old = G_LIST (iter->user_data)->data;
- free_datetime (itt_old);
- G_LIST (iter->user_data)->data = copy_datetime (itt);
+ g_clear_object (&itt_old);
+ G_LIST (iter->user_data)->data = i_cal_timetype_new_clone (itt);
row_updated (date_time_list,
g_list_position (date_time_list->priv->list, G_LIST (iter->user_data)));
}
@@ -566,7 +557,7 @@ e_date_time_list_set_use_24_hour_format (EDateTimeList *date_time_list,
g_object_notify (G_OBJECT (date_time_list), "use-24-hour-format");
}
-icaltimezone *
+ICalTimezone *
e_date_time_list_get_timezone (EDateTimeList *date_time_list)
{
g_return_val_if_fail (E_IS_DATE_TIME_LIST (date_time_list), NULL);
@@ -576,14 +567,16 @@ e_date_time_list_get_timezone (EDateTimeList *date_time_list)
void
e_date_time_list_set_timezone (EDateTimeList *date_time_list,
- icaltimezone *zone)
+ const ICalTimezone *zone)
{
g_return_if_fail (E_IS_DATE_TIME_LIST (date_time_list));
if (date_time_list->priv->zone == zone)
return;
- date_time_list->priv->zone = zone;
+ g_clear_object (&date_time_list->priv->zone);
+ if (zone)
+ date_time_list->priv->zone = g_object_ref ((ICalTimezone *) zone);
g_object_notify (G_OBJECT (date_time_list), "timezone");
}
@@ -591,12 +584,13 @@ e_date_time_list_set_timezone (EDateTimeList *date_time_list,
void
e_date_time_list_append (EDateTimeList *date_time_list,
GtkTreeIter *iter,
- const struct icaltimetype itt)
+ const ICalTimetype *itt)
{
- g_return_if_fail (icaltime_is_valid_time (itt));
+ g_return_if_fail (itt != NULL);
+ g_return_if_fail (i_cal_time_is_valid_time ((ICalTimetype *) itt));
- if (g_list_find_custom (date_time_list->priv->list, &itt, (GCompareFunc) compare_datetime) == NULL) {
- date_time_list->priv->list = g_list_append (date_time_list->priv->list, copy_datetime (itt));
+ if (g_list_find_custom (date_time_list->priv->list, itt, (GCompareFunc) compare_datetime) == NULL) {
+ date_time_list->priv->list = g_list_append (date_time_list->priv->list,
i_cal_timetype_new_clone (itt));
row_added (date_time_list, g_list_length (date_time_list->priv->list) - 1);
}
@@ -610,12 +604,14 @@ void
e_date_time_list_remove (EDateTimeList *date_time_list,
GtkTreeIter *iter)
{
+ ICalTimetype *itt;
gint n;
g_return_if_fail (IS_VALID_ITER (date_time_list, iter));
n = g_list_position (date_time_list->priv->list, G_LIST (iter->user_data));
- free_datetime (G_LIST (iter->user_data)->data);
+ itt = G_LIST (iter->user_data)->data;
+ g_clear_object (&itt);
date_time_list->priv->list = g_list_delete_link (
date_time_list->priv->list, G_LIST (iter->user_data));
row_deleted (date_time_list, n);
@@ -624,14 +620,8 @@ e_date_time_list_remove (EDateTimeList *date_time_list,
void
e_date_time_list_clear (EDateTimeList *date_time_list)
{
- GList *l;
-
all_rows_deleted (date_time_list);
- for (l = date_time_list->priv->list; l; l = g_list_next (l)) {
- free_datetime (l->data);
- }
-
- g_list_free (date_time_list->priv->list);
+ g_list_free_full (date_time_list->priv->list, g_object_unref);
date_time_list->priv->list = NULL;
}
diff --git a/src/calendar/gui/e-memo-table.c b/src/calendar/gui/e-memo-table.c
index 9e43a67d7c..476a6ae777 100644
--- a/src/calendar/gui/e-memo-table.c
+++ b/src/calendar/gui/e-memo-table.c
@@ -39,6 +39,7 @@
#include "e-cal-ops.h"
#include "e-calendar-view.h"
#include "e-cell-date-edit-text.h"
+#include "itip-utils.h"
#include "print.h"
#include "misc.h"
@@ -50,6 +51,9 @@ struct _EMemoTablePrivate {
gpointer shell_view; /* weak pointer */
ECalModel *model;
+ /* Fields used for cut/copy/paste */
+ ICalComponent *tmp_vcal;
+
GtkTargetList *copy_target_list;
GtkTargetList *paste_target_list;
};
@@ -115,24 +119,20 @@ memo_table_get_current_time (ECellDateEdit *ecde,
{
EMemoTable *memo_table = user_data;
ECalModel *model;
- icaltimezone *zone;
- struct tm tmp_tm = { 0 };
- struct icaltimetype tt;
+ ICalTimezone *zone;
+ ICalTimetype *tt;
+ struct tm tmp_tm;
/* Get the current timezone. */
model = e_memo_table_get_model (memo_table);
zone = e_cal_model_get_timezone (model);
- tt = icaltime_from_timet_with_zone (time (NULL), FALSE, zone);
+ tt = i_cal_time_from_timet_with_zone (time (NULL), FALSE, zone);
/* Now copy it to the struct tm and return it. */
- tmp_tm.tm_year = tt.year - 1900;
- tmp_tm.tm_mon = tt.month - 1;
- tmp_tm.tm_mday = tt.day;
- tmp_tm.tm_hour = tt.hour;
- tmp_tm.tm_min = tt.minute;
- tmp_tm.tm_sec = tt.second;
- tmp_tm.tm_isdst = -1;
+ tmp_tm = icaltimetype_to_tm (tt);
+
+ g_clear_object (&tt);
return tmp_tm;
}
@@ -323,7 +323,6 @@ memo_table_constructed (GObject *object)
e_table_extras_add_cell (extras, "dateedit", popup_cell);
g_object_unref (popup_cell);
- memo_table->dates_cell = E_CELL_DATE_EDIT (popup_cell);
e_cell_date_edit_set_get_time_callback (
E_CELL_DATE_EDIT (popup_cell),
@@ -404,10 +403,9 @@ memo_table_query_tooltip (GtkWidget *widget,
gchar *tmp, *summary;
GString *tmp2;
ECalComponent *new_comp;
- ECalComponentOrganizer organizer;
- ECalComponentDateTime dtstart, dtdue;
- icalcomponent *clone;
- icaltimezone *zone, *default_zone;
+ ECalComponentOrganizer *organizer;
+ ECalComponentDateTime *dtstart, *dtdue;
+ ICalTimezone *zone, *default_zone;
GSList *desc, *p;
gint len;
ESelectionModel *esm;
@@ -436,12 +434,9 @@ memo_table_query_tooltip (GtkWidget *widget,
if (!comp_data || !comp_data->icalcomp)
return FALSE;
- new_comp = e_cal_component_new ();
- clone = icalcomponent_new_clone (comp_data->icalcomp);
- if (!e_cal_component_set_icalcomponent (new_comp, clone)) {
- g_object_unref (new_comp);
+ new_comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
+ if (!new_comp)
return FALSE;
- }
e_utils_get_theme_color (widget, "theme_selected_bg_color", E_UTILS_DEFAULT_THEME_SELECTED_BG_COLOR,
&sel_bg);
e_utils_get_theme_color (widget, "theme_selected_fg_color", E_UTILS_DEFAULT_THEME_SELECTED_FG_COLOR,
&sel_fg);
@@ -453,7 +448,7 @@ memo_table_query_tooltip (GtkWidget *widget,
summary = e_calendar_view_dup_component_summary (comp_data->client, comp_data->icalcomp);
if (!(summary && *summary)) {
g_free (summary);
- summary = g_Strdup (_("* No Summary *"));
+ summary = g_strdup (_("* No Summary *"));
}
l = gtk_label_new (NULL);
@@ -479,22 +474,22 @@ memo_table_query_tooltip (GtkWidget *widget,
gtk_box_pack_start (GTK_BOX (box), w, FALSE, FALSE, 0);
w = l;
- e_cal_component_get_organizer (new_comp, &organizer);
- if (organizer.cn) {
- gchar *ptr;
- ptr = strchr (organizer.value, ':');
+ organizer = e_cal_component_get_organizer (new_comp);
+ if (organizer && e_cal_component_organizer_get_cn (organizer)) {
+ const gchar *email;
+
+ email = itip_strip_mailto (e_cal_component_organizer_get_value (organizer));
- if (ptr) {
- ptr++;
+ if (email) {
tmp = g_strdup_printf (
/* Translators: It will display
* "Organizer: NameOfTheUser <email ofuser com>" */
- _("Organizer: %s <%s>"), organizer.cn, ptr);
+ _("Organizer: %s <%s>"), e_cal_component_organizer_get_cn (organizer), email);
} else {
/* With SunOne accounts, there may be no ':' in
* organizer.value */
tmp = g_strdup_printf (
- _("Organizer: %s"), organizer.cn);
+ _("Organizer: %s"), e_cal_component_organizer_get_cn (organizer));
}
l = gtk_label_new (tmp);
@@ -506,18 +501,20 @@ memo_table_query_tooltip (GtkWidget *widget,
gtk_widget_override_color (l, GTK_STATE_FLAG_NORMAL, &norm_text);
}
- e_cal_component_get_dtstart (new_comp, &dtstart);
- e_cal_component_get_due (new_comp, &dtdue);
+ e_cal_component_organizer_free (organizer);
+
+ dtstart = e_cal_component_get_dtstart (new_comp);
+ dtdue = e_cal_component_get_due (new_comp);
default_zone = e_cal_model_get_timezone (model);
- if (dtstart.tzid) {
- zone = icalcomponent_get_timezone (
+ if (dtstart && e_cal_component_datetime_get_tzid (dtstart)) {
+ zone = i_cal_component_get_timezone (
e_cal_component_get_icalcomponent (new_comp),
- dtstart.tzid);
+ e_cal_component_datetime_get_tzid (dtstart));
if (!zone)
e_cal_client_get_timezone_sync (
- comp_data->client, dtstart.tzid, &zone, NULL, NULL);
+ comp_data->client, e_cal_component_datetime_get_tzid (dtstart), &zone, NULL,
NULL);
if (!zone)
zone = default_zone;
} else {
@@ -526,12 +523,12 @@ memo_table_query_tooltip (GtkWidget *widget,
tmp2 = g_string_new ("");
- if (dtstart.value) {
+ if (dtstart && e_cal_component_datetime_get_value (dtstart)) {
gchar *str;
- tmp_tm = icaltimetype_to_tm_with_zone (dtstart.value, zone, default_zone);
+ tmp_tm = icaltimetype_to_tm_with_zone (e_cal_component_datetime_get_value (dtstart), zone,
default_zone);
str = e_datetime_format_format_tm ("calendar", "table",
- dtstart.value->is_date ? DTFormatKindDate : DTFormatKindDateTime,
+ i_cal_time_is_date (e_cal_component_datetime_get_value (dtstart)) ? DTFormatKindDate
: DTFormatKindDateTime,
&tmp_tm);
if (str && *str) {
@@ -543,12 +540,12 @@ memo_table_query_tooltip (GtkWidget *widget,
g_free (str);
}
- if (dtdue.value) {
+ if (dtdue && e_cal_component_datetime_get_value (dtdue)) {
gchar *str;
- tmp_tm = icaltimetype_to_tm_with_zone (dtdue.value, zone, default_zone);
+ tmp_tm = icaltimetype_to_tm_with_zone (e_cal_component_datetime_get_value (dtdue), zone,
default_zone);
str = e_datetime_format_format_tm ("calendar", "table",
- dtdue.value->is_date ? DTFormatKindDate : DTFormatKindDateTime,
+ i_cal_time_is_date (e_cal_component_datetime_get_value (dtdue)) ? DTFormatKindDate :
DTFormatKindDateTime,
&tmp_tm);
if (str && *str) {
@@ -573,25 +570,26 @@ memo_table_query_tooltip (GtkWidget *widget,
g_string_free (tmp2, TRUE);
- e_cal_component_free_datetime (&dtstart);
- e_cal_component_free_datetime (&dtdue);
+ e_cal_component_datetime_free (dtstart);
+ e_cal_component_datetime_free (dtdue);
tmp2 = g_string_new ("");
- e_cal_component_get_description_list (new_comp, &desc);
+ desc = e_cal_component_get_descriptions (new_comp);
for (len = 0, p = desc; p != NULL; p = p->next) {
ECalComponentText *text = p->data;
- if (text->value != NULL) {
- len += strlen (text->value);
- g_string_append (tmp2, text->value);
+ if (text && e_cal_component_text_get_value (text)) {
+ const gchar *value = e_cal_component_text_get_value (text);
+ len += strlen (value);
+ g_string_append (tmp2, value);
if (len > 1024) {
g_string_set_size (tmp2, 1020);
- g_string_append (tmp2, "...");
+ g_string_append (tmp2, "…");
break;
}
}
}
- e_cal_component_free_text_list (desc);
+ g_slist_free_full (desc, e_cal_component_text_free);
if (tmp2->len) {
l = gtk_label_new (tmp2->str);
@@ -813,12 +811,11 @@ copy_row_cb (gint model_row,
EMemoTable *memo_table;
ECalModelComponent *comp_data;
ECalModel *model;
- gchar *comp_str;
- icalcomponent *child;
+ ICalComponent *child;
memo_table = E_MEMO_TABLE (data);
- g_return_if_fail (memo_table->tmp_vcal != NULL);
+ g_return_if_fail (memo_table->priv->tmp_vcal != NULL);
model = e_memo_table_get_model (memo_table);
comp_data = e_cal_model_get_component_at (model, model_row);
@@ -827,18 +824,12 @@ copy_row_cb (gint model_row,
/* Add timezones to the VCALENDAR component. */
e_cal_util_add_timezones_from_component (
- memo_table->tmp_vcal, comp_data->icalcomp);
+ memo_table->priv->tmp_vcal, comp_data->icalcomp);
/* Add the new component to the VCALENDAR component. */
- comp_str = icalcomponent_as_ical_string_r (comp_data->icalcomp);
- child = icalparser_parse_string (comp_str);
- if (child) {
- icalcomponent_add_component (
- memo_table->tmp_vcal,
- icalcomponent_new_clone (child));
- icalcomponent_free (child);
- }
- g_free (comp_str);
+ child = i_cal_component_new_clone (comp_data->icalcomp);
+ if (child)
+ i_cal_component_take_component (memo_table->priv->tmp_vcal, child);
}
static void
@@ -851,11 +842,11 @@ memo_table_copy_clipboard (ESelectable *selectable)
memo_table = E_MEMO_TABLE (selectable);
/* Create a temporary VCALENDAR object. */
- memo_table->tmp_vcal = e_cal_util_new_top_level ();
+ memo_table->priv->tmp_vcal = e_cal_util_new_top_level ();
e_table_selected_row_foreach (
E_TABLE (memo_table), copy_row_cb, memo_table);
- comp_str = icalcomponent_as_ical_string_r (memo_table->tmp_vcal);
+ comp_str = i_cal_component_as_ical_string_r (memo_table->priv->tmp_vcal);
clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
e_clipboard_set_calendar (clipboard, comp_str, -1);
@@ -863,8 +854,7 @@ memo_table_copy_clipboard (ESelectable *selectable)
g_free (comp_str);
- icalcomponent_free (memo_table->tmp_vcal);
- memo_table->tmp_vcal = NULL;
+ g_clear_object (&memo_table->priv->tmp_vcal);
}
static void
@@ -971,9 +961,8 @@ memo_table_delete_selection (ESelectable *selectable)
/* FIXME: this may be something other than a TODO component */
if (comp_data) {
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (
- comp, icalcomponent_new_clone (comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (
+ i_cal_component_new_clone (comp_data->icalcomp));
}
if (e_cal_model_get_confirm_delete (model))
@@ -985,9 +974,7 @@ memo_table_delete_selection (ESelectable *selectable)
if (delete)
delete_selected_components (memo_table);
- /* free memory */
- if (comp)
- g_object_unref (comp);
+ g_clear_object (&comp);
}
static void
diff --git a/src/calendar/gui/e-memo-table.h b/src/calendar/gui/e-memo-table.h
index d01f0a8b45..3e8b7d1786 100644
--- a/src/calendar/gui/e-memo-table.h
+++ b/src/calendar/gui/e-memo-table.h
@@ -64,12 +64,6 @@ typedef struct _EMemoTablePrivate EMemoTablePrivate;
struct _EMemoTable {
ETable parent;
- /* The ECell used to view & edit dates. */
- ECellDateEdit *dates_cell;
-
- /* Fields used for cut/copy/paste */
- ICalComponent *tmp_vcal;
-
EMemoTablePrivate *priv;
};
diff --git a/src/calendar/gui/e-task-table.c b/src/calendar/gui/e-task-table.c
index bafb2f9c8e..3f150050b3 100644
--- a/src/calendar/gui/e-task-table.c
+++ b/src/calendar/gui/e-task-table.c
@@ -55,6 +55,9 @@ struct _ETaskTablePrivate {
ECalModel *model;
GCancellable *completed_cancellable; /* when processing completed tasks */
+ /* Fields used for cut/copy/paste */
+ ICalComponent *tmp_vcal;
+
GtkTargetList *copy_target_list;
GtkTargetList *paste_target_list;
@@ -270,7 +273,7 @@ task_table_dates_cell_before_popup_cb (ECellDateEdit *dates_cell,
model = e_task_table_get_model (task_table);
comp_data = e_cal_model_get_component_at (model, row);
- date_only = comp_data && comp_data->client && e_client_check_capability (E_CLIENT
(comp_data->client), CAL_STATIC_CAPABILITY_TASK_DATE_ONLY);
+ date_only = comp_data && comp_data->client && e_client_check_capability (E_CLIENT
(comp_data->client), E_CAL_STATIC_CAPABILITY_TASK_DATE_ONLY);
g_object_set (G_OBJECT (dates_cell), "show-time", !date_only, NULL);
}
@@ -490,13 +493,12 @@ task_table_constructed (GObject *object)
G_BINDING_SYNC_CREATE);
e_table_extras_add_cell (extras, "dateedit", popup_cell);
- g_object_unref (popup_cell);
-
- task_table->dates_cell = E_CELL_DATE_EDIT (popup_cell);
- g_signal_connect (task_table->dates_cell, "before-popup",
+ g_signal_connect (popup_cell, "before-popup",
G_CALLBACK (task_table_dates_cell_before_popup_cb), task_table);
+ g_object_unref (popup_cell);
+
e_cell_date_edit_set_get_time_callback (
E_CELL_DATE_EDIT (popup_cell),
e_task_table_get_current_time, task_table, NULL);
@@ -713,10 +715,10 @@ task_table_popup_menu (GtkWidget *widget)
static gboolean
task_table_query_tooltip (GtkWidget *widget,
- gint x,
- gint y,
- gboolean keyboard_mode,
- GtkTooltip *tooltip)
+ gint x,
+ gint y,
+ gboolean keyboard_mode,
+ GtkTooltip *tooltip)
{
ETaskTable *task_table;
ECalModel *model;
@@ -724,14 +726,12 @@ task_table_query_tooltip (GtkWidget *widget,
gint row = -1, col = -1, row_y = -1, row_height = -1;
GtkWidget *box, *l, *w;
GdkRGBA sel_bg, sel_fg, norm_bg, norm_text;
- gchar *tmp, *summary;
- const gchar *str;
+ gchar *tmp, *summary, *str;
GString *tmp2;
ECalComponent *new_comp;
- ECalComponentOrganizer organizer;
- ECalComponentDateTime dtstart, dtdue;
- icalcomponent *clone;
- icaltimezone *zone, *default_zone;
+ ECalComponentOrganizer *organizer;
+ ECalComponentDateTime *dtstart, *dtdue;
+ ICalTimezone *zone, *default_zone;
GSList *desc, *p;
gint len;
ESelectionModel *esm;
@@ -758,12 +758,9 @@ task_table_query_tooltip (GtkWidget *widget,
if (!comp_data || !comp_data->icalcomp)
return FALSE;
- new_comp = e_cal_component_new ();
- clone = icalcomponent_new_clone (comp_data->icalcomp);
- if (!e_cal_component_set_icalcomponent (new_comp, clone)) {
- g_object_unref (new_comp);
+ new_comp = e_cal_component_new_from_icalcomponent (i_cal_component_new_clone (comp_data->icalcomp));
+ if (!new_comp)
return FALSE;
- }
e_utils_get_theme_color (widget, "theme_selected_bg_color", E_UTILS_DEFAULT_THEME_SELECTED_BG_COLOR,
&sel_bg);
e_utils_get_theme_color (widget, "theme_selected_fg_color", E_UTILS_DEFAULT_THEME_SELECTED_FG_COLOR,
&sel_fg);
@@ -801,20 +798,20 @@ task_table_query_tooltip (GtkWidget *widget,
gtk_box_pack_start (GTK_BOX (box), w, FALSE, FALSE, 0);
w = l;
- e_cal_component_get_organizer (new_comp, &organizer);
- if (organizer.cn) {
- gchar *ptr;
- ptr = strchr (organizer.value, ':');
+ organizer = e_cal_component_get_organizer (new_comp);
+ if (organizer && e_cal_component_organizer_get_cn (organizer)) {
+ const gchar *email;
+
+ email = itip_strip_mailto (e_cal_component_organizer_get_value (organizer));
- if (ptr) {
- ptr++;
+ if (email) {
/* To Translators: It will display
* "Organizer: NameOfTheUser <email ofuser com>" */
- tmp = g_strdup_printf (_("Organizer: %s <%s>"), organizer.cn, ptr);
+ tmp = g_strdup_printf (_("Organizer: %s <%s>"), e_cal_component_organizer_get_cn
(organizer), email);
} else {
/* With SunOne accounts, there may be no ':' in
* organizer.value. */
- tmp = g_strdup_printf (_("Organizer: %s"), organizer.cn);
+ tmp = g_strdup_printf (_("Organizer: %s"), e_cal_component_organizer_get_cn
(organizer));
}
l = gtk_label_new (tmp);
@@ -826,7 +823,9 @@ task_table_query_tooltip (GtkWidget *widget,
gtk_widget_override_color (l, GTK_STATE_FLAG_NORMAL, &norm_text);
}
- e_cal_component_get_location (new_comp, &str);
+ e_cal_component_organizer_free (organizer);
+
+ str = e_cal_component_get_location (new_comp);
if (str) {
/* Translators: It will display "Location: PlaceOfTheMeeting" */
@@ -839,20 +838,21 @@ task_table_query_tooltip (GtkWidget *widget,
gtk_label_set_max_width_chars ((GtkLabel *) l, 80);
gtk_box_pack_start (GTK_BOX (w), l, FALSE, FALSE, 0);
g_free (tmp);
+ g_free (str);
}
- e_cal_component_get_dtstart (new_comp, &dtstart);
- e_cal_component_get_due (new_comp, &dtdue);
+ dtstart = e_cal_component_get_dtstart (new_comp);
+ dtdue = e_cal_component_get_due (new_comp);
default_zone = e_cal_model_get_timezone (model);
- if (dtstart.tzid) {
- zone = icalcomponent_get_timezone (
+ if (dtstart && e_cal_component_datetime_get_tzid (dtstart)) {
+ zone = i_cal_component_get_timezone (
e_cal_component_get_icalcomponent (new_comp),
- dtstart.tzid);
+ e_cal_component_datetime_get_tzid (dtstart));
if (!zone)
e_cal_client_get_timezone_sync (
- comp_data->client, dtstart.tzid, &zone, NULL, NULL);
+ comp_data->client, e_cal_component_datetime_get_tzid (dtstart), &zone, NULL,
NULL);
if (!zone)
zone = default_zone;
} else {
@@ -861,12 +861,12 @@ task_table_query_tooltip (GtkWidget *widget,
tmp2 = g_string_new ("");
- if (dtstart.value) {
+ if (dtstart && e_cal_component_datetime_get_value (dtstart)) {
gchar *str;
- tmp_tm = icaltimetype_to_tm_with_zone (dtstart.value, zone, default_zone);
+ tmp_tm = icaltimetype_to_tm_with_zone (e_cal_component_datetime_get_value (dtstart), zone,
default_zone);
str = e_datetime_format_format_tm ("calendar", "table",
- dtstart.value->is_date ? DTFormatKindDate : DTFormatKindDateTime,
+ i_cal_time_is_date (e_cal_component_datetime_get_value (dtstart)) ? DTFormatKindDate
: DTFormatKindDateTime,
&tmp_tm);
if (str && *str) {
@@ -877,12 +877,12 @@ task_table_query_tooltip (GtkWidget *widget,
g_free (str);
}
- if (dtdue.value) {
+ if (dtdue && e_cal_component_datetime_get_value (dtdue)) {
gchar *str;
- tmp_tm = icaltimetype_to_tm_with_zone (dtdue.value, zone, default_zone);
+ tmp_tm = icaltimetype_to_tm_with_zone (e_cal_component_datetime_get_value (dtdue), zone,
default_zone);
str = e_datetime_format_format_tm ("calendar", "table",
- dtdue.value->is_date ? DTFormatKindDate : DTFormatKindDateTime,
+ i_cal_time_is_date (e_cal_component_datetime_get_value (dtdue)) ? DTFormatKindDate :
DTFormatKindDateTime,
&tmp_tm);
if (str && *str) {
@@ -906,8 +906,8 @@ task_table_query_tooltip (GtkWidget *widget,
g_string_free (tmp2, TRUE);
- e_cal_component_free_datetime (&dtstart);
- e_cal_component_free_datetime (&dtdue);
+ e_cal_component_datetime_free (dtstart);
+ e_cal_component_datetime_free (dtdue);
tmp = e_cal_model_get_attendees_status_info (
model, new_comp, comp_data->client);
@@ -934,13 +934,13 @@ task_table_query_tooltip (GtkWidget *widget,
}
tmp2 = g_string_new ("");
- e_cal_component_get_description_list (new_comp, &desc);
+ desc = e_cal_component_get_descriptions (new_comp);
for (len = 0, p = desc; p != NULL; p = p->next) {
ECalComponentText *text = p->data;
- if (text->value != NULL) {
- len += strlen (text->value);
- g_string_append (tmp2, text->value);
+ if (text && e_cal_component_text_get_value (text)) {
+ len += strlen (e_cal_component_text_get_value (text));
+ g_string_append (tmp2, e_cal_component_text_get_value (text));
if (len > 1024) {
g_string_set_size (tmp2, 1020);
g_string_append (tmp2, "...");
@@ -948,7 +948,7 @@ task_table_query_tooltip (GtkWidget *widget,
}
}
}
- e_cal_component_free_text_list (desc);
+ g_slist_free_full (desc, e_cal_component_text_free);
if (tmp2->len) {
l = gtk_label_new (tmp2->str);
@@ -1174,12 +1174,11 @@ copy_row_cb (gint model_row,
ETaskTable *task_table;
ECalModelComponent *comp_data;
ECalModel *model;
- gchar *comp_str;
- icalcomponent *child;
+ ICalComponent *child;
task_table = E_TASK_TABLE (data);
- g_return_if_fail (task_table->tmp_vcal != NULL);
+ g_return_if_fail (task_table->priv->tmp_vcal != NULL);
model = e_task_table_get_model (task_table);
comp_data = e_cal_model_get_component_at (model, model_row);
@@ -1188,18 +1187,13 @@ copy_row_cb (gint model_row,
/* Add timezones to the VCALENDAR component. */
e_cal_util_add_timezones_from_component (
- task_table->tmp_vcal, comp_data->icalcomp);
+ task_table->priv->tmp_vcal, comp_data->icalcomp);
/* Add the new component to the VCALENDAR component. */
- comp_str = icalcomponent_as_ical_string_r (comp_data->icalcomp);
- child = icalparser_parse_string (comp_str);
+ child = i_cal_component_new_clone (comp_data->icalcomp);
if (child) {
- icalcomponent_add_component (
- task_table->tmp_vcal,
- icalcomponent_new_clone (child));
- icalcomponent_free (child);
+ i_cal_component_take_component (task_table->priv->tmp_vcal, child);
}
- g_free (comp_str);
}
static void
@@ -1212,11 +1206,11 @@ task_table_copy_clipboard (ESelectable *selectable)
task_table = E_TASK_TABLE (selectable);
/* Create a temporary VCALENDAR object. */
- task_table->tmp_vcal = e_cal_util_new_top_level ();
+ task_table->priv->tmp_vcal = e_cal_util_new_top_level ();
e_table_selected_row_foreach (
E_TABLE (task_table), copy_row_cb, task_table);
- comp_str = icalcomponent_as_ical_string_r (task_table->tmp_vcal);
+ comp_str = i_cal_component_as_ical_string_r (task_table->priv->tmp_vcal);
clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
e_clipboard_set_calendar (clipboard, comp_str, -1);
@@ -1224,8 +1218,7 @@ task_table_copy_clipboard (ESelectable *selectable)
g_free (comp_str);
- icalcomponent_free (task_table->tmp_vcal);
- task_table->tmp_vcal = NULL;
+ g_clear_object (&task_table->priv->tmp_vcal);
}
/* Helper for calenable_table_paste_clipboard() */
@@ -1321,23 +1314,23 @@ static void
add_retract_data (ECalComponent *comp,
const gchar *retract_comment)
{
- icalcomponent *icalcomp = NULL;
- icalproperty *icalprop = NULL;
+ ICalComponent *icomp = NULL;
+ ICalProperty *prop = NULL;
- icalcomp = e_cal_component_get_icalcomponent (comp);
+ icomp = e_cal_component_get_icalcomponent (comp);
if (retract_comment && *retract_comment)
- icalprop = icalproperty_new_x (retract_comment);
+ prop = i_cal_property_new_x (retract_comment);
else
- icalprop = icalproperty_new_x ("0");
- icalproperty_set_x_name (icalprop, "X-EVOLUTION-RETRACT-COMMENT");
- icalcomponent_add_property (icalcomp, icalprop);
+ prop = i_cal_property_new_x ("0");
+ i_cal_property_set_x_name (prop, "X-EVOLUTION-RETRACT-COMMENT");
+ i_cal_component_take_property (icomp, prop);
}
static gboolean
check_for_retract (ECalComponent *comp,
ECalClient *client)
{
- ECalComponentOrganizer org;
+ ECalComponentOrganizer *org;
gchar *email = NULL;
const gchar *strip = NULL;
gboolean ret_val;
@@ -1348,15 +1341,21 @@ check_for_retract (ECalComponent *comp,
if (!e_cal_client_check_save_schedules (client))
return FALSE;
- e_cal_component_get_organizer (comp, &org);
- strip = itip_strip_mailto (org.value);
+ org = e_cal_component_get_organizer (comp);
+ strip = org ? itip_strip_mailto (e_cal_component_organizer_get_value (org)) : NULL;
+
+ if (!strip || !*strip) {
+ e_cal_component_organizer_free (org);
+ return FALSE;
+ }
ret_val = e_client_get_backend_property_sync (
E_CLIENT (client),
- CAL_BACKEND_PROPERTY_CAL_EMAIL_ADDRESS,
+ E_CAL_BACKEND_PROPERTY_CAL_EMAIL_ADDRESS,
&email, NULL, NULL) && email != NULL &&
g_ascii_strcasecmp (email, strip) == 0;
+ e_cal_component_organizer_free (org);
g_free (email);
return ret_val;
@@ -1387,9 +1386,8 @@ task_table_delete_selection (ESelectable *selectable)
/* FIXME: this may be something other than a TODO component */
if (comp_data) {
- comp = e_cal_component_new ();
- e_cal_component_set_icalcomponent (
- comp, icalcomponent_new_clone (comp_data->icalcomp));
+ comp = e_cal_component_new_from_icalcomponent (
+ i_cal_component_new_clone (comp_data->icalcomp));
}
if ((n_selected == 1) && comp && check_for_retract (comp, comp_data->client)) {
@@ -1398,13 +1396,13 @@ task_table_delete_selection (ESelectable *selectable)
delete = e_cal_dialogs_prompt_retract (GTK_WIDGET (task_table), comp, &retract_comment,
&retract);
if (retract) {
- icalcomponent *icalcomp = NULL;
+ ICalComponent *icomp;
add_retract_data (comp, retract_comment);
- icalcomp = e_cal_component_get_icalcomponent (comp);
- icalcomponent_set_method (icalcomp, ICAL_METHOD_CANCEL);
+ icomp = e_cal_component_get_icalcomponent (comp);
+ i_cal_component_set_method (icomp, I_CAL_METHOD_CANCEL);
- e_cal_ops_send_component (model, comp_data->client, icalcomp);
+ e_cal_ops_send_component (model, comp_data->client, icomp);
}
g_free (retract_comment);
@@ -1417,9 +1415,7 @@ task_table_delete_selection (ESelectable *selectable)
if (delete)
delete_selected_components (task_table);
- /* free memory */
- if (comp)
- g_object_unref (comp);
+ g_clear_object (&comp);
}
static void
@@ -1704,7 +1700,7 @@ hide_completed_rows_ready (GObject *source_object,
ECalComponent *comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (
- comp, icalcomponent_new_clone (m->data));
+ comp, i_cal_component_new_clone (m->data));
id = e_cal_component_get_id (comp);
comp_data = e_cal_model_get_component_for_client_and_uid (model, cal_client, id);
@@ -1718,7 +1714,7 @@ hide_completed_rows_ready (GObject *source_object,
E_TABLE_MODEL (model), pos);
changed = TRUE;
}
- e_cal_component_free_id (id);
+ e_cal_component_id_free (id);
g_object_unref (comp);
}
@@ -1775,7 +1771,7 @@ show_completed_rows_ready (GObject *source_object,
ECalComponent *comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (
- comp, icalcomponent_new_clone (m->data));
+ comp, i_cal_component_new_clone (m->data));
id = e_cal_component_get_id (comp);
if (!(e_cal_model_get_component_for_client_and_uid (model, cal_client, id))) {
@@ -1784,7 +1780,7 @@ show_completed_rows_ready (GObject *source_object,
E_TYPE_CAL_MODEL_COMPONENT, NULL);
comp_data->client = g_object_ref (cal_client);
comp_data->icalcomp =
- icalcomponent_new_clone (m->data);
+ i_cal_component_new_clone (m->data);
e_cal_model_set_instance_times (
comp_data,
e_cal_model_get_timezone (model));
@@ -1799,7 +1795,7 @@ show_completed_rows_ready (GObject *source_object,
E_TABLE_MODEL (model),
comp_objects->len - 1);
}
- e_cal_component_free_id (id);
+ e_cal_component_id_free (id);
g_object_unref (comp);
}
@@ -1815,24 +1811,19 @@ e_task_table_get_current_time (ECellDateEdit *ecde,
{
ETaskTable *task_table = data;
ECalModel *model;
- icaltimezone *zone;
- struct tm tmp_tm = { 0 };
- struct icaltimetype tt;
+ ICalTimezone *zone;
+ ICalTimetype *tt;
+ struct tm tmp_tm;
/* Get the current timezone. */
model = e_task_table_get_model (task_table);
zone = e_cal_model_get_timezone (model);
- tt = icaltime_from_timet_with_zone (time (NULL), FALSE, zone);
+ tt = i_cal_time_from_timet_with_zone (time (NULL), FALSE, zone);
+
+ tmp_tm = icaltimetype_to_tm (tt);
- /* Now copy it to the struct tm and return it. */
- tmp_tm.tm_year = tt.year - 1900;
- tmp_tm.tm_mon = tt.month - 1;
- tmp_tm.tm_mday = tt.day;
- tmp_tm.tm_hour = tt.hour;
- tmp_tm.tm_min = tt.minute;
- tmp_tm.tm_sec = tt.second;
- tmp_tm.tm_isdst = -1;
+ g_clear_object (&tt);
return tmp_tm;
}
diff --git a/src/calendar/gui/e-task-table.h b/src/calendar/gui/e-task-table.h
index 72995878e8..f87517183d 100644
--- a/src/calendar/gui/e-task-table.h
+++ b/src/calendar/gui/e-task-table.h
@@ -62,12 +62,6 @@ typedef struct _ETaskTablePrivate ETaskTablePrivate;
struct _ETaskTable {
ETable parent;
- /* The ECell used to view & edit dates. */
- ECellDateEdit *dates_cell;
-
- /* Fields used for cut/copy/paste */
- ICalComponent *tmp_vcal;
-
ETaskTablePrivate *priv;
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]