X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fhildon%2Fmodest-ui-main-view.c;h=06ce055140abd8b431d8a26dcac5ae3df817174a;hp=7203be1f4da859c2c5d64c1ffb8fd041d5c0147d;hb=cd52c8748afe0d7ef9987994d2f2386c2f53fbee;hpb=b0bf67c67967f06a50ab68befeb8d52d34001e0b diff --git a/src/hildon/modest-ui-main-view.c b/src/hildon/modest-ui-main-view.c index 7203be1..06ce055 100644 --- a/src/hildon/modest-ui-main-view.c +++ b/src/hildon/modest-ui-main-view.c @@ -1,8 +1,40 @@ +/* Copyright (c) 2006, Nokia Corporation + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the Nokia Corporation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + #include #include #include #include +#include + #ifdef HAVE_CONFIG_H #include #endif /*HAVE_CONFIG_H*/ @@ -21,9 +53,9 @@ #include "../modest-identity-mgr.h" #include "../modest-tny-account-store.h" -#include "../modest-tny-folder-tree-view.h" -#include "../modest-tny-header-tree-view.h" -#include "../modest-tny-msg-view.h" +#include "../widgets/modest-folder-view.h" +#include "../widgets/modest-header-view.h" +#include "../widgets/modest-msg-view.h" #include "../modest-tny-transport-actions.h" #include "../modest-tny-store-actions.h" @@ -46,11 +78,11 @@ static GtkWidget* modest_main_window_folder_tree (ModestAccountMgr *modest_acc_m static GtkWidget* modest_main_window_header_tree (TnyMsgFolderIface *folder); -static void on_folder_clicked (ModestTnyFolderTreeView *folder_tree, +static void on_folder_clicked (ModestFolderView *folder_tree, TnyMsgFolderIface *folder, gpointer data); -static void on_message_clicked (ModestTnyFolderTreeView *folder_tree, +static void on_message_clicked (ModestFolderView *folder_tree, TnyMsgIface *message, gpointer data); @@ -68,7 +100,6 @@ static void on_forward_attached_activated (GtkWidget *widget, gpointer user_data static void on_headers_status_update (GtkWidget *header_view, const gchar *msg, gint status, gpointer user_data); -static void on_status_cleanup (gpointer user_data); static void register_toolbar_callbacks (ModestUI *modest_ui); @@ -115,9 +146,9 @@ modest_ui_show_main_window (ModestUI *modest_ui) priv = MODEST_UI_GET_PRIVATE(modest_ui); height = modest_conf_get_int (priv->modest_conf, - MODEST_CONF_MAIN_WINDOW_HEIGHT,NULL); + MODEST_MAIN_WINDOW_HEIGHT,NULL); width = modest_conf_get_int (priv->modest_conf, - MODEST_CONF_MAIN_WINDOW_WIDTH,NULL); + MODEST_MAIN_WINDOW_WIDTH,NULL); program = HILDON_PROGRAM (hildon_program_get_instance ()); priv->program = program; @@ -151,18 +182,16 @@ modest_ui_show_main_window (ModestUI *modest_ui) g_signal_connect (G_OBJECT(folder_view), "folder_selected", G_CALLBACK(on_folder_clicked), modest_ui); - show_attachments_inline = modest_conf_get_bool(priv->modest_conf, - MODEST_CONF_MSG_VIEW_SHOW_ATTACHMENTS_INLINE, - NULL); - - message_view = GTK_WIDGET(modest_tny_msg_view_new (NULL, show_attachments_inline)); + show_attachments_inline = FALSE; + + message_view = GTK_WIDGET(modest_msg_view_new (NULL)); priv->message_view = message_view; if (!message_view) { g_warning ("failed to create message view"); return FALSE; } - g_signal_connect(G_OBJECT(message_view), "on_mailto_clicked", - G_CALLBACK(ui_on_mailto_clicked), modest_ui); + //g_signal_connect(G_OBJECT(message_view), "on_mailto_clicked", + // G_CALLBACK(ui_on_mailto_clicked), modest_ui); mail_paned = glade_xml_get_widget (priv->glade_xml, "mail_paned"); gtk_paned_add2 (GTK_PANED(mail_paned), message_view); @@ -226,11 +255,6 @@ modest_ui_show_main_window (ModestUI *modest_ui) g_signal_connect (forward_attached_menu_item, "activate", G_CALLBACK(on_forward_attached_activated), modest_ui); - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(view_attachments_item), - modest_conf_get_bool(priv->modest_conf, - MODEST_CONF_MSG_VIEW_SHOW_ATTACHMENTS_INLINE, - NULL)); - g_signal_connect (view_attachments_item, "toggled", G_CALLBACK(on_view_attachments_toggled), modest_ui); @@ -261,12 +285,12 @@ modest_ui_show_main_window (ModestUI *modest_ui) menu_item = glade_xml_get_widget (priv->glade_xml, "CloseMenuItem"); gtk_widget_reparent(menu_item, main_menu); - hildon_window_set_menu (win, main_menu); + hildon_window_set_menu (HILDON_WINDOW(win), GTK_MENU(main_menu)); main_toolbar = glade_xml_get_widget (priv->glade_xml, "toolbar1"); g_object_ref (main_toolbar); - gtk_container_remove (glade_xml_get_widget (priv->glade_xml, - "main_top_container"), main_toolbar); + gtk_container_remove (GTK_CONTAINER(glade_xml_get_widget (priv->glade_xml, + "main_top_container")), main_toolbar); hildon_window_add_toolbar (HILDON_WINDOW(win), GTK_TOOLBAR(main_toolbar)); gtk_widget_show_all (win); @@ -274,7 +298,8 @@ modest_ui_show_main_window (ModestUI *modest_ui) menu_item = glade_xml_get_widget (priv->glade_xml, "menubar1"); gtk_widget_hide(menu_item); - hildon_program_add_window (program, win); + hildon_program_add_window (HILDON_PROGRAM(program), + HILDON_WINDOW(win)); return TRUE; } @@ -340,14 +365,14 @@ register_toolbar_callbacks (ModestUI *modest_ui) static void -on_folder_clicked (ModestTnyFolderTreeView *folder_tree, +on_folder_clicked (ModestFolderView *folder_tree, TnyMsgFolderIface *folder, gpointer data) { GtkWidget *win; GtkWidget *button; - ModestTnyHeaderTreeView *tree_view; - ModestTnyMsgView *msg_view; + ModestHeaderView *tree_view; + ModestMsgView *msg_view; ModestUIPrivate *priv; GtkWidget *scrollview; @@ -357,13 +382,13 @@ on_folder_clicked (ModestTnyFolderTreeView *folder_tree, priv = MODEST_UI_GET_PRIVATE(data); scrollview = glade_xml_get_widget (priv->glade_xml,"mail_list"); - tree_view = MODEST_TNY_HEADER_TREE_VIEW (priv->header_view); + tree_view = MODEST_HEADER_VIEW (priv->header_view); win = glade_xml_get_widget (priv->glade_xml, "main"); gtk_window_set_title (GTK_WINDOW(win), tny_msg_folder_iface_get_name(folder)); - modest_tny_header_tree_view_set_folder (tree_view, folder); + modest_header_view_set_folder (tree_view, folder); priv->current_folder = folder; button = glade_xml_get_widget (priv->glade_xml, "toolb_reply"); @@ -381,29 +406,29 @@ on_folder_clicked (ModestTnyFolderTreeView *folder_tree, gtk_widget_set_sensitive(button, FALSE); } - msg_view = MODEST_TNY_MSG_VIEW (priv->message_view); + msg_view = MODEST_MSG_VIEW (priv->message_view); g_return_if_fail (msg_view); - modest_tny_msg_view_set_message (msg_view, NULL); + modest_msg_view_set_message (msg_view, NULL); } static void -on_message_clicked (ModestTnyFolderTreeView *folder_tree, +on_message_clicked (ModestFolderView *folder_tree, TnyMsgIface *message, gpointer data) { GtkWidget *button; - ModestTnyMsgView *msg_view; + ModestMsgView *msg_view; ModestUIPrivate *priv; g_return_if_fail (data); priv = MODEST_UI_GET_PRIVATE (data); - msg_view = MODEST_TNY_MSG_VIEW (priv->message_view); + msg_view = MODEST_MSG_VIEW (priv->message_view); + + modest_msg_view_set_message (msg_view, message); - modest_tny_msg_view_set_message (msg_view, message); - button = glade_xml_get_widget (priv->glade_xml, "toolb_reply"); if (button) { gtk_widget_set_sensitive(button, TRUE); @@ -425,19 +450,17 @@ modest_main_window_header_tree (TnyMsgFolderIface *folder) int i; GSList *columns = NULL; GtkWidget *header_tree; - ModestTnyHeaderTreeViewColumn cols[] = { - MODEST_TNY_HEADER_TREE_VIEW_COLUMN_MSGTYPE, - MODEST_TNY_HEADER_TREE_VIEW_COLUMN_ATTACH, - MODEST_TNY_HEADER_TREE_VIEW_COLUMN_FROM, - MODEST_TNY_HEADER_TREE_VIEW_COLUMN_SUBJECT, - MODEST_TNY_HEADER_TREE_VIEW_COLUMN_RECEIVED_DATE + ModestHeaderViewColumn cols[] = { + MODEST_HEADER_VIEW_COLUMN_MSGTYPE, + MODEST_HEADER_VIEW_COLUMN_ATTACH, + MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER }; - for (i = 0 ; i != sizeof(cols) / sizeof(ModestTnyHeaderTreeViewColumn); ++i) + for (i = 0 ; i != sizeof(cols) / sizeof(ModestHeaderViewColumn); ++i) columns = g_slist_append (columns, GINT_TO_POINTER(cols[i])); - header_tree = GTK_WIDGET(modest_tny_header_tree_view_new(folder, columns, - MODEST_TNY_HEADER_TREE_VIEW_STYLE_NORMAL)); + header_tree = GTK_WIDGET(modest_header_view_new(folder, columns, + MODEST_HEADER_VIEW_STYLE_NORMAL)); g_slist_free (columns); if (!header_tree) { @@ -455,7 +478,7 @@ modest_main_window_folder_tree (ModestAccountMgr *modest_acc_mgr, { GtkWidget *folder_tree; - folder_tree = GTK_WIDGET (modest_tny_folder_tree_view_new (account_store)); + folder_tree = GTK_WIDGET (modest_folder_view_new (account_store)); if (!folder_tree) { g_warning ("could not create folder list"); return NULL; @@ -488,7 +511,7 @@ on_view_attachments_toggled(GtkWidget *widget, gpointer user_data) { ModestUI *modest_ui = (ModestUI *)user_data; GtkWidget *view_attachments_item; - ModestTnyMsgView *msg_view; + ModestMsgView *msg_view; ModestUIPrivate *priv; gboolean view_attachments_inline; @@ -496,17 +519,10 @@ on_view_attachments_toggled(GtkWidget *widget, gpointer user_data) view_attachments_item = glade_xml_get_widget (priv->glade_xml, "menu_view_attachments"); g_return_if_fail(view_attachments_item); - msg_view = MODEST_TNY_MSG_VIEW(priv->message_view); + msg_view = MODEST_MSG_VIEW(priv->message_view); view_attachments_inline = gtk_check_menu_item_get_active( GTK_CHECK_MENU_ITEM(view_attachments_item)); - - modest_conf_set_bool(priv->modest_conf, - MODEST_CONF_MSG_VIEW_SHOW_ATTACHMENTS_INLINE, - view_attachments_inline, - NULL); - - modest_tny_msg_view_set_show_attachments_inline_flag(msg_view, view_attachments_inline); } @@ -519,18 +535,18 @@ on_delete_clicked (GtkWidget *widget, gpointer user_data) GtkTreeIter iter; GtkTreeModel *mymodel; - ModestTnyHeaderTreeView *header_view; - ModestTnyMsgView *msg_view; + ModestHeaderView *header_view; + ModestMsgView *msg_view; ModestUIPrivate *priv; g_return_if_fail (modest_ui); priv = MODEST_UI_GET_PRIVATE(modest_ui); - msg_view = MODEST_TNY_MSG_VIEW(priv->message_view); + msg_view = MODEST_MSG_VIEW(priv->message_view); g_return_if_fail (msg_view); - header_view = MODEST_TNY_HEADER_TREE_VIEW(priv->header_view); + header_view = MODEST_HEADER_VIEW(priv->header_view); g_return_if_fail (header_view); sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(header_view)); @@ -571,24 +587,30 @@ on_sendreceive_button_clicked (GtkWidget *widget, gpointer user_data) ModestUI *modest_ui = (ModestUI *)user_data; ModestUIPrivate *priv; TnyAccountStoreIface *account_store; - const GList *store_accounts; - const GList *iter; + TnyListIface *store_accounts = NULL; + TnyIteratorIface *iter; g_return_if_fail (modest_ui); 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 (TNY_STORE_ACCOUNT_IFACE (iter->data)); + store_accounts = TNY_LIST_IFACE(tny_list_new()); + tny_account_store_iface_get_accounts (account_store, store_accounts, + TNY_ACCOUNT_STORE_IFACE_STORE_ACCOUNTS); + iter = tny_list_iface_create_iterator (store_accounts); + + while (!tny_iterator_iface_is_done(iter)) { + modest_tny_store_actions_update_folders + (TNY_STORE_ACCOUNT_IFACE (tny_iterator_iface_current(iter))); + tny_iterator_iface_next (iter); } - + g_object_unref (iter); + g_object_unref (store_accounts); + if (priv->header_view && priv->current_folder) { - modest_tny_header_tree_view_set_folder (MODEST_TNY_HEADER_TREE_VIEW(priv->header_view), + modest_header_view_set_folder (MODEST_HEADER_VIEW(priv->header_view), priv->current_folder); gtk_widget_queue_draw (priv->header_view); }