* show toolbar when it's enabled in modest-conf
[modest] / src / maemo / modest-msg-edit-window.c
index 7026096..3ff45da 100644 (file)
@@ -140,7 +140,6 @@ save_settings (ModestMsgEditWindow *self)
 static void
 restore_settings (ModestMsgEditWindow *self)
 {
-
        modest_widget_memory_restore (modest_runtime_get_conf(),
                                      G_OBJECT(self), "modest-edit-msg-window");
 }
@@ -155,7 +154,7 @@ get_transports (void)
        GSList *cursor, *accounts;
        
        account_mgr = modest_runtime_get_account_mgr();
-       cursor = accounts = modest_account_mgr_account_names (account_mgr, NULL);
+       cursor = accounts = modest_account_mgr_account_names (account_mgr); 
        while (cursor) {
                gchar *account_name = (gchar*)cursor->data;
                gchar *from_string  = modest_account_mgr_get_from_string (account_mgr,
@@ -186,16 +185,15 @@ init_window (ModestMsgEditWindow *obj)
        GtkWidget *main_vbox;
        ModestMsgEditWindowPrivate *priv;
        ModestPairList *protos;
-       
+
        priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE(obj);
 
        to_button     = gtk_button_new_with_label (_("To..."));
        cc_button     = gtk_button_new_with_label (_("Cc..."));
        bcc_button    = gtk_button_new_with_label (_("Bcc..."));
-
                
        protos = get_transports ();
-       priv->from_field    = modest_combo_box_new (protos);
+       priv->from_field    = modest_combo_box_new (protos, g_str_equal);
        modest_pair_list_free (protos);
 
        priv->to_field      = gtk_entry_new_with_max_length (80);
@@ -227,6 +225,12 @@ init_window (ModestMsgEditWindow *obj)
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->msg_body, TRUE, TRUE, 6);
 
        gtk_widget_show_all (GTK_WIDGET(main_vbox));
+       
+       if (!modest_conf_get_bool(modest_runtime_get_conf(), MODEST_CONF_SHOW_CC, NULL))
+               gtk_widget_hide (priv->cc_field);
+       if (!modest_conf_get_bool(modest_runtime_get_conf(), MODEST_CONF_SHOW_BCC, NULL))
+               gtk_widget_hide (priv->bcc_field);
+
        gtk_container_add (GTK_CONTAINER(obj), main_vbox);
 }
        
@@ -272,8 +276,53 @@ menubar_to_menu (GtkUIManager *ui_manager)
        return main_menu;
 }
 
+
+#if 0
+static void
+set_msg (ModestMsgEditWindow *self, TnyMsg *msg)
+{
+       TnyHeader *header;
+       GtkTextBuffer *buf;
+       const gchar *to, *cc, *bcc, *subject;
+       ModestMsgEditWindowPrivate *priv;
+
+       g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (self));
+       g_return_if_fail (TNY_IS_MSG (msg));
+
+       priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (self);
+
+       header = tny_msg_get_header (msg);
+       to      = tny_header_get_to (header);
+       cc      = tny_header_get_cc (header);
+       bcc     = tny_header_get_bcc (header);
+       subject = tny_header_get_subject (header);
+
+       if (to)
+               gtk_entry_set_text (GTK_ENTRY(priv->to_field),  to);
+       if (cc)
+               gtk_entry_set_text (GTK_ENTRY(priv->cc_field),  cc);
+       if (bcc)
+               gtk_entry_set_text (GTK_ENTRY(priv->bcc_field), bcc);
+       if (subject)
+               gtk_entry_set_text (GTK_ENTRY(priv->subject_field), subject);   
+       
+       buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW(priv->msg_body));
+       gtk_text_buffer_set_text (buf,
+                                 (const gchar *) modest_tny_msg_get_body (msg, FALSE),
+                                 -1);
+
+       /* TODO: lower priority, select in the From: combo to the
+          value that comes from msg <- not sure, should it be
+          allowed? */
+       
+       /* TODO: set attachments */
+}
+#endif
+
+       
+
 ModestWindow*
-modest_msg_edit_window_new (ModestEditType type)
+modest_msg_edit_window_new (TnyMsg *msg, const gchar *account_name)
 {
        GObject *obj;
        ModestWindowPrivate *parent_priv;
@@ -281,7 +330,7 @@ modest_msg_edit_window_new (ModestEditType type)
        GtkActionGroup *action_group;
        GError *error = NULL;
 
-       g_return_val_if_fail (type < MODEST_EDIT_TYPE_NUM, NULL);
+       g_return_val_if_fail (msg, NULL);
        
        obj = g_object_new(MODEST_TYPE_MSG_EDIT_WINDOW, NULL);
 
@@ -304,9 +353,9 @@ modest_msg_edit_window_new (ModestEditType type)
        g_object_unref (action_group);
 
        /* Load the UI definition */
-       gtk_ui_manager_add_ui_from_file (parent_priv->ui_manager, MODEST_UIDIR "modest-edit-msg-window-ui.xml", &error);
+       gtk_ui_manager_add_ui_from_file (parent_priv->ui_manager, MODEST_UIDIR "modest-msg-edit-window-ui.xml", &error);
        if (error != NULL) {
-               g_warning ("Could not merge modest-edit-msg-window-ui.xml: %s", error->message);
+               g_warning ("Could not merge modest-msg-edit-window-ui.xml: %s", error->message);
                g_error_free (error);
                error = NULL;
        }
@@ -320,69 +369,35 @@ modest_msg_edit_window_new (ModestEditType type)
        parent_priv->toolbar = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar");
        hildon_window_add_toolbar (HILDON_WINDOW (obj), GTK_TOOLBAR (parent_priv->toolbar));
 
+       /* should we hide the toolbar? */
+       if (!modest_conf_get_bool (modest_runtime_get_conf (), MODEST_CONF_SHOW_TOOLBAR, NULL))
+               gtk_widget_hide (parent_priv->toolbar);
+
+       
        /* Menubar */
        parent_priv->menubar = menubar_to_menu (parent_priv->ui_manager);
        hildon_window_set_menu (HILDON_WINDOW (obj), GTK_MENU (parent_priv->menubar));
 
        /* Init window */
        init_window (MODEST_MSG_EDIT_WINDOW(obj));
-
-       restore_settings (MODEST_MSG_EDIT_WINDOW(obj));
        
+       restore_settings (MODEST_MSG_EDIT_WINDOW(obj));
+               
        gtk_window_set_title (GTK_WINDOW(obj), "Modest");
        gtk_window_set_icon_from_file (GTK_WINDOW(obj), MODEST_APP_ICON, NULL);
 
        g_signal_connect (G_OBJECT(obj), "delete-event",
                          G_CALLBACK(on_delete_event), obj);
 
+       modest_window_set_active_account (MODEST_WINDOW(obj), account_name);
        return (ModestWindow*)obj;
 }
 
-void
-modest_msg_edit_window_set_msg (ModestMsgEditWindow *self, TnyMsg *msg)
-{
-       TnyHeader *header;
-       GtkTextBuffer *buf;
-       const gchar *to, *cc, *bcc, *subject;
-       ModestMsgEditWindowPrivate *priv;
-
-       g_return_if_fail (MODEST_IS_MSG_EDIT_WINDOW (self));
-       g_return_if_fail (TNY_IS_MSG (msg));
-
-       priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (self);
-
-       header = tny_msg_get_header (msg);
-       to      = tny_header_get_to (header);
-       cc      = tny_header_get_cc (header);
-       bcc     = tny_header_get_bcc (header);
-       subject = tny_header_get_subject (header);
-
-       if (to)
-               gtk_entry_set_text (GTK_ENTRY(priv->to_field),  to);
-       if (cc)
-               gtk_entry_set_text (GTK_ENTRY(priv->cc_field),  cc);
-       if (bcc)
-               gtk_entry_set_text (GTK_ENTRY(priv->bcc_field), bcc);
-       if (subject)
-               gtk_entry_set_text (GTK_ENTRY(priv->subject_field), subject);   
-       
-       buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW(priv->msg_body));
-       gtk_text_buffer_set_text (buf,
-                                 (const gchar *) modest_tny_msg_get_body (msg, FALSE),
-                                 -1);
-
-       /* TODO: lower priority, select in the From: combo to the
-          value that comes from msg <- not sure, should it be
-          allowed? */
-       
-       /* TODO: set attachments */
-}
-
 MsgData * 
 modest_msg_edit_window_get_msg_data (ModestMsgEditWindow *edit_window)
 {
        MsgData *data;
-       ModestAccountData *account_data;
+       const gchar *account_name;
        GtkTextBuffer *buf;
        GtkTextIter b, e;
        ModestMsgEditWindowPrivate *priv;
@@ -391,13 +406,16 @@ modest_msg_edit_window_get_msg_data (ModestMsgEditWindow *edit_window)
 
        priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (edit_window);
                                                                        
-       account_data = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->from_field));
+       account_name = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->from_field));
+       g_return_val_if_fail (account_name, NULL);
+       
        buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->msg_body));        
        gtk_text_buffer_get_bounds (buf, &b, &e);
-
+       
        /* don't free these (except from) */
        data = g_slice_new0 (MsgData);
-       data->from    =  g_strdup_printf ("%s <%s>", account_data->fullname, account_data->email) ;
+       data->from    =  modest_account_mgr_get_from_string (modest_runtime_get_account_mgr(),
+                                                            account_name);
        data->to      =  (gchar*) gtk_entry_get_text (GTK_ENTRY(priv->to_field));
        data->cc      =  (gchar*) gtk_entry_get_text (GTK_ENTRY(priv->cc_field));
        data->bcc     =  (gchar*) gtk_entry_get_text (GTK_ENTRY(priv->bcc_field));