[evolution] I#448 - Meeting Editor: Use toggle for the attendees' RSVP column
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] I#448 - Meeting Editor: Use toggle for the attendees' RSVP column
- Date: Tue, 28 May 2019 12:30:30 +0000 (UTC)
commit ac6cb993b02664184cc52fa101f6bb1c5b3e9f72
Author: Milan Crha <mcrha redhat com>
Date: Tue May 28 14:31:19 2019 +0200
I#448 - Meeting Editor: Use toggle for the attendees' RSVP column
Closes https://gitlab.gnome.org/GNOME/evolution/issues/448
src/calendar/gui/e-meeting-list-view.c | 36 ++++++++++----------------
src/calendar/gui/e-meeting-store.c | 47 ++++++++--------------------------
2 files changed, 24 insertions(+), 59 deletions(-)
---
diff --git a/src/calendar/gui/e-meeting-list-view.c b/src/calendar/gui/e-meeting-list-view.c
index 9c4ebbd669..48d5feabaa 100644
--- a/src/calendar/gui/e-meeting-list-view.c
+++ b/src/calendar/gui/e-meeting-list-view.c
@@ -199,17 +199,6 @@ get_role_strings (void)
return strings;
}
-static GList *
-get_rsvp_strings (void)
-{
- GList *strings = NULL;
-
- strings = g_list_append (strings, (gchar *) _("Yes"));
- strings = g_list_append (strings, (gchar *) _("No"));
-
- return strings;
-}
-
static GList *
get_status_strings (void)
{
@@ -542,12 +531,12 @@ role_edited_cb (GtkCellRenderer *renderer,
}
static void
-rsvp_edited_cb (GtkCellRenderer *renderer,
- const gchar *path,
- const gchar *text,
- GtkTreeView *view)
+rsvp_toggled_cb (GtkCellRendererToggle *renderer,
+ const gchar *path,
+ GtkTreeView *view)
{
- value_edited (view, E_MEETING_STORE_RSVP_COL, path, text);
+ value_edited (view, E_MEETING_STORE_RSVP_COL, path,
+ (!gtk_cell_renderer_toggle_get_active (renderer)) ? "1" : NULL);
}
static void
@@ -684,19 +673,19 @@ build_table (EMeetingListView *lview)
G_CALLBACK (role_edited_cb), view);
g_hash_table_insert (edit_table, GINT_TO_POINTER (E_MEETING_STORE_ROLE_COL), renderer);
- renderer = create_combo_cell_renderer (get_rsvp_strings ());
+ renderer = gtk_cell_renderer_toggle_new ();
pos = gtk_tree_view_insert_column_with_attributes (
/* To translators: RSVP means "please reply" */
view, -1, _("RSVP"), renderer,
- "text", E_MEETING_STORE_RSVP_COL,
+ "active", E_MEETING_STORE_RSVP_COL,
NULL);
col = gtk_tree_view_get_column (view, pos -1);
gtk_tree_view_column_set_resizable (col, TRUE);
gtk_tree_view_column_set_reorderable (col, TRUE);
g_object_set_data (G_OBJECT (col), "mtg-store-col", GINT_TO_POINTER (E_MEETING_STORE_RSVP_COL));
g_signal_connect (
- renderer, "edited",
- G_CALLBACK (rsvp_edited_cb), view);
+ renderer, "toggled",
+ G_CALLBACK (rsvp_toggled_cb), view);
g_hash_table_insert (edit_table, GINT_TO_POINTER (E_MEETING_STORE_RSVP_COL), renderer);
renderer = create_combo_cell_renderer (get_status_strings ());
@@ -737,7 +726,7 @@ change_edit_cols_for_user (gpointer key,
g_object_set (renderer, "editable", FALSE, NULL);
break;
case E_MEETING_STORE_RSVP_COL:
- g_object_set (renderer, "editable", TRUE, NULL);
+ g_object_set (renderer, "activatable", TRUE, NULL);
break;
case E_MEETING_STORE_STATUS_COL:
g_object_set (renderer, "editable", TRUE, NULL);
@@ -753,7 +742,10 @@ change_edit_cols_for_organizer (gpointer key,
GtkCellRenderer *renderer = (GtkCellRenderer *) value;
guint edit_level = GPOINTER_TO_INT (user_data);
- g_object_set (renderer, "editable", GINT_TO_POINTER (edit_level), NULL);
+ if (GTK_IS_CELL_RENDERER_TOGGLE (renderer))
+ g_object_set (renderer, "activatable", GINT_TO_POINTER (edit_level), NULL);
+ else
+ g_object_set (renderer, "editable", GINT_TO_POINTER (edit_level), NULL);
}
static void
diff --git a/src/calendar/gui/e-meeting-store.c b/src/calendar/gui/e-meeting-store.c
index 3a02fceb62..c3ba8cefc7 100644
--- a/src/calendar/gui/e-meeting-store.c
+++ b/src/calendar/gui/e-meeting-store.c
@@ -171,24 +171,6 @@ role_to_text (ICalParameterRole role)
}
}
-static gboolean
-text_to_boolean (const gchar *role)
-{
- if (!e_util_utf8_strcasecmp (role, _("Yes")))
- return TRUE;
- else
- return FALSE;
-}
-
-static gchar *
-boolean_to_text (gboolean b)
-{
- if (b)
- return _("Yes");
- else
- return _("No");
-}
-
static ICalParameterPartstat
text_to_partstat (const gchar *partstat)
{
@@ -261,7 +243,6 @@ get_column_type (GtkTreeModel *model,
case E_MEETING_STORE_MEMBER_COL:
case E_MEETING_STORE_TYPE_COL:
case E_MEETING_STORE_ROLE_COL:
- case E_MEETING_STORE_RSVP_COL:
case E_MEETING_STORE_DELTO_COL:
case E_MEETING_STORE_DELFROM_COL:
case E_MEETING_STORE_STATUS_COL:
@@ -269,6 +250,8 @@ get_column_type (GtkTreeModel *model,
case E_MEETING_STORE_LANGUAGE_COL:
case E_MEETING_STORE_ATTENDEE_COL:
return G_TYPE_STRING;
+ case E_MEETING_STORE_RSVP_COL:
+ return G_TYPE_BOOLEAN;
case E_MEETING_STORE_ATTENDEE_UNDERLINE_COL:
return PANGO_TYPE_UNDERLINE;
default:
@@ -363,10 +346,9 @@ get_value (GtkTreeModel *model,
e_meeting_attendee_get_role (attendee)));
break;
case E_MEETING_STORE_RSVP_COL:
- g_value_init (value, G_TYPE_STRING);
- g_value_set_string (
- value, boolean_to_text (
- e_meeting_attendee_get_rsvp (attendee)));
+ g_value_init (value, G_TYPE_BOOLEAN);
+ g_value_set_boolean (
+ value, e_meeting_attendee_get_rsvp (attendee));
break;
case E_MEETING_STORE_DELTO_COL:
g_value_init (value, G_TYPE_STRING);
@@ -562,7 +544,7 @@ e_meeting_store_set_value (EMeetingStore *store,
e_meeting_attendee_set_role (attendee, text_to_role (val));
break;
case E_MEETING_STORE_RSVP_COL:
- e_meeting_attendee_set_rsvp (attendee, text_to_boolean (val));
+ e_meeting_attendee_set_rsvp (attendee, val != NULL);
break;
case E_MEETING_STORE_DELTO_COL:
e_meeting_attendee_set_delto (attendee, val);
@@ -1081,29 +1063,20 @@ EMeetingAttendee *
e_meeting_store_add_attendee_with_defaults (EMeetingStore *store)
{
EMeetingAttendee *attendee;
- gchar *str;
attendee = E_MEETING_ATTENDEE (e_meeting_attendee_new ());
e_meeting_attendee_set_address (attendee, "");
e_meeting_attendee_set_member (attendee, "");
- str = g_strdup (_("Individual"));
- e_meeting_attendee_set_cutype (attendee, text_to_type (str));
- g_free (str);
- str = g_strdup (_("Required Participant"));
- e_meeting_attendee_set_role (attendee, text_to_role (str));
- g_free (str);
- str = g_strdup (_("Yes"));
- e_meeting_attendee_set_rsvp (attendee, text_to_boolean (str));
- g_free (str);
+ e_meeting_attendee_set_cutype (attendee, text_to_type (_("Individual")));
+ e_meeting_attendee_set_role (attendee, text_to_role (_("Required Participant")));
+ e_meeting_attendee_set_rsvp (attendee, TRUE);
e_meeting_attendee_set_delto (attendee, "");
e_meeting_attendee_set_delfrom (attendee, "");
- str = g_strdup (_("Needs Action"));
- e_meeting_attendee_set_partstat (attendee, text_to_partstat (str));
- g_free (str);
+ e_meeting_attendee_set_partstat (attendee, text_to_partstat (_("Needs Action")));
e_meeting_attendee_set_cn (attendee, "");
e_meeting_attendee_set_language (attendee, "en");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]