* small updates
[modest] / src / gtk / modest-edit-msg-window.c
index 468bf94..d09f149 100644 (file)
@@ -32,6 +32,7 @@
 #include <modest-widget-memory.h>
 #include <modest-widget-factory.h>
 #include "modest-icon-names.h"
+#include <modest-tny-transport-actions.h>
 
 static void  modest_edit_msg_window_class_init   (ModestEditMsgWindowClass *klass);
 static void  modest_edit_msg_window_init         (ModestEditMsgWindow *obj);
@@ -116,11 +117,40 @@ modest_edit_msg_window_init (ModestEditMsgWindow *obj)
        priv->factory = NULL;
        priv->toolbar = NULL;
        priv->menubar = NULL;
-               
 }
 
 
 
+static void
+save_settings (ModestEditMsgWindow *self)
+{
+       ModestEditMsgWindowPrivate *priv;
+       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(self);
+       modest_widget_memory_save_settings (priv->conf,
+                                           GTK_WIDGET(self),
+                                           "modest-edit-msg-window");
+}
+
+
+static void
+restore_settings (ModestEditMsgWindow *self)
+{
+       ModestEditMsgWindowPrivate *priv;
+       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(self);
+       modest_widget_memory_restore_settings (priv->conf, GTK_WIDGET(self),
+                                              "modest-edit-msg-window");
+}
+
+       
+
+static void
+on_menu_quit (ModestEditMsgWindow *self, guint action, GtkWidget *widget)
+{
+       save_settings (self);
+       gtk_widget_destroy (GTK_WIDGET(self));
+}
+
+
 
 
 
@@ -135,7 +165,7 @@ static GtkItemFactoryEntry menu_items[] = {
 
 
        { "/File/sep1",         NULL,                   NULL,           0, "<Separator>" },
-       { "/File/_Quit",        "<CTRL>Q",              NULL,           0, "<StockItem>", GTK_STOCK_QUIT },
+       { "/File/_Quit",        "<CTRL>Q",              on_menu_quit,   0, "<StockItem>", GTK_STOCK_QUIT },
 
        { "/_Edit",             NULL,                   NULL,           0, "<Branch>" },
        { "/Edit/_Undo",        "<CTRL>Z",              NULL,           0, "<StockItem>", GTK_STOCK_UNDO },
@@ -150,10 +180,10 @@ static GtkItemFactoryEntry menu_items[] = {
        { "/Edit/Deselect all",  "<Shift><CTRL>A",      NULL,           0, "<Item>" },
 
        { "/_View",             NULL,           NULL,           0, "<Branch>" },
-       { "/View/To-field",          NULL,              NULL,           0, "<Item>" },
+       { "/View/To-field",          NULL,              NULL,           0, "<CheckItem>" },
        
-       { "/View/Cc-field:",          NULL,             NULL,           0, "<Item>" },
-       { "/View/Bcc-field:",          NULL,            NULL,           0, "<Item>" },
+       { "/View/Cc-field:",          NULL,             NULL,           0, "<CheckItem>" },
+       { "/View/Bcc-field:",          NULL,            NULL,           0, "<CheckItem>" },
        
        
        { "/_Insert",             NULL,         NULL,           0, "<Branch>" },
@@ -199,6 +229,38 @@ menubar_new (ModestEditMsgWindow *self)
 }
 
 
+static void
+send_mail (ModestEditMsgWindow *self)
+{
+       const gchar *from, *to, *cc, *bcc, *subject;
+       gchar *body;
+       ModestEditMsgWindowPrivate *priv;
+
+       GtkTextBuffer *buf;
+       GtkTextIter b, e;
+       
+       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(self);
+
+       /* don't free these */
+       from = "djcb@djcbsoftware.nl";
+       to   =  gtk_entry_get_text (GTK_ENTRY(priv->to_field));
+       cc   =  gtk_entry_get_text (GTK_ENTRY(priv->cc_field));
+       bcc  =  gtk_entry_get_text (GTK_ENTRY(priv->bcc_field));
+       to   =  gtk_entry_get_text (GTK_ENTRY(priv->subject_field));
+
+       /* don't unref */
+       buf   =  gtk_text_view_get_buffer (GTK_TEXT_VIEW(priv->msg_body));
+       
+       gtk_text_buffer_get_bounds (buf, &b, &e);
+       body  = gtk_text_buffer_get_text (buf, &b, &e,
+                                         FALSE); /* free this one */
+
+//     modest_tny_transport_actions_send_message (transport_account,
+//                                                from, to, cc, bcc,
+//                                                subject, *body, NULL);
+       g_free (body);
+}
+
 
 static void
 on_toolbar_button_clicked (ModestToolbar *toolbar, ModestToolbarButton button_id,
@@ -206,7 +268,8 @@ on_toolbar_button_clicked (ModestToolbar *toolbar, ModestToolbarButton button_id
 {
        switch (button_id) {
        case MODEST_TOOLBAR_BUTTON_MAIL_SEND:
-               g_warning ("send the mail!");
+               send_mail (self);
+               save_settings (self);
                gtk_widget_destroy (GTK_WIDGET(self));
                break;
                
@@ -297,7 +360,7 @@ init_window (ModestEditMsgWindow *obj)
 
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->menubar, FALSE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->toolbar, FALSE, FALSE, 0);
-       gtk_box_pack_start (GTK_BOX(main_vbox), header_table, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(main_vbox), header_table, FALSE, FALSE, 6);
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->msg_body, TRUE, TRUE, 6);
 
        gtk_widget_show_all (GTK_WIDGET(main_vbox));
@@ -328,12 +391,7 @@ modest_edit_msg_window_finalize (GObject *obj)
 static gboolean
 on_delete_event (GtkWidget *widget, GdkEvent *event, ModestEditMsgWindow *self)
 {
-       ModestEditMsgWindowPrivate *priv;
-       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(self);
-       
-       modest_widget_memory_save_settings (priv->conf,
-                                           GTK_WIDGET(priv->msg_body),
-                                           "modest-edit-msg-body");
+       save_settings (self);
        return FALSE;
 }
 
@@ -361,9 +419,8 @@ modest_edit_msg_window_new (ModestConf *conf, ModestWidgetFactory *factory,
        priv->factory = factory;
 
        init_window (MODEST_EDIT_MSG_WINDOW(obj));
-       
-       modest_widget_memory_restore_settings (priv->conf, GTK_WIDGET(obj),
-                                              "modest-edit-msg-body");
+
+       restore_settings (MODEST_EDIT_MSG_WINDOW(obj));
        
        gtk_window_set_title (GTK_WINDOW(obj), "Modest");
        gtk_window_set_icon  (GTK_WINDOW(obj),