Changeset 2848

Show
Ignore:
Timestamp:
10/18/07 15:36:05
Author:
pvanhoof
Message:
        • Implemented a small test that makes it possible to transfer messages

from one folder to another using the demoui

        • Removed a few invalid assertion
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r2846 r2848  
    66        * Added a -DMERGEFOLDERTEST that will perform a test for 
    77        TnyMergeFolder 
     8        * Implemented a small test that makes it possible to transfer messages 
     9        from one folder to another using the demoui 
     10        * Removed a few invalid assertions 
    811 
    9122007-10-17  Philip Van Hoof  <pvanhoof@gnome.org> 
  • trunk/libtinymail/tny-folder-store.c

    r2825 r2848  
    308308        g_assert (TNY_IS_FOLDER_STORE (self)); 
    309309        g_assert (list); 
    310         g_assert (callback); 
    311310        g_assert (TNY_IS_LIST (list)); 
    312311        if (query) 
  • trunk/libtinymail/tny-folder.c

    r2825 r2848  
    808808#ifdef DBC /* require */ 
    809809        g_assert (TNY_IS_FOLDER (self)); 
    810         g_assert (callback); 
    811         g_assert (status_callback); 
    812810        g_assert (TNY_FOLDER_GET_IFACE (self)->refresh_async_func != NULL); 
    813811#endif 
     
    10321030        g_assert (folder_dst); 
    10331031        g_assert (TNY_IS_FOLDER (folder_dst)); 
    1034         g_assert (callback); 
    10351032        g_assert (TNY_FOLDER_GET_IFACE (self)->transfer_msgs_async_func != NULL); 
    10361033#endif 
     
    11901187        g_assert (header); 
    11911188        g_assert (TNY_IS_HEADER (header)); 
    1192         g_assert (callback); 
    1193         g_assert (status_callback); 
    11941189        g_assert (TNY_FOLDER_GET_IFACE (self)->get_msg_async_func != NULL); 
    11951190#endif 
  • trunk/libtinymailui-gtk/tny-gtk-folder-store-tree-model.c

    r2825 r2848  
    307307                        break; 
    308308                } 
    309                 g_object_unref (G_OBJECT (citem)); 
     309                g_object_unref (citem); 
    310310 
    311311          } while (gtk_tree_model_iter_next (model, &iter)); 
  • trunk/tests/c-demo/tny-demoui-summary-view.c

    r2825 r2848  
    15211521} 
    15221522 
     1523 
     1524typedef struct { 
     1525        TnyHeader *header; 
     1526        TnyFolder *to_folder; 
     1527} OnMoveToFolderInfo; 
     1528 
     1529static void  
     1530on_move_to_folder_activate (GtkMenuItem *mitem, gpointer user_data) 
     1531{ 
     1532        OnMoveToFolderInfo *info = user_data; 
     1533        TnyFolder *folder = tny_header_get_folder (info->header); 
     1534 
     1535        if (folder)  
     1536        { 
     1537                TnyList *headers = tny_simple_list_new (); 
     1538 
     1539                g_print ("Transfering: %s to %s\n", 
     1540                        tny_header_get_subject (info->header),  
     1541                        tny_folder_get_name (info->to_folder)); 
     1542 
     1543                tny_list_prepend (headers, (GObject *) info->header); 
     1544                tny_folder_transfer_msgs_async (folder, headers, info->to_folder,  
     1545                        FALSE, NULL, NULL, user_data); 
     1546                g_object_unref (headers); 
     1547        } 
     1548 
     1549        return; 
     1550} 
     1551 
     1552static void 
     1553recursive_all_folders (GtkWidget *my_widget, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data, GtkWidget *menu) 
     1554{ 
     1555        TnyDemouiSummaryView *self = user_data; 
     1556        TnyDemouiSummaryViewPriv *priv = TNY_DEMOUI_SUMMARY_VIEW_GET_PRIVATE (self); 
     1557 
     1558        do { 
     1559                GtkTreeIter niter; 
     1560                GObject *citem; 
     1561                gchar *line; 
     1562 
     1563                gtk_tree_model_get (model, iter,  
     1564                        TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN,  
     1565                        &citem, TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, &line, -1); 
     1566 
     1567                if (TNY_IS_FOLDER (citem)) 
     1568                { 
     1569                        GtkTreeIter hiter; 
     1570                        GtkTreeModel *hmodel = gtk_tree_view_get_model (priv->header_view); 
     1571                        GtkTreeSelection *sel = gtk_tree_view_get_selection (priv->header_view); 
     1572 
     1573                        if (gtk_tree_selection_get_selected (sel, &hmodel, &hiter)) 
     1574                        { 
     1575                                /* Small leak, indeed */ 
     1576                                OnMoveToFolderInfo *info = g_new0 (OnMoveToFolderInfo, 1); 
     1577                                GtkWidget *menuitem = NULL; 
     1578 
     1579                                info->to_folder = (TnyFolder *) citem; 
     1580                                gtk_tree_model_get (hmodel, &hiter,  
     1581                                        TNY_GTK_HEADER_LIST_MODEL_INSTANCE_COLUMN,  
     1582                                        &info->header, -1); 
     1583 
     1584                                menuitem = gtk_menu_item_new_with_label (tny_folder_get_name ((TnyFolder *)citem)); 
     1585 
     1586                                g_signal_connect (G_OBJECT (menuitem), "activate", 
     1587                                        G_CALLBACK (on_move_to_folder_activate), info); 
     1588 
     1589                                gtk_widget_show (menuitem); 
     1590                                gtk_menu_prepend (menu, menuitem); 
     1591                        } 
     1592                } 
     1593 
     1594                g_object_unref (citem); 
     1595 
     1596                if (gtk_tree_model_iter_children (model, &niter, iter)) { 
     1597                        recursive_all_folders (my_widget, model, &niter, user_data, menu); 
     1598                } 
     1599 
     1600        } while (gtk_tree_model_iter_next (model, iter)); 
     1601} 
     1602 
    15231603static void 
    15241604header_view_do_popup_menu (GtkWidget *my_widget, GdkEventButton *event, gpointer user_data) 
    15251605{ 
     1606        TnyDemouiSummaryView *self = user_data; 
     1607        TnyDemouiSummaryViewPriv *priv = TNY_DEMOUI_SUMMARY_VIEW_GET_PRIVATE (self); 
     1608 
    15261609        GtkWidget *menu; 
    15271610        int button, event_time; 
     1611        GtkTreeView *view = priv->mailbox_view; 
     1612        GtkTreeModel *model = gtk_tree_view_get_model (view); 
    15281613 
    15291614        menu = gtk_menu_new (); 
    1530         g_signal_connect (menu, "deactivate", G_CALLBACK (gtk_widget_destroy), NULL); 
    1531  
    1532         /* ... add menu items ... */ 
     1615 
     1616        if (model) { 
     1617                GtkTreeIter iter; 
     1618                gtk_tree_model_get_iter_first (model, &iter); 
     1619                recursive_all_folders (my_widget, model, &iter, user_data, menu); 
     1620        } 
    15331621 
    15341622        if (event)