diff options
author | Benjamin Otte <otte@gnome.org> | 2009-06-24 18:41:03 +0200 |
---|---|---|
committer | Benjamin Otte <otte@gnome.org> | 2009-10-15 22:00:09 +0200 |
commit | affa8c84597651931ac7518da211616d4dd0392e (patch) | |
tree | 3f9d73acd0ac996c2863c066f5e9dcb305c6cfda /gtk/gtkfilesystemmodel.c | |
parent | 10e8d6abca18836c69da9101421fc35f29a0a207 (diff) | |
download | gtk+-affa8c84597651931ac7518da211616d4dd0392e.tar.gz |
Add a constructor to filesystem model that does not monitor a directory
This is in preparation for switching search and recent models to use
GtkFileSystemModel
Diffstat (limited to 'gtk/gtkfilesystemmodel.c')
-rw-r--r-- | gtk/gtkfilesystemmodel.c | 78 |
1 files changed, 62 insertions, 16 deletions
diff --git a/gtk/gtkfilesystemmodel.c b/gtk/gtkfilesystemmodel.c index 8da4a0f218..de89c6001d 100644 --- a/gtk/gtkfilesystemmodel.c +++ b/gtk/gtkfilesystemmodel.c @@ -1136,39 +1136,85 @@ gtk_file_system_model_set_directory (GtkFileSystemModel *model, } +static GtkFileSystemModel * +_gtk_file_system_model_new_valist (GtkFileSystemModelGetValue get_func, + gpointer get_data, + guint n_columns, + va_list args) +{ + GtkFileSystemModel *model; + + model = g_object_new (GTK_TYPE_FILE_SYSTEM_MODEL, NULL); + model->get_func = get_func; + model->get_data = get_data; + + gtk_file_system_model_set_n_columns (model, n_columns, args); + + return model; +} + /** * _gtk_file_system_model_new: + * @get_func: function to call for getting a value + * @get_data: user data argument passed to @get_func + * @n_columns: number of columns + * @...: @n_columns #GType types for the columns + * + * Creates a new #GtkFileSystemModel object. You need to add files + * to the list using _gtk_file_system_model_add_file(). + * + * Return value: the newly created #GtkFileSystemModel + **/ +GtkFileSystemModel * +_gtk_file_system_model_new (GtkFileSystemModelGetValue get_func, + gpointer get_data, + guint n_columns, + ...) +{ + GtkFileSystemModel *model; + va_list args; + + g_return_val_if_fail (get_func != NULL, NULL); + g_return_val_if_fail (n_columns > 0, NULL); + + va_start (args, n_columns); + model = _gtk_file_system_model_new_valist (get_func, get_data, n_columns, args); + va_end (args); + + return model; +} + +/** + * _gtk_file_system_model_new_for_directory: * @directory: the directory to show. * @attributes: attributes to immediately load or %NULL for all - * @error: location to store error, or %NULL. * * Creates a new #GtkFileSystemModel object. The #GtkFileSystemModel * object wraps the given @directory as a #GtkTreeModel. - * The model will query the given @attributes immediately and only add - * files with those attributes present. + * The model will query the given directory with the given @attributes + * and add all files inside the directory automatically. If supported, + * it will also monitor the drectory and update the model's + * contents to reflect changes, if the @directory supports monitoring. * - * Return value: the newly created #GtkFileSystemModel object, or NULL if there - * was an error. + * Return value: the newly created #GtkFileSystemModel **/ GtkFileSystemModel * -_gtk_file_system_model_new (GFile * dir, - const gchar * attributes, - GtkFileSystemModelGetValue get_func, - gpointer get_data, - guint n_columns, - ...) +_gtk_file_system_model_new_for_directory (GFile * dir, + const gchar * attributes, + GtkFileSystemModelGetValue get_func, + gpointer get_data, + guint n_columns, + ...) { GtkFileSystemModel *model; va_list args; g_return_val_if_fail (G_IS_FILE (dir), NULL); - - model = g_object_new (GTK_TYPE_FILE_SYSTEM_MODEL, NULL); - model->get_func = get_func; - model->get_data = get_data; + g_return_val_if_fail (get_func != NULL, NULL); + g_return_val_if_fail (n_columns > 0, NULL); va_start (args, n_columns); - gtk_file_system_model_set_n_columns (model, n_columns, args); + model = _gtk_file_system_model_new_valist (get_func, get_data, n_columns, args); va_end (args); gtk_file_system_model_set_directory (model, dir, attributes); |