static void mail_shell_view_notify_view_id_cb (EMailShellView *mail_shell_view) { EMailShellContent *mail_shell_content; GalViewInstance *view_instance; EMailView *mail_view; const gchar *view_id; mail_shell_content = mail_shell_view->priv->mail_shell_content; mail_view = e_mail_shell_content_get_mail_view (mail_shell_content); view_instance = e_mail_view_get_view_instance (mail_view); view_id = e_shell_view_get_view_id (E_SHELL_VIEW (mail_shell_view)); /* A NULL view ID implies we're in a custom view. But you can * only get to a custom view via the "Define Views" dialog, which * would have already modified the view instance appropriately. * Furthermore, there's no way to refer to a custom view by ID * anyway, since custom views have no IDs. */ if (view_id == NULL) return; gal_view_instance_set_current_view_id (view_instance, view_id); }
static void mail_shell_view_show_search_results_folder (EMailShellView *mail_shell_view, CamelFolder *folder) { EMailShellContent *mail_shell_content; GtkWidget *message_list; EMailView *mail_view; EMailReader *reader; GalViewInstance *view_instance; mail_shell_content = mail_shell_view->priv->mail_shell_content; mail_view = e_mail_shell_content_get_mail_view (mail_shell_content); reader = E_MAIL_READER (mail_view); message_list = e_mail_reader_get_message_list (reader); message_list_freeze (MESSAGE_LIST (message_list)); e_mail_reader_set_folder (reader, folder); view_instance = e_mail_view_get_view_instance (mail_view); if (!view_instance || !gal_view_instance_exists (view_instance)) { ETree *tree; ETableState *state; ETableSpecification *specification; tree = E_TREE (message_list); specification = e_tree_get_spec (tree); state = e_table_state_new (specification); e_table_state_load_from_string (state, SEARCH_RESULTS_STATE); e_tree_set_state_object (tree, state); g_object_unref (state); } message_list_thaw (MESSAGE_LIST (message_list)); }