Changeset 1789

Show
Ignore:
Timestamp:
04/13/07 18:29:47
Author:
pvanhoof
Message:

Demo

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/tests/c-demo/tny-demoui-summary-view.c

    r1788 r1789  
    486486        GtkTreeModel *sortable; 
    487487        gboolean refresh = FALSE; 
     488        GtkSelectionMode mode; 
    488489 
    489490#ifndef ASYNC_HEADERS 
     
    491492#endif 
    492493 
    493  
    494         if (gtk_tree_selection_get_selected (selection, &model, &iter)) 
    495         { 
     494        mode = gtk_tree_selection_get_mode (selection); 
     495 
     496        if (mode == GTK_SELECTION_SINGLE) 
     497        { 
     498          if (gtk_tree_selection_get_selected (selection, &model, &iter)) 
     499          { 
    496500                TnyFolder *folder; 
    497501                gint type; 
     
    566570                        g_object_unref (G_OBJECT (folder)); 
    567571                } 
     572          } 
     573        } else { 
     574                GList *list; 
     575                TnyFolder *merge = tny_merge_folder_new (); 
     576                GtkTreeView *header_view = GTK_TREE_VIEW (priv->header_view); 
     577 
     578                list = gtk_tree_selection_get_selected_rows (priv->mailbox_select, &model); 
     579 
     580                while (list) 
     581                { 
     582                        GtkTreePath *path = list->data; 
     583                        GtkTreeIter iter; 
     584                        TnyFolder *folder; 
     585 
     586                        gtk_tree_model_get_iter (model, &iter, path); 
     587                        gtk_tree_model_get (model, &iter,  
     588                                TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN,  
     589                                &folder, -1); 
     590 
     591                        if (folder && TNY_IS_FOLDER (folder)) 
     592                        { 
     593                                tny_merge_folder_add_folder (TNY_MERGE_FOLDER (merge), folder); 
     594                                g_object_unref (folder); 
     595                        } 
     596 
     597                        gtk_tree_path_free (path); 
     598                        list = g_list_next (list); 
     599                } 
     600 
     601                hmodel = tny_gtk_header_list_model_new (); 
     602                tny_gtk_header_list_model_set_folder (TNY_GTK_HEADER_LIST_MODEL (hmodel),  
     603                        merge, FALSE); 
     604 
     605 
     606                sortable = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (hmodel)); 
     607 
     608                gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (sortable), 
     609                        TNY_GTK_HEADER_LIST_MODEL_DATE_RECEIVED_COLUMN, 
     610                        tny_gtk_header_list_model_received_date_sort_func,  
     611                        NULL, NULL); 
     612 
     613                gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (sortable), 
     614                        TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_COLUMN, 
     615                        tny_gtk_header_list_model_sent_date_sort_func,  
     616                        NULL, NULL); 
     617 
     618                set_header_view_model (header_view, sortable); 
     619 
     620                g_list_free (list); 
    568621        } 
    569622 
     
    929982        TnyDemouiSummaryView *self = user_data; 
    930983        TnyDemouiSummaryViewPriv *priv = TNY_DEMOUI_SUMMARY_VIEW_GET_PRIVATE (self); 
    931         GtkTreeModel *model, *hmodel; 
    932         GtkTreeModel *sortable; 
    933         GList *list; 
    934         TnyFolder *merge = tny_merge_folder_new (); 
    935         GtkTreeView *header_view = GTK_TREE_VIEW (priv->header_view); 
    936  
    937         list = gtk_tree_selection_get_selected_rows (priv->mailbox_select, &model); 
    938  
    939         while (list) 
    940         { 
    941                 GtkTreePath *path = list->data; 
    942                 GtkTreeIter iter; 
    943                 TnyFolder *folder; 
    944  
    945                 gtk_tree_model_get_iter (model, &iter, path); 
    946                 gtk_tree_model_get (model, &iter,  
    947                         TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN,  
    948                         &folder, -1); 
    949  
    950                 if (folder && TNY_IS_FOLDER (folder)) 
    951                 { 
    952                         tny_merge_folder_add_folder (TNY_MERGE_FOLDER (merge), folder); 
    953                         g_object_unref (folder); 
    954                 } 
    955  
    956                 gtk_tree_path_free (path); 
    957                 list = g_list_next (list); 
    958         } 
    959  
    960         hmodel = tny_gtk_header_list_model_new (); 
    961         tny_gtk_header_list_model_set_folder (TNY_GTK_HEADER_LIST_MODEL (hmodel),  
    962                 merge, FALSE); 
    963  
    964  
    965         sortable = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (hmodel)); 
    966  
    967         gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (sortable), 
    968                 TNY_GTK_HEADER_LIST_MODEL_DATE_RECEIVED_COLUMN, 
    969                 tny_gtk_header_list_model_received_date_sort_func,  
    970                 NULL, NULL); 
    971  
    972         gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (sortable), 
    973                 TNY_GTK_HEADER_LIST_MODEL_DATE_SENT_COLUMN, 
    974                 tny_gtk_header_list_model_sent_date_sort_func,  
    975                 NULL, NULL); 
    976  
    977         set_header_view_model (header_view, sortable); 
    978  
    979         g_list_free (list); 
     984        GtkSelectionMode mode; 
     985 
     986        mode = gtk_tree_selection_get_mode (priv->mailbox_select); 
     987 
     988        if (mode == GTK_SELECTION_SINGLE) 
     989                gtk_tree_selection_set_mode (priv->mailbox_select, GTK_SELECTION_MULTIPLE); 
     990        else 
     991                gtk_tree_selection_set_mode (priv->mailbox_select, GTK_SELECTION_SINGLE); 
     992 
    980993} 
    981994 
     
    10311044mailbox_view_do_popup_menu (GtkWidget *my_widget, GdkEventButton *event, gpointer user_data) 
    10321045{ 
     1046        TnyDemouiSummaryView *self = user_data; 
     1047        TnyDemouiSummaryViewPriv *priv = TNY_DEMOUI_SUMMARY_VIEW_GET_PRIVATE (self); 
    10331048        GtkWidget *menu; 
    10341049        GtkWidget *mrename, *mdelete, *mcreate, *mmerge; 
    10351050        int button, event_time; 
     1051        GtkSelectionMode mode; 
    10361052 
    10371053        menu = gtk_menu_new (); 
     
    10401056        mcreate = gtk_menu_item_new_with_label (_("Create folder")); 
    10411057        mdelete = gtk_menu_item_new_with_label (_("Delete folder")); 
    1042         mmerge = gtk_menu_item_new_with_label (_("Merge view of selected")); 
     1058 
     1059 
     1060        mode = gtk_tree_selection_get_mode (priv->mailbox_select); 
     1061 
     1062        if (mode == GTK_SELECTION_SINGLE) 
     1063                mmerge = gtk_menu_item_new_with_label (_("Merge view of selected mode")); 
     1064        else 
     1065                mmerge = gtk_menu_item_new_with_label (_("Select one folder mode")); 
    10431066 
    10441067        g_signal_connect (G_OBJECT (mrename), "activate",