X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fgtk%2Fmodest-main-window.c;h=00323a82a70b48f203c72b7cf983f9395b6c3133;hb=68aa241807636e914b400e4510c8f0fadef623cb;hp=3f943ba75810cd37ec082d64de70e82070d06872;hpb=8d3863e05ac75d542a8f35d1a6f682468526ff3a;p=modest diff --git a/src/gtk/modest-main-window.c b/src/gtk/modest-main-window.c index 3f943ba..00323a8 100644 --- a/src/gtk/modest-main-window.c +++ b/src/gtk/modest-main-window.c @@ -174,7 +174,7 @@ on_menu_about (GtkWidget *widget, gpointer data) gtk_about_dialog_set_comments ( GTK_ABOUT_DIALOG(about), _("a modest e-mail client\n\n" "design and implementation: Dirk-Jan C. Binnema\n" - "contributions from the fine people at KernelConcepts\n\n" + "contributions from the fine people at KernelConcepts and Igalia\n" "uses the tinymail email framework written by Philip van Hoof")); gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG(about), authors); gtk_about_dialog_set_website (GTK_ABOUT_DIALOG(about), "http://modest.garage.maemo.org"); @@ -225,7 +225,6 @@ on_menu_reply_forward (ModestMainWindow *self, guint action, GtkWidget *widget) ModestHeaderView *header_view; TnyList *header_list; TnyIterator *iter; - const gchar *from; gchar *reply_key, *forward_key; ModestMailOperationReplyType reply_type; ModestMailOperationForwardType forward_type; @@ -253,7 +252,7 @@ on_menu_reply_forward (ModestMainWindow *self, guint action, GtkWidget *widget) g_free (reply_key); forward_key = g_strdup_printf ("%s/%s", MODEST_CONF_NAMESPACE, MODEST_CONF_FORWARD_TYPE); - forward_type = modest_conf_get_int (conf, forward_key, NULL); + forward_type = modest_conf_get_int (conf, forward_key, &error); if (error || forward_type == 0) { g_warning ("key %s not defined", forward_key); forward_type = MODEST_MAIL_OPERATION_FORWARD_TYPE_INLINE; @@ -265,20 +264,32 @@ on_menu_reply_forward (ModestMainWindow *self, guint action, GtkWidget *widget) g_free (forward_key); if (header_list) { + TnyHeader *header, *new_header; + TnyFolder *folder; + TnyMsg *msg, *new_msg; + ModestEditType edit_type; + gchar *from, *email_key; + const gchar *account_name; + + /* We assume that we can only select messages of the + same folder and that we reply all of them from the + same account. In fact the interface currently only + allows single selection */ + account_name = modest_folder_view_get_selected_account (priv->folder_view); + email_key = g_strdup_printf ("%s/%s/%s", MODEST_ACCOUNT_NAMESPACE, + account_name, MODEST_ACCOUNT_EMAIL); + from = modest_conf_get_string (conf, email_key, NULL); + g_free (email_key); + iter = tny_list_create_iterator (header_list); - do { - TnyHeader *header, *new_header; - TnyFolder *folder; - TnyMsg *msg, *new_msg; - ModestEditType edit_type; + header = TNY_HEADER (tny_iterator_get_current (iter)); + folder = tny_header_get_folder (header); + do { /* Get msg from header */ header = TNY_HEADER (tny_iterator_get_current (iter)); - folder = tny_header_get_folder (header); msg = tny_folder_get_msg (folder, header, NULL); /* FIXME */ - from = modest_folder_view_get_selected_account (priv->folder_view); - /* FIXME: select proper action */ switch (action) { case 1: @@ -305,8 +316,7 @@ on_menu_reply_forward (ModestMainWindow *self, guint action, GtkWidget *widget) if (new_msg) { /* Set from */ new_header = tny_msg_get_header (new_msg); - tny_header_set_from (new_header, - modest_folder_view_get_selected_account (priv->folder_view)); + tny_header_set_from (new_header, from); /* Show edit window */ msg_win = modest_edit_msg_window_new (priv->widget_factory, @@ -317,10 +327,14 @@ on_menu_reply_forward (ModestMainWindow *self, guint action, GtkWidget *widget) /* Clean and go on */ g_object_unref (new_msg); } - tny_iterator_next (iter); } while (!tny_iterator_is_done (iter)); + + /* Clean */ + g_free (from); + g_object_unref (G_OBJECT (iter)); + g_object_unref (G_OBJECT (folder)); } } @@ -446,7 +460,7 @@ static ModestHeaderView* header_view_new (ModestMainWindow *self) { int i; - GSList *columns = NULL; + GList *columns = NULL; ModestHeaderView *header_view; ModestMainWindowPrivate *priv; ModestHeaderViewColumn cols[] = { @@ -460,11 +474,11 @@ header_view_new (ModestMainWindow *self) priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self); for (i = 0 ; i != sizeof(cols) / sizeof(ModestHeaderViewColumn); ++i) - columns = g_slist_append (columns, GINT_TO_POINTER(cols[i])); + columns = g_list_append (columns, GINT_TO_POINTER(cols[i])); header_view = modest_widget_factory_get_header_view (priv->widget_factory); modest_header_view_set_columns (header_view, columns); - g_slist_free (columns); + g_list_free (columns); return header_view; } @@ -576,6 +590,9 @@ restore_sizes (ModestMainWindow *self) "modest-msg-paned"); modest_widget_memory_restore_settings (conf, GTK_WIDGET(priv->main_paned), "modest-main-paned"); + modest_widget_memory_restore_settings (conf, GTK_WIDGET(priv->header_view), + "modest-header-view"); + } @@ -596,6 +613,8 @@ save_sizes (ModestMainWindow *self) "modest-msg-paned"); modest_widget_memory_save_settings (conf, GTK_WIDGET(priv->main_paned), "modest-main-paned"); + modest_widget_memory_save_settings (conf, GTK_WIDGET(priv->header_view), + "modest-header-view"); } static GtkWidget* @@ -626,28 +645,6 @@ on_delete_event (GtkWidget *widget, GdkEvent *event, ModestMainWindow *self) return FALSE; } -static GtkWidget* -favorites_view () -{ - GtkWidget *favorites; - GtkTreeStore *store; - GtkTreeViewColumn *col; - - store = gtk_tree_store_new (1, G_TYPE_STRING); - favorites = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store)); - col = gtk_tree_view_column_new_with_attributes (_("Favorites"), - gtk_cell_renderer_text_new(), - "text", 0, NULL); - - gtk_tree_view_append_column (GTK_TREE_VIEW(favorites), col); - gtk_widget_show_all (favorites); - - g_object_unref (G_OBJECT(store)); - - return favorites; -} - - GtkWidget* modest_main_window_new (ModestWidgetFactory *widget_factory) @@ -657,7 +654,7 @@ modest_main_window_new (ModestWidgetFactory *widget_factory) GtkWidget *main_vbox; GtkWidget *status_hbox; - GtkWidget *header_win, *folder_win, *favorites_win; + GtkWidget *header_win, *folder_win; g_return_val_if_fail (widget_factory, NULL); @@ -676,7 +673,6 @@ modest_main_window_new (ModestWidgetFactory *widget_factory) FALSE); header_win = wrapped_in_scrolled_window (GTK_WIDGET(priv->header_view), FALSE); - favorites_win = wrapped_in_scrolled_window (favorites_view(),FALSE); /* tool/menubar */ priv->menubar = menubar_new (MODEST_MAIN_WINDOW(obj)); @@ -686,10 +682,8 @@ modest_main_window_new (ModestWidgetFactory *widget_factory) priv->folder_paned = gtk_vpaned_new (); priv->msg_paned = gtk_vpaned_new (); priv->main_paned = gtk_hpaned_new (); - gtk_paned_add1 (GTK_PANED(priv->main_paned), priv->folder_paned); + gtk_paned_add1 (GTK_PANED(priv->main_paned), folder_win); gtk_paned_add2 (GTK_PANED(priv->main_paned), priv->msg_paned); - gtk_paned_add1 (GTK_PANED(priv->folder_paned), favorites_win); - gtk_paned_add2 (GTK_PANED(priv->folder_paned), folder_win); gtk_paned_add1 (GTK_PANED(priv->msg_paned), header_win); gtk_paned_add2 (GTK_PANED(priv->msg_paned), GTK_WIDGET(priv->msg_preview));