[evolution] I#190 - Meeting editor doesn't show addresses after open when set to



commit 15bab425d9e011f04eedcbeca7ff1af93b5e3fd1
Author: Milan Crha <mcrha redhat com>
Date:   Mon Mar 25 17:51:52 2019 +0100

    I#190 - Meeting editor doesn't show addresses after open when set to
    
    Closes https://gitlab.gnome.org/GNOME/evolution/issues/190

 src/calendar/gui/e-comp-editor-page-general.c | 13 +++++++++++++
 src/calendar/gui/e-meeting-store.c            | 28 ++++++++++-----------------
 2 files changed, 23 insertions(+), 18 deletions(-)
---
diff --git a/src/calendar/gui/e-comp-editor-page-general.c b/src/calendar/gui/e-comp-editor-page-general.c
index 538aee1802..90e881f519 100644
--- a/src/calendar/gui/e-comp-editor-page-general.c
+++ b/src/calendar/gui/e-comp-editor-page-general.c
@@ -497,6 +497,16 @@ ecep_general_attendee_row_changed_cb (GtkTreeModel *model,
        g_clear_object (&comp_editor);
 }
 
+static void
+ecep_general_attendee_show_address_notify_cb (GObject *store,
+                                             GParamSpec *param,
+                                             ECompEditorPageGeneral *page_general)
+{
+       if (gtk_widget_get_realized (GTK_WIDGET (page_general)) &&
+           gtk_widget_get_realized (page_general->priv->attendees_list_view))
+               gtk_widget_queue_draw (page_general->priv->attendees_list_view);
+}
+
 static gboolean
 ecep_general_get_organizer (ECompEditorPageGeneral *page_general,
                            gchar **out_name,
@@ -1500,6 +1510,9 @@ ecep_general_constructed (GObject *object)
        g_signal_connect (page_general->priv->meeting_store, "row-changed",
                G_CALLBACK (ecep_general_attendee_row_changed_cb), page_general);
 
+       e_signal_connect_notify (page_general->priv->meeting_store, "notify::show-address",
+               G_CALLBACK (ecep_general_attendee_show_address_notify_cb), page_general);
+
        g_signal_connect (page_general->priv->attendees_list_view, "event",
                G_CALLBACK (ecep_general_list_view_event_cb), page_general);
 
diff --git a/src/calendar/gui/e-meeting-store.c b/src/calendar/gui/e-meeting-store.c
index a7e7b6e7e6..1d897f222b 100644
--- a/src/calendar/gui/e-meeting-store.c
+++ b/src/calendar/gui/e-meeting-store.c
@@ -740,6 +740,15 @@ meeting_store_get_property (GObject *object,
        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
 }
 
+static void
+meeting_store_constructed (GObject *object)
+{
+       /* Chain up to parent's method. */
+       G_OBJECT_CLASS (e_meeting_store_parent_class)->constructed (object);
+
+       e_extensible_load_extensions (E_EXTENSIBLE (object));
+}
+
 static void
 meeting_store_finalize (GObject *object)
 {
@@ -783,6 +792,7 @@ e_meeting_store_class_init (EMeetingStoreClass *class)
        object_class = G_OBJECT_CLASS (class);
        object_class->set_property = meeting_store_set_property;
        object_class->get_property = meeting_store_get_property;
+       object_class->constructed = meeting_store_constructed;
        object_class->finalize = meeting_store_finalize;
 
        g_object_class_install_property (
@@ -862,8 +872,6 @@ e_meeting_store_init (EMeetingStore *store)
        g_mutex_init (&store->priv->mutex);
 
        store->priv->num_queries = 0;
-
-       e_extensible_load_extensions (E_EXTENSIBLE (store));
 }
 
 GObject *
@@ -1003,9 +1011,6 @@ void
 e_meeting_store_set_show_address (EMeetingStore *store,
                                  gboolean show_address)
 {
-       GtkTreeModel *model;
-       guint ii;
-
        g_return_if_fail (E_IS_MEETING_STORE (store));
 
        if ((store->priv->show_address ? 1 : 0) == (show_address ? 1 : 0))
@@ -1013,19 +1018,6 @@ e_meeting_store_set_show_address (EMeetingStore *store,
 
        store->priv->show_address = show_address;
 
-       model = GTK_TREE_MODEL (store);
-
-       for (ii = 0; ii < store->priv->attendees->len; ii++) {
-               GtkTreePath *path;
-               GtkTreeIter iter;
-
-               path = gtk_tree_path_new ();
-               gtk_tree_path_append_index (path, ii);
-               get_iter (model, &iter, path);
-               gtk_tree_model_row_changed (model, path, &iter);
-               gtk_tree_path_free (path);
-       }
-
        g_object_notify (G_OBJECT (store), "show-address");
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]