From 31b5261fdbe2c98e7f4f71e908e5d9b58609de94 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 4 Jul 2013 11:04:51 -0400 Subject: EShellView: Add a "view-instance" property. EShellView now holds a reference to the active GalViewInstance. Where applicable, the EShellView subclass is responsible for keeping this up to date when the sidebar selection changes. Holding a reference allows EShellView to implement common actions like "Save Current View" directly instead pushing it on to subclasses. New functions: e_shell_view_get_view_instance e_shell_view_set_view_instance --- addressbook/gui/widgets/e-addressbook-view.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'addressbook/gui') diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c index 763ff87268..3d13a54e14 100644 --- a/addressbook/gui/widgets/e-addressbook-view.c +++ b/addressbook/gui/widgets/e-addressbook-view.c @@ -392,9 +392,11 @@ addressbook_view_create_minicard_view (EAddressbookView *view, } static void -addressbook_view_display_view_cb (EAddressbookView *view, - GalView *gal_view) +addressbook_view_display_view_cb (GalViewInstance *view_instance, + GalView *gal_view, + EAddressbookView *view) { + EShellView *shell_view; GtkWidget *child; child = gtk_bin_get_child (GTK_BIN (view)); @@ -409,6 +411,9 @@ addressbook_view_display_view_cb (EAddressbookView *view, addressbook_view_create_minicard_view ( view, GAL_VIEW_MINICARD (gal_view)); + shell_view = e_addressbook_view_get_shell_view (view); + e_shell_view_set_view_instance (shell_view, view_instance); + command_state_change (view); } @@ -592,7 +597,7 @@ addressbook_view_constructed (GObject *object) view->priv->model = e_addressbook_model_new (client_cache); view_instance = e_shell_view_new_view_instance (shell_view, uid); - g_signal_connect_swapped ( + g_signal_connect ( view_instance, "display-view", G_CALLBACK (addressbook_view_display_view_cb), view); view->priv->view_instance = view_instance; -- cgit v1.2.3