| | 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); |
|---|
| 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 | |
|---|