evolution r37011 - in branches/kill-bonobo: mail widgets/table



Author: mbarnes
Date: Wed Jan  7 21:27:06 2009
New Revision: 37011
URL: http://svn.gnome.org/viewvc/evolution?rev=37011&view=rev

Log:
Fix some miscellaneous mailer bugs.


Modified:
   branches/kill-bonobo/mail/e-mail-reader.c
   branches/kill-bonobo/mail/e-mail-reader.h
   branches/kill-bonobo/mail/e-mail-shell-content.c
   branches/kill-bonobo/mail/e-mail-shell-view-actions.c
   branches/kill-bonobo/mail/em-folder-browser.c
   branches/kill-bonobo/mail/evolution-mail.schemas.in
   branches/kill-bonobo/widgets/table/e-table-header-item.c

Modified: branches/kill-bonobo/mail/e-mail-reader.c
==============================================================================
--- branches/kill-bonobo/mail/e-mail-reader.c	(original)
+++ branches/kill-bonobo/mail/e-mail-reader.c	Wed Jan  7 21:27:06 2009
@@ -548,7 +548,6 @@
 action_mail_message_open_cb (GtkAction *action,
                              EMailReader *reader)
 {
-	/* FIXME This belongs in EMailShellView */
 	e_mail_reader_open_selected (reader);
 }
 
@@ -1456,15 +1455,29 @@
 	const gchar *action_name;
 
 	if ((event->key.state & GDK_CONTROL_MASK) != 0)
-		return FALSE;
+		goto ctrl;
 
+	/* <keyval> alone */
 	switch (event->key.keyval) {
+		case GDK_Delete:
+		case GDK_KP_Delete:
+			action_name = "mail-delete";
+			break;
+
 		case GDK_Return:
 		case GDK_KP_Enter:
 		case GDK_ISO_Enter:
 			action_name = "mail-message-open";
 			break;
 
+		case GDK_period:
+			action_name = "mail-next-unread";
+			break;
+
+		case GDK_comma:
+			action_name = "mail-previous-unread";
+			break;
+
 #ifdef HAVE_XFREE
 		case XF86XK_Reply:
 			action_name = "mail-reply-all";
@@ -1483,6 +1496,25 @@
 			return FALSE;
 	}
 
+	goto exit;
+
+ctrl:
+
+	/* Ctrl + <keyval> */
+	switch (event->key.keyval) {
+		case GDK_period:
+			action_name = "mail-next-unread";
+			break;
+
+		case GDK_comma:
+			action_name = "mail-previous-unread";
+			break;
+
+		default:
+			return FALSE;
+	}
+
+exit:
 	e_mail_reader_activate (reader, action_name);
 
 	return TRUE;
@@ -1520,7 +1552,6 @@
 	EMEventTargetMessage *target;
 	gboolean mark_read;
 	gint timeout_interval;
-	gpointer data;
 
 	html_display = e_mail_reader_get_html_display (reader);
 	message_list = e_mail_reader_get_message_list (reader);
@@ -1675,7 +1706,6 @@
                          gboolean mark_read)
 {
 	MessageList *message_list;
-	gpointer data;
 
 	message_list = e_mail_reader_get_message_list (reader);
 	message_list_select_uid (message_list, uid);
@@ -1907,6 +1937,30 @@
 	iface->set_folder (reader, folder, folder_uri);
 }
 
+/* Helper for e_mail_reader_set_folder_uri() */
+static void
+mail_reader_got_folder_cb (gchar *folder_uri,
+                           CamelFolder *folder,
+                           gpointer user_data)
+{
+	EMailReader *reader = user_data;
+
+	e_mail_reader_set_folder (reader, folder, folder_uri);
+}
+
+void
+e_mail_reader_set_folder_uri (EMailReader *reader,
+                              const gchar *folder_uri)
+{
+	g_return_if_fail (E_IS_MAIL_READER (reader));
+	g_return_if_fail (folder_uri != NULL);
+
+	/* Fetch the CamelFolder asynchronously. */
+	mail_get_folder (
+		folder_uri, 0, mail_reader_got_folder_cb,
+		reader, mail_msg_fast_ordered_push);
+}
+
 void
 e_mail_reader_set_message (EMailReader *reader,
                            const gchar *uid,

Modified: branches/kill-bonobo/mail/e-mail-reader.h
==============================================================================
--- branches/kill-bonobo/mail/e-mail-reader.h	(original)
+++ branches/kill-bonobo/mail/e-mail-reader.h	Wed Jan  7 21:27:06 2009
@@ -82,6 +82,8 @@
 void		e_mail_reader_set_folder	(EMailReader *reader,
 						 CamelFolder *folder,
 						 const gchar *folder_uri);
+void		e_mail_reader_set_folder_uri	(EMailReader *reader,
+						 const gchar *folder_uri);
 void		e_mail_reader_set_message	(EMailReader *reader,
 						 const gchar *uid,
 						 gboolean mark_read);

Modified: branches/kill-bonobo/mail/e-mail-shell-content.c
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-content.c	(original)
+++ branches/kill-bonobo/mail/e-mail-shell-content.c	Wed Jan  7 21:27:06 2009
@@ -663,6 +663,8 @@
 	mail_shell_content->priv->paned_binding_id = binding_id;
 	mail_shell_content->priv->paned = g_object_ref (new_paned);
 
+	e_mail_shell_content_update_view_instance (mail_shell_content);
+
 	g_object_notify (G_OBJECT (mail_shell_content), "vertical-view");
 }
 
@@ -700,12 +702,11 @@
 		mail_shell_content->priv->view_instance = NULL;
 	}
 
-	/* TODO: Should this go through the mail-config API? */
 	view_id = mail_config_folder_to_safe_url (folder_view->folder);
 	view_instance = e_shell_view_new_view_instance (shell_view, view_id);
 	mail_shell_content->priv->view_instance = view_instance;
 
-	show_vertical_view = folder_view->list_active &&
+	show_vertical_view =
 		e_mail_shell_content_get_vertical_view (mail_shell_content);
 
 	if (show_vertical_view) {

Modified: branches/kill-bonobo/mail/e-mail-shell-view-actions.c
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-view-actions.c	(original)
+++ branches/kill-bonobo/mail/e-mail-shell-view-actions.c	Wed Jan  7 21:27:06 2009
@@ -455,24 +455,6 @@
 	  NULL,  /* XXX Add a tooltip! */
 	  G_CALLBACK (action_mail_create_search_folder_cb) },
 
-#if 0
-	/* XXX Work around one-accelerator-per-action limit. */
-	{ "mail-delete-1",
-	  NULL,
-	  NULL,
-	  "Delete",
-	  NULL,
-	  G_CALLBACK (action_mail_delete_cb) },
-
-	/* XXX Work around one-accelerator-per-action limit. */
-	{ "mail-delete-2",
-	  NULL,
-	  NULL,
-	  "KP_Delete",
-	  NULL,
-	  G_CALLBACK (action_mail_delete_cb) },
-#endif
-
 	{ "mail-download",
 	  NULL,
 	  N_("_Download Messages for Offline Usage"),
@@ -592,40 +574,6 @@
 	  N_("Temporarily hide the selected messages"),
 	  G_CALLBACK (action_mail_hide_selected_cb) },
 
-#if 0
-	/* XXX Work around one-accelerator-per-action limit. */
-	{ "mail-next-unread-1",
-	  NULL,
-	  NULL,
-	  "period",
-	  NULL,
-	  G_CALLBACK (action_mail_next_unread_cb) },
-
-	/* XXX Work around one-accelerator-per-action limit. */
-	{ "mail-next-unread-2",
-	  NULL,
-	  NULL,
-	  "<Control>period",
-	  NULL,
-	  G_CALLBACK (action_mail_next_unread_cb) },
-
-	/* XXX Work around one-accelerator-per-action limit. */
-	{ "mail-previous-unread-1",
-	  NULL,
-	  NULL,
-	  "comma",
-	  NULL,
-	  G_CALLBACK (action_mail_previous_unread_cb) },
-
-	/* XXX Work around one-accelerator-per-action limit. */
-	{ "mail-previous-unread-2",
-	  NULL,
-	  NULL,
-	  "<Control>comma",
-	  NULL,
-	  G_CALLBACK (action_mail_previous_unread_cb) },
-#endif
-
 	{ "mail-show-hidden",
 	  NULL,
 	  N_("Show Hidde_n Messages"),
@@ -1029,11 +977,11 @@
 	key = "/apps/evolution/mail/display/show_preview";
 	gconf_bridge_bind_property (bridge, key, object, "active");
 
-	object = G_OBJECT (ACTION (MAIL_VIEW_VERTICAL));
-	key = "/apps/evolution/mail/display/show_wide";
-	gconf_bridge_bind_property (bridge, key, object, "active");
-
 	object = G_OBJECT (ACTION (MAIL_THREADS_GROUP_BY));
 	key = "/apps/evolution/mail/display/thread_list";
 	gconf_bridge_bind_property (bridge, key, object, "active");
+
+	object = G_OBJECT (ACTION (MAIL_VIEW_VERTICAL));
+	key = "/apps/evolution/mail/display/layout";
+	gconf_bridge_bind_property (bridge, key, object, "current-value");
 }

Modified: branches/kill-bonobo/mail/em-folder-browser.c
==============================================================================
--- branches/kill-bonobo/mail/em-folder-browser.c	(original)
+++ branches/kill-bonobo/mail/em-folder-browser.c	Wed Jan  7 21:27:06 2009
@@ -246,36 +246,36 @@
 static EMFolderViewClass *emfb_parent;
 
 /* Needed since the paned wont take the position its given otherwise ... */
-static void
-emfb_pane_realised(GtkWidget *w, EMFolderBrowser *emfb)
-{
-	GConfClient *gconf;
-
-	gconf = mail_config_get_gconf_client ();
-
-	if (emfb->priv->show_wide)
-		gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/hpaned_size", NULL));
-	else
-		gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/paned_size", NULL));
-}
-
-static gboolean
-emfb_pane_button_release_event(GtkWidget *w, GdkEventButton *e, EMFolderBrowser *emfb)
-{
-	GConfClient *gconf = mail_config_get_gconf_client ();
-
-	if (GTK_WIDGET_REALIZED (w)) {
-		if (emfb->priv->show_wide)
-			gconf_client_set_int(gconf, "/apps/evolution/mail/display/hpaned_size",
-					     gtk_paned_get_position(GTK_PANED(w)), NULL);
-		else
-			gconf_client_set_int(gconf, "/apps/evolution/mail/display/paned_size",
-					     gtk_paned_get_position(GTK_PANED(w)), NULL);
-
-	}
+//static void
+//emfb_pane_realised(GtkWidget *w, EMFolderBrowser *emfb)
+//{
+//	GConfClient *gconf;
+//
+//	gconf = mail_config_get_gconf_client ();
+//
+//	if (emfb->priv->show_wide)
+//		gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/hpaned_size", NULL));
+//	else
+//		gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/paned_size", NULL));
+//}
 
-	return FALSE;
-}
+//static gboolean
+//emfb_pane_button_release_event(GtkWidget *w, GdkEventButton *e, EMFolderBrowser *emfb)
+//{
+//	GConfClient *gconf = mail_config_get_gconf_client ();
+//
+//	if (GTK_WIDGET_REALIZED (w)) {
+//		if (emfb->priv->show_wide)
+//			gconf_client_set_int(gconf, "/apps/evolution/mail/display/hpaned_size",
+//					     gtk_paned_get_position(GTK_PANED(w)), NULL);
+//		else
+//			gconf_client_set_int(gconf, "/apps/evolution/mail/display/paned_size",
+//					     gtk_paned_get_position(GTK_PANED(w)), NULL);
+//
+//	}
+//
+//	return FALSE;
+//}
 
 static void
 free_one_ui_file (gpointer data,
@@ -493,21 +493,21 @@
 
 	g_signal_connect_after (((EMFormatHTML *)(emfb->view.preview))->html, "scroll", G_CALLBACK (html_scroll), emfb);
 
-	g_slist_foreach (emfb->view.ui_files, free_one_ui_file, NULL);
-	g_slist_free(emfb->view.ui_files);
+//	g_slist_foreach (emfb->view.ui_files, free_one_ui_file, NULL);
+//	g_slist_free(emfb->view.ui_files);
 
-	emfb->view.ui_files = g_slist_append(NULL,
-					     g_build_filename (EVOLUTION_UIDIR,
-							       "evolution-mail-global.xml",
-							       NULL));
-	emfb->view.ui_files = g_slist_append(emfb->view.ui_files,
-					     g_build_filename (EVOLUTION_UIDIR,
-							       "evolution-mail-list.xml",
-							       NULL));
-	emfb->view.ui_files = g_slist_append(emfb->view.ui_files,
-					     g_build_filename (EVOLUTION_UIDIR,
-							       "evolution-mail-message.xml",
-							       NULL));
+//	emfb->view.ui_files = g_slist_append(NULL,
+//					     g_build_filename (EVOLUTION_UIDIR,
+//							       "evolution-mail-global.xml",
+//							       NULL));
+//	emfb->view.ui_files = g_slist_append(emfb->view.ui_files,
+//					     g_build_filename (EVOLUTION_UIDIR,
+//							       "evolution-mail-list.xml",
+//							       NULL));
+//	emfb->view.ui_files = g_slist_append(emfb->view.ui_files,
+//					     g_build_filename (EVOLUTION_UIDIR,
+//							       "evolution-mail-message.xml",
+//							       NULL));
 
 	emfb->view.enable_map = g_slist_prepend(emfb->view.enable_map, (void *)emfb_enable_map);
 
@@ -539,13 +539,13 @@
 		emfb->priv->labels_change_notify_id = gconf_client_notify_add (gconf, E_UTIL_LABELS_GCONF_KEY, gconf_labels_changed, emfb, NULL, NULL);
 	}
 
-	emfb->priv->show_wide = gconf_client_get_bool(mail_config_get_gconf_client(), "/apps/evolution/mail/display/show_wide", NULL);
-	emfb->vpane = emfb->priv->show_wide?gtk_hpaned_new():gtk_vpaned_new();
+//	emfb->priv->show_wide = gconf_client_get_bool(mail_config_get_gconf_client(), "/apps/evolution/mail/display/show_wide", NULL);
+//	emfb->vpane = emfb->priv->show_wide?gtk_hpaned_new():gtk_vpaned_new();
 
-	g_signal_connect(emfb->vpane, "realize", G_CALLBACK(emfb_pane_realised), emfb);
-	emfb->priv->vpane_resize_id = g_signal_connect(emfb->vpane, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb);
+//	g_signal_connect(emfb->vpane, "realize", G_CALLBACK(emfb_pane_realised), emfb);
+//	emfb->priv->vpane_resize_id = g_signal_connect(emfb->vpane, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb);
 
-	gtk_widget_show(emfb->vpane);
+//	gtk_widget_show(emfb->vpane);
 
 	gtk_box_pack_start_defaults((GtkBox *)emfb, emfb->vpane);
 
@@ -766,8 +766,8 @@
 	w = emfb->priv->show_wide?gtk_hpaned_new():gtk_vpaned_new();
 
 	g_signal_handler_disconnect(emfb->vpane, emfb->priv->vpane_resize_id);
-	g_signal_connect(w, "realize", G_CALLBACK(emfb_pane_realised), emfb);
-	emfb->priv->vpane_resize_id = g_signal_connect(w, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb);
+//	g_signal_connect(w, "realize", G_CALLBACK(emfb_pane_realised), emfb);
+//	emfb->priv->vpane_resize_id = g_signal_connect(w, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb);
 
 	gtk_box_pack_start_defaults((GtkBox *)emfb, w);
 	gtk_widget_reparent((GtkWidget *)emfb->view.list, w);

Modified: branches/kill-bonobo/mail/evolution-mail.schemas.in
==============================================================================
--- branches/kill-bonobo/mail/evolution-mail.schemas.in	(original)
+++ branches/kill-bonobo/mail/evolution-mail.schemas.in	Wed Jan  7 21:27:06 2009
@@ -570,16 +570,19 @@
     </schema>
 
     <schema>
-      <key>/schemas/apps/evolution/mail/display/show_wide</key>
-      <applyto>/apps/evolution/mail/display/show_wide</applyto>
+      <key>/schemas/apps/evolution/mail/display/layout</key>
+      <applyto>/apps/evolution/mail/display/layout</applyto>
       <owner>evolution-mail</owner>
-      <type>bool</type>
-      <default>false</default>
+      <type>int</type>
+      <default>0</default>
       <locale name="C">
-         <short>Use side-by-side or wide layout</short>
-         <long>
-	  If the &quot;Preview&quot; pane is on, then show it side-by-side rather than vertically.
-         </long>
+        <short>Layout style</short>
+        <long>
+          The layout style determines where to place the preview pane
+          in relation to the message list.  "0" (Classic View) places
+          the preview pane below the message list.  "1" (Vertical View)
+          places the preview pane next to the message list.
+        </long>
       </locale>
     </schema>
 

Modified: branches/kill-bonobo/widgets/table/e-table-header-item.c
==============================================================================
--- branches/kill-bonobo/widgets/table/e-table-header-item.c	(original)
+++ branches/kill-bonobo/widgets/table/e-table-header-item.c	Wed Jan  7 21:27:06 2009
@@ -913,7 +913,10 @@
 {
 	ETableHeaderItem *ethi = E_TABLE_HEADER_ITEM (item);
 
-	pango_font_description_free (ethi->font_desc);
+	if (ethi->font_desc != NULL) {
+		pango_font_description_free (ethi->font_desc);
+		ethi->font_desc = NULL;
+	}
 
 	g_signal_handler_disconnect (item->canvas, ethi->drag_motion_id);
 	g_signal_handler_disconnect (item->canvas, ethi->drag_leave_id);



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