X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fgtk-glade%2Fmodest-ui.c;h=3e7f9e4d3d884c0f019a320ee5513247bebbd3d5;hb=8852855998585a12d217705e0034312fe3de5d06;hp=74f27daa5f56010619425971c8c54a3cd628d341;hpb=6639ece766f0963bbbf68e6ea6d5b46230bad444;p=modest diff --git a/src/gtk-glade/modest-ui.c b/src/gtk-glade/modest-ui.c index 74f27da..3e7f9e4 100644 --- a/src/gtk-glade/modest-ui.c +++ b/src/gtk-glade/modest-ui.c @@ -18,6 +18,7 @@ #include "../modest-ui.h" #include "../modest-window-mgr.h" #include "../modest-account-mgr.h" +#include "../modest-account-mgr.h" #include "../modest-identity-mgr.h" #include "../modest-tny-account-store.h" @@ -25,6 +26,7 @@ #include "../modest-tny-header-tree-view.h" #include "../modest-tny-msg-view.h" #include "../modest-tny-transport-actions.h" +#include "../modest-tny-store-actions.h" #include "../modest-text-utils.h" #include "../modest-tny-msg-actions.h" @@ -42,14 +44,12 @@ static void modest_ui_finalize (GObject *obj); static void modest_ui_window_destroy (GtkWidget *win, GdkEvent *event, gpointer data); static void modest_ui_last_window_closed (GObject *obj, gpointer data); -static GtkWidget* modest_main_window_toolbar (void); static GtkWidget* modest_main_window_folder_tree (ModestAccountMgr *modest_acc_mgr, TnyAccountStoreIface *account_store); static GtkWidget* modest_main_window_header_tree (TnyMsgFolderIface *folder); - -void on_account_settings1_activate (GtkMenuItem *, - gpointer); +//static void on_account_settings1_activate (GtkMenuItem *, +// gpointer); static void on_password_requested (ModestTnyAccountStore *account_store, const gchar *account_name, gpointer user_data); @@ -68,10 +68,15 @@ static void on_forward_clicked (GtkWidget *widget, ModestUI *modest_ui); static void on_delete_clicked (GtkWidget *widget, ModestUI *modest_ui); +#if 1 +static void on_send_button_clicked (GtkWidget *widget, ModestEditorWindow *modest_editwin); +#else static void on_send_button_clicked (GtkWidget *widget, ModestUI *modest_ui); +#endif -static void register_toolbar_callbacks (ModestUI *modest_ui); +static void on_sendreceive_button_clicked (GtkWidget *widget, ModestUI *modest_ui); +static void register_toolbar_callbacks (ModestUI *modest_ui); typedef enum { QUOTED_SEND_REPLY, @@ -82,6 +87,12 @@ typedef enum { static void quoted_send_msg (ModestUI *modest_ui, quoted_send_type qstype); +typedef struct { + ModestUI *modest_ui; + ModestEditorWindow *edit_win; + GladeXML *glade_xml; +} EditWinData; + /* list my signals */ enum { @@ -253,7 +264,7 @@ modest_ui_show_main_window (ModestUI *modest_ui) GtkWidget *message_view; GtkWidget *account_settings_item; GtkWidget *new_account_item; - GtkWidget *delete_item; + GtkWidget *delete_item; GtkWidget *folder_view_holder, *header_view_holder, @@ -293,7 +304,7 @@ modest_ui_show_main_window (ModestUI *modest_ui) g_signal_connect (G_OBJECT(folder_view), "folder_selected", G_CALLBACK(on_folder_clicked), modest_ui); - message_view = GTK_WIDGET(modest_tny_msg_view_new (NULL)); + message_view = GTK_WIDGET(modest_tny_msg_view_new (NULL, priv->modest_conf)); if (!message_view) { g_warning ("failed to create message view"); return FALSE; @@ -303,7 +314,7 @@ modest_ui_show_main_window (ModestUI *modest_ui) g_signal_connect (header_view, "message_selected", G_CALLBACK(on_message_clicked), - modest_ui); + modest_ui); account_settings_item = glade_xml_get_widget (priv->glade_xml, "AccountSettingsMenuItem"); if (!account_settings_item) @@ -311,21 +322,23 @@ modest_ui_show_main_window (ModestUI *modest_ui) g_warning ("The account settings item isn't available!\n"); return FALSE; } + /* g_signal_connect (account_settings_item, "activate", G_CALLBACK(on_account_settings1_activate), modest_ui); + */ - new_account_item = glade_xml_get_widget (priv->glade_xml, "NewAccountWizzardMenuItem"); + new_account_item = glade_xml_get_widget (priv->glade_xml, "NewAccountWizardMenuItem"); if (!new_account_item) { g_warning ("The new account item isn't available!\n"); return FALSE; } -/* + g_signal_connect (new_account_item, "activate", - G_CALLBACK(on_new_account1_activate), + G_CALLBACK(new_wizard_account), modest_ui); -*/ + delete_item = glade_xml_get_widget (priv->glade_xml, "delete1"); if (!delete_item) { @@ -344,7 +357,7 @@ modest_ui_show_main_window (ModestUI *modest_ui) modest_ui); g_signal_connect (win, "delete-event", G_CALLBACK(modest_ui_window_destroy), modest_ui); - gtk_widget_set_usize (GTK_WIDGET(win), height, width); + gtk_widget_set_usize (GTK_WIDGET(win), width, height); gtk_window_set_title (GTK_WINDOW(win), PACKAGE_STRING); gtk_widget_show_all (win); @@ -401,9 +414,16 @@ register_toolbar_callbacks (ModestUI *modest_ui) G_CALLBACK(on_delete_clicked), modest_ui); gtk_widget_set_sensitive(button, FALSE); } -} + button = glade_xml_get_widget (priv->glade_xml, "toolb_send_receive"); + if (button) { + g_signal_connect (button, "clicked", + G_CALLBACK(on_sendreceive_button_clicked), modest_ui); + gtk_widget_set_sensitive(button, TRUE); + } +} +#if 0 static void hide_edit_window (GtkWidget *win, GdkEvent *event, gpointer data) { @@ -413,33 +433,75 @@ hide_edit_window (GtkWidget *win, GdkEvent *event, gpointer data) gtk_widget_hide (win); modest_window_mgr_unregister(priv->modest_window_mgr, G_OBJECT(win)); } +#endif -GtkContainer -*modest_ui_new_editor_window (ModestUI *modest_ui, gpointer *user_data) +static gboolean close_edit_confirm_dialog(ModestEditorWindow *edit_win) { - GtkWidget *top_container, *to_entry, *subject_entry, *body_view; + GtkWidget *mdialog; + gint res; + + mdialog = gtk_message_dialog_new(GTK_WINDOW(edit_win), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + _("Message was modified.\nDiscard Changes?")); + gtk_widget_show_all (mdialog); + + res=gtk_dialog_run(GTK_DIALOG(mdialog)); + gtk_widget_destroy (mdialog); + if (res == GTK_RESPONSE_YES) + return TRUE; + else + return FALSE; +} +static void +close_edit_window (GtkWidget *win, GdkEvent *event, gpointer data) +{ + ModestEditorWindow *edit_win; ModestUIPrivate *priv; - GladeXML *ui_ref; - GtkWidget *btn, *dummy; - GtkTextBuffer *buf; + EditWinData *win_data; + + edit_win = (ModestEditorWindow *)data; + win_data = modest_editor_window_get_data(edit_win); + priv = MODEST_UI_GET_PRIVATE(win_data->modest_ui); + + // g_message("window was %s modified", modest_editor_window_get_modified(edit_win) ? "" : "not"); + + if (modest_editor_window_get_modified(edit_win)) { + if (close_edit_confirm_dialog(edit_win)) { + gtk_widget_hide (GTK_WIDGET(edit_win)); + modest_window_mgr_unregister(priv->modest_window_mgr, G_OBJECT(edit_win)); + gtk_widget_destroy(GTK_WIDGET(edit_win)); + // g_message("closing window"); + } /* else { + g_message("not closing window"); + }*/ + } +} - priv = MODEST_UI_GET_PRIVATE(modest_ui); - int height = modest_conf_get_int (priv->modest_conf, - MODEST_CONF_EDIT_WINDOW_HEIGHT,NULL); - int width = modest_conf_get_int (priv->modest_conf, - MODEST_CONF_EDIT_WINDOW_WIDTH,NULL); - ui_ref = glade_xml_new(MODEST_GLADE, "new_mail", NULL); - if (!ui_ref) +GtkContainer +*modest_ui_new_editor_window (ModestUI *modest_ui, gpointer *user_data) +{ + GtkWidget *top_container; + + GladeXML *glade_xml; + EditWinData *win_data; + + glade_xml = glade_xml_new(MODEST_GLADE, "new_mail_top_container", NULL); + if (!glade_xml) return NULL; - *user_data = ui_ref; + win_data = g_malloc(sizeof(EditWinData)); + win_data->modest_ui = modest_ui; + win_data->glade_xml = glade_xml; + *user_data = win_data; - top_container = glade_xml_get_widget(ui_ref, "new_mail_top_container"); + top_container = glade_xml_get_widget(glade_xml, "new_mail_top_container"); if (!top_container) { - g_object_unref(G_OBJECT(ui_ref)); + g_object_unref(G_OBJECT(glade_xml)); return NULL; } @@ -448,12 +510,14 @@ GtkContainer gboolean -modest_ui_editor_window_set_to_header(ModestEditorWindow *edit_win, gchar *to) +modest_ui_editor_window_set_to_header(const gchar *to, gpointer window_data) { GladeXML *glade_xml; GtkWidget *w; + EditWinData *win_data; - glade_xml = (GladeXML *)modest_editor_window_get_data(edit_win); + win_data = (EditWinData *)window_data; + glade_xml = win_data->glade_xml; w = glade_xml_get_widget(glade_xml, "to_entry"); gtk_entry_set_text(GTK_ENTRY(w), to); @@ -462,6 +526,77 @@ modest_ui_editor_window_set_to_header(ModestEditorWindow *edit_win, gchar *to) gboolean +modest_ui_editor_window_set_cc_header(const gchar *cc, gpointer window_data) +{ + GladeXML *glade_xml; + // GtkWidget *w; + EditWinData *win_data; + + win_data = (EditWinData *)window_data; + glade_xml = win_data->glade_xml; +/* + w = glade_xml_get_widget(glade_xml, "cc_entry"); + gtk_entry_set_text(GTK_ENTRY(w), cc); +*/ + return TRUE; +} + + +gboolean +modest_ui_editor_window_set_bcc_header(const gchar *bcc, gpointer window_data) +{ + GladeXML *glade_xml; + // GtkWidget *w; + EditWinData *win_data; + + win_data = (EditWinData *)window_data; + glade_xml = win_data->glade_xml; +/* + w = glade_xml_get_widget(glade_xml, "bcc_entry"); + gtk_entry_set_text(GTK_ENTRY(w), bcc); +*/ + return TRUE; +} + + +gboolean +modest_ui_editor_window_set_subject_header(const gchar *subject, gpointer window_data) +{ + GladeXML *glade_xml; + GtkWidget *w; + EditWinData *win_data; + + win_data = (EditWinData *)window_data; + glade_xml = win_data->glade_xml; + + w = glade_xml_get_widget(glade_xml, "subject_entry"); + gtk_entry_set_text(GTK_ENTRY(w), subject); + + return TRUE; +} + + +gboolean +modest_ui_editor_window_set_body(const gchar *body, gpointer window_data) +{ + GladeXML *glade_xml; + GtkWidget *body_view; + GtkTextBuffer *buf; + EditWinData *win_data; + + win_data = (EditWinData *)window_data; + glade_xml = win_data->glade_xml; + + body_view = glade_xml_get_widget(glade_xml, "body_view"); + buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(body_view)); + + gtk_text_buffer_set_text(GTK_TEXT_BUFFER(buf), body, -1); + + return TRUE; +} + +#if 0 +gboolean modest_ui_new_edit_window (ModestUI *modest_ui, const gchar* to, const gchar* cc, const gchar* bcc, const gchar* subject, const gchar *body, @@ -470,7 +605,7 @@ modest_ui_new_edit_window (ModestUI *modest_ui, const gchar* to, GtkWidget *win, *to_entry, *subject_entry, *body_view; ModestUIPrivate *priv; - GtkWidget *btn, *dummy; + GtkWidget *btn; GtkTextBuffer *buf; priv = MODEST_UI_GET_PRIVATE(modest_ui); @@ -491,7 +626,7 @@ modest_ui_new_edit_window (ModestUI *modest_ui, const gchar* to, modest_window_mgr_register (priv->modest_window_mgr, G_OBJECT(win), MODEST_EDIT_WINDOW, 0); } - + to_entry = glade_xml_get_widget (priv->glade_xml, "to_entry"); subject_entry = glade_xml_get_widget (priv->glade_xml, "subject_entry"); body_view = glade_xml_get_widget (priv->glade_xml, "body_view"); @@ -523,7 +658,7 @@ modest_ui_new_edit_window (ModestUI *modest_ui, const gchar* to, return TRUE; } - +#endif static void modest_ui_window_destroy (GtkWidget *win, GdkEvent *event, gpointer data) @@ -576,8 +711,8 @@ on_account_selector_selection_changed (GtkWidget *widget, free(account_name); } - -void +#if 0 +static void on_account_settings1_activate (GtkMenuItem *menuitem, gpointer user_data) { @@ -639,6 +774,7 @@ on_account_settings1_activate (GtkMenuItem *menuitem, g_object_unref(glade_xml); } +#endif static void @@ -822,12 +958,140 @@ modest_main_window_folder_tree (ModestAccountMgr *modest_acc_mgr, return folder_tree; } +static void on_editor_entry_changed(GtkEditable *editable, + gpointer user_data) +{ + GtkWidget *edit_win; + EditWinData *windata; + + edit_win = (GtkWidget *)user_data; + windata = (EditWinData *)modest_editor_window_get_data(MODEST_EDITOR_WINDOW(edit_win)); + + modest_editor_window_set_modified(MODEST_EDITOR_WINDOW(edit_win), TRUE); +} + +static void on_editor_buffer_changed (GtkTextBuffer *textbuffer, + gpointer user_data) +{ + GtkWidget *edit_win; + EditWinData *windata; + + edit_win = (GtkWidget *)user_data; + windata = (EditWinData *)modest_editor_window_get_data(MODEST_EDITOR_WINDOW(edit_win)); + + modest_editor_window_set_modified(MODEST_EDITOR_WINDOW(edit_win), TRUE); +} static void on_new_mail_clicked (GtkWidget *widget, ModestUI *modest_ui) { + GtkWidget *edit_win; + GladeXML *glade_xml; + GtkWidget *btn, *w; + GtkTextBuffer *buf; + EditWinData *windata; + ModestUIPrivate *priv; + gint height, width; + + g_return_if_fail (modest_ui); + //modest_ui_new_edit_window (modest_ui, "", "", "", "", "", NULL); + + edit_win = modest_editor_window_new(modest_ui); + windata = (EditWinData *)modest_editor_window_get_data(MODEST_EDITOR_WINDOW(edit_win)); + g_return_if_fail(windata); + + windata->edit_win = MODEST_EDITOR_WINDOW(edit_win); + glade_xml = windata->glade_xml; + btn = glade_xml_get_widget (glade_xml, "toolb_send"); + g_signal_connect (btn, "clicked", G_CALLBACK(on_send_button_clicked), + edit_win); + + w = glade_xml_get_widget (glade_xml, "to_entry"); + g_signal_connect(w, "changed", G_CALLBACK(on_editor_entry_changed), edit_win); + w = glade_xml_get_widget (glade_xml, "subject_entry"); + g_signal_connect(w, "changed", G_CALLBACK(on_editor_entry_changed), edit_win); + w = glade_xml_get_widget (glade_xml, "body_view"); + buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)); + g_signal_connect(buf, "changed", G_CALLBACK(on_editor_buffer_changed), edit_win); + + g_signal_connect (edit_win, "destroy-event", G_CALLBACK(close_edit_window), + edit_win); + g_signal_connect (edit_win, "delete-event", G_CALLBACK(close_edit_window), + edit_win); + + priv = MODEST_UI_GET_PRIVATE(windata->modest_ui); + height = modest_conf_get_int (priv->modest_conf, + MODEST_CONF_EDIT_WINDOW_HEIGHT, NULL); + width = modest_conf_get_int (priv->modest_conf, + MODEST_CONF_EDIT_WINDOW_WIDTH, NULL); + + // g_message("new editor win@%dx%d", width, height); + + gtk_widget_set_usize (GTK_WIDGET(edit_win), width, height); + gtk_window_set_title (GTK_WINDOW(edit_win), _("Untitled")); + modest_window_mgr_register(priv->modest_window_mgr, G_OBJECT(edit_win), MODEST_EDIT_WINDOW, 0); + gtk_widget_show(edit_win); +} + + +static void +new_editor_with_presets (ModestUI *modest_ui, const gchar *to_header, + const gchar *cc_header, const gchar *bcc_header, + const gchar *subject_header, const gchar *body) +{ + GtkWidget *edit_win; + GladeXML *glade_xml; + GtkWidget *btn, *w; + GtkTextBuffer *buf; + EditWinData *windata; + ModestUIPrivate *priv; + gint height, width; + g_return_if_fail (modest_ui); - modest_ui_new_edit_window (modest_ui, "", "", "", "", "", NULL); + + edit_win = modest_editor_window_new(modest_ui); + windata = (EditWinData *)modest_editor_window_get_data(MODEST_EDITOR_WINDOW(edit_win)); + g_return_if_fail(windata); + + glade_xml = windata->glade_xml; + btn = glade_xml_get_widget (glade_xml, "toolb_send"); + g_signal_connect (btn, "clicked", G_CALLBACK(on_send_button_clicked), + edit_win); + + w = glade_xml_get_widget (glade_xml, "to_entry"); + g_signal_connect(w, "changed", G_CALLBACK(on_editor_entry_changed), edit_win); + w = glade_xml_get_widget (glade_xml, "subject_entry"); + g_signal_connect(w, "changed", G_CALLBACK(on_editor_entry_changed), edit_win); + w = glade_xml_get_widget (glade_xml, "body_view"); + buf = gtk_text_view_get_buffer(GTK_TEXT_VIEW(w)); + g_signal_connect(buf, "changed", G_CALLBACK(on_editor_buffer_changed), edit_win); + + g_signal_connect (edit_win, "destroy-event", G_CALLBACK(close_edit_window), + edit_win); + g_signal_connect (edit_win, "delete-event", G_CALLBACK(close_edit_window), + edit_win); + + priv = MODEST_UI_GET_PRIVATE(windata->modest_ui); + height = modest_conf_get_int (priv->modest_conf, + MODEST_CONF_EDIT_WINDOW_HEIGHT, NULL); + width = modest_conf_get_int (priv->modest_conf, + MODEST_CONF_EDIT_WINDOW_WIDTH, NULL); + + // g_message("new editor win@%dx%d", width, height); + + gtk_widget_set_usize (GTK_WIDGET(edit_win), width, height); + gtk_window_set_title (GTK_WINDOW(edit_win), _("Untitled")); + modest_window_mgr_register(priv->modest_window_mgr, G_OBJECT(edit_win), MODEST_EDIT_WINDOW, 0); + + modest_editor_window_set_to_header(MODEST_EDITOR_WINDOW(edit_win), to_header); + modest_editor_window_set_cc_header(MODEST_EDITOR_WINDOW(edit_win), cc_header); + modest_editor_window_set_bcc_header(MODEST_EDITOR_WINDOW(edit_win), bcc_header); + modest_editor_window_set_subject_header(MODEST_EDITOR_WINDOW(edit_win), subject_header); + modest_editor_window_set_body(MODEST_EDITOR_WINDOW(edit_win), body); + + modest_editor_window_set_modified(MODEST_EDITOR_WINDOW(edit_win), FALSE); + + gtk_widget_show(edit_win); } @@ -910,11 +1174,11 @@ quoted_send_msg (ModestUI *modest_ui, quoted_send_type qstype) { switch (qstype) { case QUOTED_SEND_REPLY: g_string_prepend(re_sub, _("Re: ")); - modest_ui_new_edit_window (modest_ui, from, /* cc */ "", /* bcc */ "", re_sub->str, quoted, NULL); + new_editor_with_presets(modest_ui, from, /* cc */ "", /* bcc */ "", re_sub->str, quoted); break; case QUOTED_SEND_FORWARD: g_string_prepend(re_sub, _("Fwd: ")); - modest_ui_new_edit_window (modest_ui, /* from */ "", /* cc */ "", /* bcc */ "", re_sub->str, quoted, NULL); + new_editor_with_presets(modest_ui, /* from */ "", /* cc */ "", /* bcc */ "", re_sub->str, quoted); break; default: break; @@ -939,32 +1203,35 @@ on_forward_clicked (GtkWidget *widget, ModestUI *modest_ui) } - -/* FIXME: truly evil --> we cannot really assume that - * there is only one edit window open... - */ static void -on_send_button_clicked (GtkWidget *widget, ModestUI *modest_ui) +on_send_button_clicked (GtkWidget *widget, ModestEditorWindow *modest_editwin) { ModestTnyTransportActions *actions; + ModestUI *modest_ui; ModestUIPrivate *priv; GtkWidget *to_entry, *subject_entry, *body_view; const gchar *to, *subject, *email_from; gchar *body; GtkTextIter start, end; GtkTextBuffer *buf; - TnyAccountStoreIface *account_store; + /* TnyAccountStoreIface *account_store; const GList *transport_accounts; TnyTransportAccountIface *transport_account; - ModestConf *conf; + ModestConf *conf; */ ModestIdentityMgr *id_mgr; + EditWinData *win_data; + + + win_data = modest_editor_window_get_data(modest_editwin); + modest_ui = win_data->modest_ui; g_return_if_fail (modest_ui); actions = MODEST_TNY_TRANSPORT_ACTIONS (modest_tny_transport_actions_new ()); - priv = MODEST_UI_GET_PRIVATE(modest_ui); + priv = MODEST_UI_GET_PRIVATE(modest_ui); +#if 0 account_store = priv->account_store; transport_accounts = tny_account_store_iface_get_transport_accounts (account_store); @@ -974,10 +1241,10 @@ on_send_button_clicked (GtkWidget *widget, ModestUI *modest_ui) } else /* take the first one! */ transport_account = TNY_TRANSPORT_ACCOUNT_IFACE(transport_accounts->data); - - to_entry = glade_xml_get_widget (priv->glade_xml, "to_entry"); - subject_entry = glade_xml_get_widget (priv->glade_xml, "subject_entry"); - body_view = glade_xml_get_widget (priv->glade_xml, "body_view"); +#endif + to_entry = glade_xml_get_widget (win_data->glade_xml, "to_entry"); + subject_entry = glade_xml_get_widget (win_data->glade_xml, "subject_entry"); + body_view = glade_xml_get_widget (win_data->glade_xml, "body_view"); to = gtk_entry_get_text (GTK_ENTRY(to_entry)); subject = gtk_entry_get_text (GTK_ENTRY(subject_entry)); @@ -992,19 +1259,22 @@ on_send_button_clicked (GtkWidget *widget, ModestUI *modest_ui) MODEST_IDENTITY_EMAIL, NULL); g_message("sending \"%s\" %s ==> %s", subject, email_from, to); +/* modest_tny_transport_actions_send_message (actions, transport_account, email_from, to, "", "", subject, body); +*/ g_free (body); g_object_unref (G_OBJECT(actions)); - gtk_entry_set_text (GTK_ENTRY(to_entry), ""); - gtk_entry_set_text (GTK_ENTRY(subject_entry), ""); - gtk_text_buffer_set_text (buf, "", 0); - - gtk_widget_hide (glade_xml_get_widget (priv->glade_xml, "new_mail")); + gtk_widget_hide (GTK_WIDGET(modest_editwin)); + modest_window_mgr_unregister(priv->modest_window_mgr, G_OBJECT(modest_editwin)); + if (GTK_IS_WIDGET(modest_editwin)) { + gtk_widget_destroy(GTK_WIDGET(modest_editwin)); + } else + g_warning("editor window has vanished!"); } @@ -1016,7 +1286,7 @@ on_delete_clicked (GtkWidget *widget, ModestUI *modest_ui) GtkTreeModel *model; GtkTreeIter iter; GtkScrolledWindow *scroll; - GtkTreeModel *mymodel, *sortable; + GtkTreeModel *mymodel; ModestTnyHeaderTreeView *header_view; ModestTnyMsgView *msg_view; @@ -1052,7 +1322,7 @@ on_delete_clicked (GtkWidget *widget, ModestUI *modest_ui) if (G_LIKELY (header)) { TnyMsgFolderIface *folder; - const TnyMsgIface *msg; + // const TnyMsgIface *msg; if (GTK_IS_TREE_MODEL_SORT (model)) { @@ -1071,3 +1341,31 @@ on_delete_clicked (GtkWidget *widget, ModestUI *modest_ui) } } } + +static void +on_sendreceive_button_clicked (GtkWidget *widget, ModestUI *modest_ui) +{ + ModestUIPrivate *priv; + ModestTnyStoreActions *store_actions; + TnyAccountStoreIface *account_store; + const GList *store_accounts; + const GList *iter; + + g_return_if_fail (modest_ui); + + store_actions = MODEST_TNY_STORE_ACTIONS (modest_tny_store_actions_new ()); + priv = MODEST_UI_GET_PRIVATE(modest_ui); + + account_store = priv->account_store; + store_accounts = + tny_account_store_iface_get_store_accounts (account_store); + + for (iter = store_accounts; iter; iter = iter->next) + modest_tny_store_actions_update_folders (store_actions, + TNY_STORE_ACCOUNT_IFACE (iter->data)); + + /* TODO, lock, refresh display */ + + g_object_unref (store_actions); + +}