Merge branch 'bgo593793-filechooser-recent-folders-master'

This commit is contained in:
Federico Mena Quintero 2011-08-26 12:44:40 -05:00
commit 52711beba5

View File

@ -9424,7 +9424,6 @@ typedef struct
{
GtkFileChooserDefault *impl;
GList *items;
guint needs_sorting : 1;
} RecentLoadData;
static void
@ -9436,6 +9435,7 @@ recent_idle_cleanup (gpointer data)
gtk_tree_view_set_model (GTK_TREE_VIEW (impl->browse_files_tree_view),
GTK_TREE_MODEL (impl->recent_model));
file_list_set_sort_column_ids (impl);
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (impl->recent_model), MODEL_COL_MTIME, GTK_SORT_DESCENDING);
set_busy_cursor (impl, FALSE);
@ -9444,16 +9444,6 @@ recent_idle_cleanup (gpointer data)
g_free (load_data);
}
static gint
recent_sort_mru (gconstpointer a,
gconstpointer b)
{
GtkRecentInfo *info_a = (GtkRecentInfo *) a;
GtkRecentInfo *info_b = (GtkRecentInfo *) b;
return (gtk_recent_info_get_modified (info_b) - gtk_recent_info_get_modified (info_a));
}
static gint
get_recent_files_limit (GtkWidget *widget)
{
@ -9529,32 +9519,18 @@ recent_idle_load (gpointer data)
if (!impl->recent_manager)
return FALSE;
/* first iteration: load all the items */
load_data->items = gtk_recent_manager_get_items (impl->recent_manager);
if (!load_data->items)
{
load_data->items = gtk_recent_manager_get_items (impl->recent_manager);
if (!load_data->items)
return FALSE;
return FALSE;
load_data->needs_sorting = TRUE;
if (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN)
populate_model_with_recent_items (impl, load_data->items);
else
populate_model_with_folders (impl, load_data->items);
return TRUE;
}
/* second iteration: MRU sorting and clamping, and populating the model */
if (load_data->needs_sorting)
{
load_data->items = g_list_sort (load_data->items, recent_sort_mru);
if (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN)
populate_model_with_recent_items (impl, load_data->items);
else
populate_model_with_folders (impl, load_data->items);
g_list_foreach (load_data->items, (GFunc) gtk_recent_info_unref, NULL);
g_list_free (load_data->items);
load_data->items = NULL;
}
g_list_foreach (load_data->items, (GFunc) gtk_recent_info_unref, NULL);
g_list_free (load_data->items);
load_data->items = NULL;
return FALSE;
}
@ -9574,7 +9550,6 @@ recent_start_loading (GtkFileChooserDefault *impl)
load_data = g_new (RecentLoadData, 1);
load_data->impl = impl;
load_data->items = NULL;
load_data->needs_sorting = TRUE;
/* begin lazy loading the recent files into the model */
impl->load_recent_id = gdk_threads_add_idle_full (G_PRIORITY_HIGH_IDLE + 30,