diff options
Diffstat (limited to 'shell/e-storage-set-view.c')
-rw-r--r-- | shell/e-storage-set-view.c | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/shell/e-storage-set-view.c b/shell/e-storage-set-view.c index 0b8b7642a9..618f27f4cf 100644 --- a/shell/e-storage-set-view.c +++ b/shell/e-storage-set-view.c @@ -98,6 +98,7 @@ struct _EStorageSetViewPrivate { unsigned int show_folders : 1; unsigned int show_checkboxes : 1; unsigned int allow_dnd : 1; + unsigned int search_enabled : 1; /* The `Evolution::ShellComponentDnd::SourceFolder' interface for the folder we are dragging from, or CORBA_OBJECT_NIL if no dragging is @@ -1876,6 +1877,7 @@ init (EStorageSetView *storage_set_view) priv->show_folders = TRUE; priv->show_checkboxes = FALSE; priv->allow_dnd = TRUE; + priv->search_enabled = FALSE; priv->drag_corba_source_interface = CORBA_OBJECT_NIL; @@ -2251,6 +2253,7 @@ e_storage_set_view_set_show_checkboxes (EStorageSetView *storage_set_view, void *func_data) { EStorageSetViewPrivate *priv; + ETableState *state; g_return_if_fail (storage_set_view != NULL); g_return_if_fail (E_IS_STORAGE_SET_VIEW (storage_set_view)); @@ -2264,10 +2267,14 @@ e_storage_set_view_set_show_checkboxes (EStorageSetView *storage_set_view, priv->show_checkboxes = show; + state = e_tree_get_state_object (E_TREE (storage_set_view)); + g_free (state->columns); + state->col_count = show ? 2 : 1; + state->columns = g_new(int, state->col_count); + state->columns [state->col_count - 1] = 0; if (show) - e_tree_load_state (E_TREE (storage_set_view), EVOLUTION_ETSPECDIR "/e-storage-set-view-checkboxes.etstate"); - else - e_tree_load_state (E_TREE (storage_set_view), EVOLUTION_ETSPECDIR "/e-storage-set-view-no-checkboxes.etstate"); + state->columns [0] = 1; + e_tree_set_state_object (E_TREE (storage_set_view), state); priv->has_checkbox_func = has_checkbox_func; priv->has_checkbox_func_data = func_data; @@ -2283,6 +2290,35 @@ e_storage_set_view_get_show_checkboxes (EStorageSetView *storage_set_view) } void +e_storage_set_view_enable_search (EStorageSetView *storage_set_view, + gboolean enable) +{ + ETableState *state; + ETableSortColumn col; + + g_return_if_fail (storage_set_view != NULL); + g_return_if_fail (E_IS_STORAGE_SET_VIEW (storage_set_view)); + + enable = !! enable; + + if (enable == storage_set_view->priv->search_enabled) + return; + + storage_set_view->priv->search_enabled = enable; + + state = e_tree_get_state_object (E_TREE (storage_set_view)); + + if (enable) { + col.column = 0; + col.ascending = TRUE; + e_table_sort_info_sorting_set_nth (state->sort_info, 0, col); + } else + e_table_sort_info_sorting_truncate (state->sort_info, 0); + + e_tree_set_state_object (E_TREE (storage_set_view), state); +} + +void e_storage_set_view_set_checkboxes_list (EStorageSetView *storage_set_view, GList *checkboxes) { |