/** * g_vfs_ftp_dir_cache_entry_add: * @entry: the entry to add data to * @file: the file to add. The function takes ownership of the argument. * @info: the file info of the @file. The function takes ownership of the * reference. * * Adds a new file entry to the directory belonging to @entry. This function * must only be called from a @GVfsFtpListDirFunc. **/ void g_vfs_ftp_dir_cache_entry_add (GVfsFtpDirCacheEntry *entry, GVfsFtpFile *file, GFileInfo *info) { g_return_if_fail (entry != NULL); g_return_if_fail (file != NULL); g_return_if_fail (G_IS_FILE_INFO (info)); g_hash_table_insert (entry->files, file, info); }
static void xfdesktop_regular_file_icon_update_file_info(XfdesktopFileIcon *icon, GFileInfo *info) { XfdesktopRegularFileIcon *regular_file_icon = XFDESKTOP_REGULAR_FILE_ICON(icon); const gchar *old_display_name; gchar *new_display_name; g_return_if_fail(XFDESKTOP_IS_REGULAR_FILE_ICON(icon)); g_return_if_fail(G_IS_FILE_INFO(info)); /* release the old file info */ if(regular_file_icon->priv->file_info) { g_object_unref(regular_file_icon->priv->file_info); regular_file_icon->priv->file_info = NULL; } regular_file_icon->priv->file_info = g_object_ref(info); if(regular_file_icon->priv->filesystem_info) g_object_unref(regular_file_icon->priv->filesystem_info); regular_file_icon->priv->filesystem_info = g_file_query_filesystem_info(regular_file_icon->priv->file, XFDESKTOP_FILESYSTEM_INFO_NAMESPACE, NULL, NULL); /* get both, old and new display name */ old_display_name = regular_file_icon->priv->display_name; new_display_name = xfdesktop_file_utils_get_display_name(regular_file_icon->priv->file, regular_file_icon->priv->file_info); /* check whether the display name has changed with the info update */ if(g_strcmp0 (old_display_name, new_display_name) != 0) { /* replace the display name */ g_free (regular_file_icon->priv->display_name); regular_file_icon->priv->display_name = new_display_name; /* notify listeners of the label change */ xfdesktop_icon_label_changed(XFDESKTOP_ICON(icon)); } else { /* no change, release the new display name */ g_free (new_display_name); } /* invalidate the tooltip */ g_free(regular_file_icon->priv->tooltip); regular_file_icon->priv->tooltip = NULL; /* not really easy to check if this changed or not, so just invalidate it */ xfdesktop_file_icon_invalidate_icon(XFDESKTOP_FILE_ICON(icon)); xfdesktop_icon_invalidate_pixbuf(XFDESKTOP_ICON(icon)); xfdesktop_icon_pixbuf_changed(XFDESKTOP_ICON(icon)); }
void ide_project_file_set_file_info (IdeProjectFile *file, GFileInfo *file_info) { IdeProjectFilePrivate *priv = ide_project_file_get_instance_private (file); g_return_if_fail (IDE_IS_PROJECT_FILE (file)); g_return_if_fail (!file_info || G_IS_FILE_INFO (file_info)); if (g_set_object (&priv->file_info, file_info)) { g_object_notify_by_pspec (G_OBJECT (file), properties [PROP_FILE_INFO]); g_object_notify_by_pspec (G_OBJECT (file), properties [PROP_NAME]); } }
/** * autoar_query_mime_type_supported: * @file: a #GFile to check if its mime type is supported * * This function will query the file's mime type and then call * autoar_check_mime_type_supported(), so it does blocking IO. * * Returns: an #AutoarFilter **/ gboolean autoar_query_mime_type_supported (GFile *file) { g_autoptr (GFileInfo) info = NULL; g_return_val_if_fail (G_IS_FILE (file), FALSE); info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, NULL); g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE); return autoar_check_mime_type_supported (g_file_info_get_content_type (info)); }
static void set_gvfs_metadata (GFileInfo *info, const gchar *key, const gchar *value) { g_return_if_fail (G_IS_FILE_INFO (info)); if (value != NULL) { g_file_info_set_attribute_string (info, key, value); } else { /* Unset the key */ g_file_info_set_attribute (info, key, G_FILE_ATTRIBUTE_TYPE_INVALID, NULL); } }
G_GNUC_INTERNAL gboolean gcab_file_update_info (GCabFile *self, GFileInfo *info) { GTimeVal tv; time_t time; struct tm *m; // Use GDateTime when 2.26 in RHEL6 g_return_val_if_fail (GCAB_IS_FILE (self), FALSE); g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE); g_file_info_get_modification_time (info, &tv); time = tv.tv_sec; m = localtime (&time); self->cfile.name = self->name; self->cfile.usize = g_file_info_get_size (info); self->cfile.fattr = GCAB_FILE_ATTRIBUTE_ARCH; self->cfile.date = ((m->tm_year + 1900 - 1980 ) << 9 ) + ((m->tm_mon+1) << 5 ) + (m->tm_mday); self->cfile.time = (m->tm_hour << 11) + (m->tm_min << 5) + (m->tm_sec / 2); return TRUE; }
XfdesktopRegularFileIcon * xfdesktop_regular_file_icon_new(GFile *file, GFileInfo *file_info, GdkScreen *screen, XfdesktopFileIconManager *fmanager) { XfdesktopRegularFileIcon *regular_file_icon; g_return_val_if_fail(G_IS_FILE(file), NULL); g_return_val_if_fail(G_IS_FILE_INFO(file_info), NULL); g_return_val_if_fail(GDK_IS_SCREEN(screen), NULL); regular_file_icon = g_object_new(XFDESKTOP_TYPE_REGULAR_FILE_ICON, NULL); regular_file_icon->priv->file = g_object_ref(file); regular_file_icon->priv->file_info = g_object_ref(file_info); /* set the display name */ regular_file_icon->priv->display_name = xfdesktop_file_utils_get_display_name(file, file_info); /* query file system information from GIO */ regular_file_icon->priv->filesystem_info = g_file_query_filesystem_info(regular_file_icon->priv->file, XFDESKTOP_FILESYSTEM_INFO_NAMESPACE, NULL, NULL); /* query file information from GIO */ regular_file_icon->priv->file_info = g_file_query_info(regular_file_icon->priv->file, XFDESKTOP_FILE_INFO_NAMESPACE, G_FILE_QUERY_INFO_NONE, NULL, NULL); regular_file_icon->priv->gscreen = screen; regular_file_icon->priv->fmanager = fmanager; g_signal_connect_swapped(G_OBJECT(gtk_icon_theme_get_for_screen(screen)), "changed", G_CALLBACK(xfdesktop_icon_invalidate_pixbuf), regular_file_icon); if(g_file_info_get_file_type(regular_file_icon->priv->file_info) == G_FILE_TYPE_DIRECTORY) { regular_file_icon->priv->monitor = g_file_monitor(regular_file_icon->priv->file, G_FILE_MONITOR_NONE, NULL, NULL); g_signal_connect(regular_file_icon->priv->monitor, "changed", G_CALLBACK(cb_folder_contents_changed), regular_file_icon); g_object_get(regular_file_icon->priv->fmanager, "show-thumbnails", ®ular_file_icon->priv->show_thumbnails, NULL); /* Keep an eye on the show-thumbnails property for folder thumbnails */ g_signal_connect(G_OBJECT(fmanager), "notify::show-thumbnails", G_CALLBACK(cb_show_thumbnails_notify), regular_file_icon); } return regular_file_icon; }