gtk_bitset_iter_is_valid (&iter);
gtk_bitset_iter_next (&iter, &i))
{
- GtkFileSystemItem *item;
GFileInfo *info;
gboolean is_folder;
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
- info = _gtk_file_system_item_get_file_info (item);
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
is_folder = _gtk_file_info_consider_as_directory (info);
all_folders &= is_folder;
all_files &= !is_folder;
n_selected++;
- g_clear_object (&item);
+ g_clear_object (&info);
}
g_assert (n_selected == 0 || !(all_files && all_folders));
gtk_bitset_iter_is_valid (&iter);
gtk_bitset_iter_next (&iter, &i))
{
- GtkFileSystemItem *item;
+ GFileInfo *info;
GFile *file;
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
- file = _gtk_file_system_item_get_file (item);
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
+ file = _gtk_file_info_get_file (info);
_gtk_bookmarks_manager_insert_bookmark (impl->bookmarks_manager, file, 0, NULL);
- g_clear_object (&item);
+ g_clear_object (&info);
}
}
gtk_bitset_iter_is_valid (&iter);
gtk_bitset_iter_next (&iter, &i))
{
- GtkFileSystemItem *item;
GFileInfo *info;
GFile *file;
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
- file = _gtk_file_system_item_get_file (item);
- info = _gtk_file_system_item_get_file_info (item);
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
+ file = _gtk_file_info_get_file (info);
confirm_delete (impl, file, info);
- g_clear_object (&item);
+ g_clear_object (&info);
}
}
gtk_bitset_iter_is_valid (&iter);
gtk_bitset_iter_next (&iter, &i))
{
- GtkFileSystemItem *item;
+ GFileInfo *info;
GError *error = NULL;
GFile *file;
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
- file = _gtk_file_system_item_get_file (item);
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
+ file = _gtk_file_info_get_file (info);
if (!g_file_trash (file, NULL, &error))
error_trashing_file (impl, file, error);
- g_clear_object (&item);
+ g_clear_object (&info);
}
}
gpointer data)
{
GtkFileChooserWidget *impl = data;
- GtkFileSystemItem *item;
GtkBitsetIter iter;
GdkRectangle rect;
GtkBitset *bitset;
+ GFileInfo *info;
GFile *file;
double x, y;
guint position;
/* insensitive until we change the name */
gtk_widget_set_sensitive (impl->rename_file_rename_button, FALSE);
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), position);
- file = _gtk_file_system_item_get_file (item);
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), position);
+ file = _gtk_file_info_get_file (info);
+ g_clear_object (&info);
+
impl->rename_file_source_file = g_object_ref (file);
rect = (GdkRectangle) { 0, 0, 1, 1 };
GtkFileChooserWidget *impl;
glong time;
+ if (!info)
+ return NULL;
+
impl = GTK_FILE_CHOOSER_WIDGET (gtk_widget_get_ancestor (gtk_list_item_get_child (item),
GTK_TYPE_FILE_CHOOSER_WIDGET));
g_assert (impl != NULL);
return my_g_format_date_for_display (impl, time);
}
+static char *
+column_view_get_file_display_name (GtkListItem *item,
+ GFileInfo *info)
+{
+ if (info)
+ return g_strdup (g_file_info_get_display_name (info));
+ else
+ return NULL;
+}
+
static char *
column_view_get_file_time (GtkListItem *item,
GFileInfo *info)
GtkFileChooserWidget *impl;
glong time;
+ if (!info)
+ return NULL;
+
impl = GTK_FILE_CHOOSER_WIDGET (gtk_widget_get_ancestor (gtk_list_item_get_child (item),
GTK_TYPE_FILE_CHOOSER_WIDGET));
g_assert (impl != NULL);
{
GtkFileChooserWidget *impl;
- if (_gtk_file_info_consider_as_directory (info))
+ if (!info || _gtk_file_info_consider_as_directory (info))
return NULL;
impl = GTK_FILE_CHOOSER_WIDGET (gtk_widget_get_ancestor (gtk_list_item_get_child (item),
}
static char *
-column_view_get_location (GtkListItem *list_item)
+column_view_get_location (GtkListItem *list_item,
+ GFileInfo *info)
{
GtkFileChooserWidget *impl;
- GtkFileSystemItem *item;
GFile *home_location;
GFile *dir_location;
GFile *file;
char *location;
- item = gtk_list_item_get_item (list_item);
- if (!item)
+ if (!info)
return NULL;
- file = _gtk_file_system_item_get_file (item);
+ file = _gtk_file_info_get_file (info);
home_location = g_file_new_for_path (g_get_home_dir ());
if (file)
if (dir_location && file_is_recent_uri (dir_location))
{
const char *target_uri;
- GFileInfo *info;
GFile *target;
- info = _gtk_file_system_item_get_file_info (item);
target_uri = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_TARGET_URI);
target = g_file_new_for_uri (target_uri);
g_object_unref (dir_location);
column_view_get_size (GtkListItem *item,
GFileInfo *info)
{
- if (!_gtk_file_info_consider_as_directory (info))
+ if (info && !_gtk_file_info_consider_as_directory (info))
return g_format_size (g_file_info_get_size (info));
else
return NULL;
}
static char *
-column_view_get_tooltip_text (GtkListItem *list_item)
+column_view_get_tooltip_text (GtkListItem *list_item,
+ GFileInfo *info)
{
GtkFileChooserWidget *impl;
- GtkFileSystemItem *item;
GFile *file;
- item = gtk_list_item_get_item (list_item);
- if (!item)
+ if (!info)
return NULL;
impl = GTK_FILE_CHOOSER_WIDGET (gtk_widget_get_ancestor (gtk_list_item_get_child (list_item),
if (impl->operation_mode == OPERATION_MODE_BROWSE)
return NULL;
- file = _gtk_file_system_item_get_file (item);
+ file = _gtk_file_info_get_file (info);
return g_file_get_path (file);
}
put_recent_folder_in_pathbar (GtkFileChooserWidget *impl,
guint position)
{
- GtkFileSystemItem *item;
+ GFileInfo *info;
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), position);
- g_assert (item != NULL);
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), position);
+ g_assert (info != NULL);
_gtk_path_bar_set_file (GTK_PATH_BAR (impl->browse_path_bar),
- _gtk_file_system_item_get_file (item),
+ _gtk_file_info_get_file (info),
FALSE);
- g_clear_object (&item);
+ g_clear_object (&info);
}
/* Sets the location bar in the appropriate mode according to the
GSList *files)
{
GtkFileSystemModel *fsmodel;
- gboolean enabled_hidden, removed_filters;
gboolean selected_a_file;
GSList *walk;
g_assert (fsmodel == impl->browse_files_model);
- enabled_hidden = impl->show_hidden;
- removed_filters = (impl->current_filter == NULL);
-
selected_a_file = FALSE;
for (walk = files; walk; walk = walk->next)
{
- GtkFileSystemItem *item;
- GFile *file = walk->data;
+ GFileInfo *info;
+ GFile *file;
+ guint i;
+
+ file = walk->data;
/* Is it a hidden file? */
- item = _gtk_file_system_model_get_item_for_file (fsmodel, file);
- if (!item)
+ info = _gtk_file_system_model_get_info_for_file (fsmodel, file);
+ if (!info)
continue;
+ /* TODO: Reimplement showing hidden files and removing filters */
+#if 0
+ gboolean enabled_hidden, removed_filters;
+
+ enabled_hidden = impl->show_hidden;
+ removed_filters = (impl->current_filter == NULL);
+
if (!_gtk_file_system_item_is_visible (item))
{
GFileInfo *info = _gtk_file_system_item_get_file_info (item);
}
/* Okay, can we select the file now? */
- item = _gtk_file_system_model_get_item_for_file (fsmodel, file);
+ item = _gtk_file_system_model_get_info_for_file (fsmodel, file);
if (!item)
continue;
+#endif
- if (_gtk_file_system_item_is_visible (item))
+ /* TODO: "accidentally" quadratic! */
+
+ for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (impl->selection_model)); i++)
{
- guint i;
+ GFileInfo *info2;
- /* TODO: "accidentally" quadratic! */
+ info2 = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
- for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (impl->selection_model)); i++)
+ if (info2 == info)
{
- GtkFileSystemItem *item2 = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
-
- if (item2 == item)
- {
- gtk_selection_model_select_item (impl->selection_model,
- i,
- FALSE);
- g_clear_object (&item2);
- selected_a_file = TRUE;
- break;
- }
-
- g_clear_object (&item2);
+ gtk_selection_model_select_item (impl->selection_model,
+ i,
+ FALSE);
+ g_clear_object (&info);
+ selected_a_file = TRUE;
+ break;
}
+
+ g_clear_object (&info);
}
}
{
if (impl->operation_mode == OPERATION_MODE_BROWSE)
{
- GtkFileSystemItem *item;
GFileInfo *info;
gboolean change_entry;
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), first);
- info = _gtk_file_system_item_get_file_info (item);
- g_clear_object (&item);
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), first);
g_free (impl->browse_files_last_selected_name);
impl->browse_files_last_selected_name =
_gtk_file_chooser_entry_select_filename (GTK_FILE_CHOOSER_ENTRY (impl->location_entry));
}
+ g_clear_object (&info);
+
return;
}
else if (impl->operation_mode == OPERATION_MODE_RECENT
&& impl->action == GTK_FILE_CHOOSER_ACTION_SAVE)
{
- GtkFileSystemItem *item;
+ GFileInfo *info;
GFile *folder;
/* Set the base folder on the name entry, so it will do completion relative to the correct recent-folder */
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), first);
- folder = _gtk_file_system_item_get_file (item);
- g_clear_object (&item);
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), first);
+ folder = _gtk_file_info_get_file (info);
+ g_clear_object (&info);
_gtk_file_chooser_entry_set_base_folder (GTK_FILE_CHOOSER_ENTRY (impl->location_entry), folder);
return;
gtk_bitset_iter_is_valid (&iter);
gtk_bitset_iter_next (&iter, &i))
{
- GtkFileSystemItem *item;
+ GFileInfo *info;
GFile *f;
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
- f = _gtk_file_system_item_get_file (item);
- g_clear_object (&item);
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
+ f = _gtk_file_info_get_file (info);
+ g_clear_object (&info);
if (g_file_equal (f, file))
break;
for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (impl->selection_model)); i++)
{
- GtkFileSystemItem *item;
GFileInfo *info;
gboolean is_folder;
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
- info = _gtk_file_system_item_get_file_info (item);
- g_clear_object (&item);
-
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
is_folder = _gtk_file_info_consider_as_directory (info);
if ((is_folder && impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER) ||
gtk_selection_model_select_item (impl->selection_model, i, FALSE);
else
gtk_selection_model_unselect_item (impl->selection_model, i);
+
+ g_clear_object (&info);
}
}
}
gtk_bitset_iter_is_valid (&iter);
gtk_bitset_iter_next (&iter, &i))
{
- GtkFileSystemItem *item;
+ GFileInfo *info;
GFile *file;
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
- file = _gtk_file_system_item_get_file (item);
- g_clear_object (&item);
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
+ file = _gtk_file_info_get_file (info);
+ g_clear_object (&info);
if (!file_from_entry || !g_file_equal (file_from_entry, file))
g_list_store_append (result, file);
static void
switch_to_selected_folder (GtkFileChooserWidget *impl)
{
- GtkFileSystemItem *item;
+ GFileInfo *info;
GFile *file;
g_assert (!impl->select_multiple);
g_assert (GTK_IS_SINGLE_SELECTION (impl->selection_model));
- item = gtk_single_selection_get_selected_item (GTK_SINGLE_SELECTION (impl->selection_model));
- g_assert (item != NULL);
+ info = gtk_single_selection_get_selected_item (GTK_SINGLE_SELECTION (impl->selection_model));
+ g_assert (info != NULL);
- file = _gtk_file_system_item_get_file (item);
+ file = _gtk_file_info_get_file (info);
change_folder_and_display_error (impl, file, FALSE);
}
static const char *
get_display_name_from_file_list (GtkFileChooserWidget *impl)
{
- GtkFileSystemItem *item;
GFileInfo *info;
g_assert (!impl->select_multiple);
g_assert (GTK_IS_SINGLE_SELECTION (impl->selection_model));
- item = gtk_single_selection_get_selected_item (GTK_SINGLE_SELECTION (impl->selection_model));
- g_assert (item != NULL);
-
- info = _gtk_file_system_item_get_file_info (item);
+ info = gtk_single_selection_get_selected_item (GTK_SINGLE_SELECTION (impl->selection_model));
+ g_assert (info != NULL);
return g_file_info_get_display_name (info);
}
gtk_bitset_iter_is_valid (&iter);
gtk_bitset_iter_next (&iter, &i))
{
- GtkFileSystemItem *item;
+ GFileInfo *info;
GFile *file;
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
- file = _gtk_file_system_item_get_file (item);
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
+ file = _gtk_file_info_get_file (info);
result = g_slist_prepend (result, g_object_ref (file));
- g_clear_object (&item);
+ g_clear_object (&info);
}
return result;
gtk_bitset_iter_is_valid (&iter);
gtk_bitset_iter_next (&iter, &i))
{
- GtkFileSystemItem *item;
GFileInfo *info;
- item = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
- info = _gtk_file_system_item_get_file_info (item);
-
+ info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), i);
result = g_slist_prepend (result, g_object_ref (info));
- g_clear_object (&item);
+ g_clear_object (&info);
}
return result;
guint position,
GtkFileChooserWidget *self)
{
- GtkFileSystemItem *item;
GFileInfo *info;
- item = g_list_model_get_item (G_LIST_MODEL (self->selection_model),
+ info = g_list_model_get_item (G_LIST_MODEL (self->selection_model),
position);
- info = _gtk_file_system_item_get_file_info (item);
if (_gtk_file_info_consider_as_directory (info))
{
- GFile *file = _gtk_file_system_item_get_file (item);
+ GFile *file = _gtk_file_info_get_file (info);
change_folder_and_display_error (self, file, FALSE);
}
else if (self->action == GTK_FILE_CHOOSER_ACTION_OPEN ||
gtk_widget_activate_default (GTK_WIDGET (self));
}
- g_clear_object (&item);
+ g_clear_object (&info);
}
static void
gtk_widget_class_bind_template_callback (widget_class, click_cb);
gtk_widget_class_bind_template_callback (widget_class, long_press_cb);
gtk_widget_class_bind_template_callback (widget_class, column_view_get_file_date);
+ gtk_widget_class_bind_template_callback (widget_class, column_view_get_file_display_name);
gtk_widget_class_bind_template_callback (widget_class, column_view_get_file_time);
gtk_widget_class_bind_template_callback (widget_class, column_view_get_file_type);
gtk_widget_class_bind_template_callback (widget_class, column_view_get_location);
{
GFile * file; /* file represented by this node or NULL for editable */
GFileInfo * info; /* info for this file or NULL if unknown */
- GtkFileSystemItem * item; /* item for the GListModel implementation */
guint row; /* if valid (see model->n_valid_indexes), visible nodes before and including
* this one - see the "Structure" comment above.
/*** GListModel ***/
-struct _GtkFileSystemItem {
- GObject parent;
-
- FileModelNode *node; /* unonwned */
-};
-
-typedef struct _GtkFileSystemItemClass
-{
- GObjectClass parent_class;
-} GtkFileSystemItemClass;
-
-G_DEFINE_TYPE (GtkFileSystemItem, _gtk_file_system_item, G_TYPE_OBJECT)
-
-enum {
- PROP_0,
- PROP_FILE,
- PROP_FILE_INFO,
- PROP_NAME,
- N_PROPS,
-};
-
-static GParamSpec *item_properties[N_PROPS] = { NULL, };
-
-static void
-_gtk_file_system_item_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GtkFileSystemItem *self = GTK_FILE_SYSTEM_ITEM (object);
-
- switch (prop_id)
- {
- case PROP_FILE:
- g_value_set_object (value, self->node->file);
- break;
-
- case PROP_FILE_INFO:
- g_value_set_object (value, self->node->info);
- break;
-
- case PROP_NAME:
- g_value_set_string (value, g_file_info_get_display_name (self->node->info));
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- }
-}
-
-static void
-_gtk_file_system_item_class_init (GtkFileSystemItemClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- object_class->get_property = _gtk_file_system_item_get_property;
-
- item_properties[PROP_FILE] =
- g_param_spec_object ("file", NULL, NULL,
- G_TYPE_FILE,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
-
- item_properties[PROP_FILE_INFO] =
- g_param_spec_object ("file-info", NULL, NULL,
- G_TYPE_FILE_INFO,
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
-
- item_properties[PROP_NAME] =
- g_param_spec_string ("name", NULL, NULL, "",
- G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
-
- g_object_class_install_properties (object_class, N_PROPS, item_properties);
-}
-
-static void
-_gtk_file_system_item_init (GtkFileSystemItem *self)
-{
-}
-
static GType
list_model_get_item_type (GListModel *list_model)
{
- return GTK_TYPE_FILE_SYSTEM_ITEM;
+ return G_TYPE_FILE_INFO;
}
static guint
return NULL;
node = get_node (model, position + 1);
- return g_object_ref (node->item);
+ return g_object_ref (node->info);
}
static void
int v;
FileModelNode *node = get_node (model, i);
- g_clear_object (&node->item);
g_clear_object (&node->file);
g_clear_object (&node->info);
return TRUE;
}
+
+GFileInfo *
+_gtk_file_system_model_get_info_for_file (GtkFileSystemModel *model,
+ GFile *file)
+{
+ FileModelNode *node;
+ guint i;
+
+ g_return_val_if_fail (GTK_IS_FILE_SYSTEM_MODEL (model), FALSE);
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+
+ i = node_get_for_file (model, file);
+
+ if (i == 0)
+ return NULL;
+
+ node = get_node (model, i);
+ return node->info;
+}
+
/* When an element is added or removed to the model->files array, we need to
* update the model->file_lookup mappings of (node, index), as the indexes
* change. This function adds the specified increment to the index in that pair
position = model->files->len - 1;
- /* 'node' is now invalid, fetch the actual node from the array - this
- * will all go away when we finish the transition to GtkColumnView
- * and drop the GtkTreeModel code.
- */
- node = get_node (model, position);
- node->item = g_object_new (GTK_TYPE_FILE_SYSTEM_ITEM, NULL);
- node->item->node = node;
-
if (!model->frozen)
node_compute_visibility_and_filters (model, model->files->len -1);
node_invalidate_index (model, id);
- g_clear_object (&node->item);
-
g_hash_table_remove (model->file_lookup, file);
g_object_unref (node->file);
adjust_file_lookup (model, id, -1);
return model->dir;
}
-GFile *
-_gtk_file_system_item_get_file (GtkFileSystemItem *item)
-{
- return item->node->file;
-}
-
-GFileInfo *
-_gtk_file_system_item_get_file_info (GtkFileSystemItem *item)
-{
- return item->node->info;
-}
-
-gboolean
-_gtk_file_system_item_is_visible (GtkFileSystemItem *item)
-{
- return item->node->visible;
-}
-
-GtkFileSystemItem *
-_gtk_file_system_model_get_item_for_file(GtkFileSystemModel *model,
- GFile *file)
-{
- FileModelNode *node;
- guint i;
-
- i = node_get_for_file (model, file);
-
- if (i == 0)
- return NULL;
-
- node = get_node (model, i);
- return node->item;
-}
GtkWidget *image;
- GtkFileSystemItem *item;
GCancellable *cancellable;
+ GFileInfo *info;
};
typedef struct
enum {
PROP_0,
- PROP_ITEM,
+ PROP_INFO,
N_PROPS,
};
update_image (GtkFileThumbnail *self)
{
GtkIconTheme *icon_theme;
- GFileInfo *info;
GIcon *icon;
int scale;
- info = _gtk_file_system_item_get_file_info (self->item);
- if (!g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_ICON))
+ if (!g_file_info_has_attribute (self->info, G_FILE_ATTRIBUTE_STANDARD_ICON))
return FALSE;
scale = gtk_widget_get_scale_factor (GTK_WIDGET (self));
icon_theme = gtk_icon_theme_get_for_display (gtk_widget_get_display (GTK_WIDGET (self)));
- icon = _gtk_file_info_get_icon (info, ICON_SIZE, scale, icon_theme);
+ icon = _gtk_file_info_get_icon (self->info, ICON_SIZE, scale, icon_theme);
gtk_image_set_from_gicon (GTK_IMAGE (self->image), icon);
GtkFileThumbnail *self = user_data; /* might be unreffed if operation was cancelled */
GFile *file = G_FILE (object);
GFileInfo *queried;
- GFileInfo *info;
queried = g_file_query_info_finish (file, result, NULL);
if (queried == NULL)
return;
- info = _gtk_file_system_item_get_file_info (self->item);
- copy_attribute (info, queried, G_FILE_ATTRIBUTE_THUMBNAIL_PATH);
- copy_attribute (info, queried, G_FILE_ATTRIBUTE_THUMBNAILING_FAILED);
- copy_attribute (info, queried, G_FILE_ATTRIBUTE_STANDARD_ICON);
+ copy_attribute (self->info, queried, G_FILE_ATTRIBUTE_THUMBNAIL_PATH);
+ copy_attribute (self->info, queried, G_FILE_ATTRIBUTE_THUMBNAILING_FAILED);
+ copy_attribute (self->info, queried, G_FILE_ATTRIBUTE_STANDARD_ICON);
update_image (self);
static void
get_thumbnail (GtkFileThumbnail *self)
{
- if (!self->item)
+ if (!self->info)
return;
if (!update_image (self))
{
- GFileInfo *info;
GFile *file;
- info = _gtk_file_system_item_get_file_info (self->item);
- if (g_file_info_has_attribute (info, "filechooser::queried"))
+ if (g_file_info_has_attribute (self->info, "filechooser::queried"))
return;
g_assert (self->cancellable == NULL);
self->cancellable = g_cancellable_new ();
- file = _gtk_file_system_item_get_file (self->item);
- g_file_info_set_attribute_boolean (info, "filechooser::queried", TRUE);
+ file = _gtk_file_info_get_file (self->info);
+ g_file_info_set_attribute_boolean (self->info, "filechooser::queried", TRUE);
g_file_query_info_async (file,
G_FILE_ATTRIBUTE_THUMBNAIL_PATH ","
G_FILE_ATTRIBUTE_THUMBNAILING_FAILED ","
{
GtkFileThumbnail *self = (GtkFileThumbnail *)object;
- _gtk_file_thumbnail_set_item (self, NULL);
+ _gtk_file_thumbnail_set_info (self, NULL);
g_clear_pointer (&self->image, gtk_widget_unparent);
switch (prop_id)
{
- case PROP_ITEM:
- g_value_set_object (value, self->item);
+ case PROP_INFO:
+ g_value_set_object (value, self->info);
break;
default:
switch (prop_id)
{
- case PROP_ITEM:
- _gtk_file_thumbnail_set_item (self, g_value_get_object (value));
+ case PROP_INFO:
+ _gtk_file_thumbnail_set_info (self, g_value_get_object (value));
break;
default:
object_class->get_property = _gtk_file_thumbnail_get_property;
object_class->set_property = _gtk_file_thumbnail_set_property;
- properties[PROP_ITEM] =
- g_param_spec_object ("item", NULL, NULL,
- GTK_TYPE_FILE_SYSTEM_ITEM,
+ properties[PROP_INFO] =
+ g_param_spec_object ("file-info", NULL, NULL,
+ G_TYPE_FILE_INFO,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (object_class, N_PROPS, properties);
gtk_widget_set_parent (self->image, GTK_WIDGET (self));
}
-GtkFileSystemItem *
-_gtk_file_thumbnail_get_item (GtkFileThumbnail *self)
+GFileInfo *
+_gtk_file_thumbnail_get_info (GtkFileThumbnail *self)
{
g_assert (GTK_IS_FILE_THUMBNAIL (self));
- return self->item;
+ return self->info;
}
void
-_gtk_file_thumbnail_set_item (GtkFileThumbnail *self,
- GtkFileSystemItem *item)
+_gtk_file_thumbnail_set_info (GtkFileThumbnail *self,
+ GFileInfo *info)
{
g_assert (GTK_IS_FILE_THUMBNAIL (self));
- g_assert (item == NULL || GTK_IS_FILE_SYSTEM_ITEM (item));
+ g_assert (info == NULL || G_IS_FILE_INFO (info));
- if (g_set_object (&self->item, item))
+ if (g_set_object (&self->info, info))
{
cancel_thumbnail (self);
get_thumbnail (self);
- g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ITEM]);
+ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_INFO]);
}
}