static void vfs_file_set_metadata_as_list (NautilusFile *file, const char *key, char **value) { GFile *location; GFileInfo *info; char *gio_key; info = g_file_info_new (); gio_key = g_strconcat ("metadata::", key, NULL); g_file_info_set_attribute_stringv (info, gio_key, value); g_free (gio_key); location = nautilus_file_get_location (file); g_file_set_attributes_async (location, info, 0, G_PRIORITY_DEFAULT, NULL, set_metadata_callback, nautilus_file_ref (file)); g_object_unref (info); g_object_unref (location); }
/** * gedit_document_set_metadata: * @doc: a #GeditDocument * @first_key: name of the first key to set * @...: (allow-none): value for the first key, followed optionally by more key/value pairs, * followed by %NULL. * * Sets metadata on a document. */ void gedit_document_set_metadata (GeditDocument *doc, const gchar *first_key, ...) { const gchar *key; const gchar *value; va_list var_args; GFileInfo *info; GFile *location; g_return_if_fail (GEDIT_IS_DOCUMENT (doc)); g_return_if_fail (first_key != NULL); info = g_file_info_new (); va_start (var_args, first_key); for (key = first_key; key; key = va_arg (var_args, const gchar *)) { value = va_arg (var_args, const gchar *); if (value != NULL) { g_file_info_set_attribute_string (info, key, value); } else { /* Unset the key */ g_file_info_remove_attribute (info, key); } } va_end (var_args); if (doc->priv->metadata_info != NULL) { g_file_info_copy_into (info, doc->priv->metadata_info); } location = gtk_source_file_get_location (doc->priv->file); if (location != NULL) { g_file_set_attributes_async (location, info, G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, NULL, (GAsyncReadyCallback) set_attributes_cb, NULL); } g_object_unref (info); }
static void pdf_load_job_cache_set_attributes (PdfLoadJob *job) { GFileInfo *info; GFile *file; if (job->download_file != NULL) { gchar *path; path = g_file_get_path (job->download_file); /* In case the downloaded file is not the final PDF, then we * need to convert it. */ if (g_strcmp0 (path, job->pdf_path) != 0) { /* make the file private */ g_chmod (path, 0600); job->uri = g_file_get_uri (job->download_file); pdf_load_job_from_openoffice (job); g_free (path); return; } g_clear_object (&job->download_file); g_free (path); } /* make the file private */ g_chmod (job->pdf_path, 0600); file = g_file_new_for_path (job->pdf_path); info = g_file_info_new (); g_file_info_set_attribute_uint64 (info, G_FILE_ATTRIBUTE_TIME_MODIFIED, job->original_file_mtime); g_file_set_attributes_async (file, info, G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, job->cancellable, cache_set_attributes_ready_cb, job); g_object_unref (info); g_object_unref (file); }
void didReceiveResponse(ResourceHandle*, const ResourceResponse& response) { m_response = adoptGRef(response.toSoupMessage()); m_download->didReceiveResponse(response); if (response.httpStatusCode() >= 400) { downloadFailed(platformDownloadNetworkError(response.httpStatusCode(), response.url().string(), response.httpStatusText())); return; } String suggestedFilename = response.suggestedFilename(); if (suggestedFilename.isEmpty()) { URL url = response.url(); url.setQuery(String()); url.removeFragmentIdentifier(); suggestedFilename = decodeURLEscapeSequences(url.lastPathComponent()); } bool overwrite; String destinationURI = m_download->decideDestinationWithSuggestedFilename(suggestedFilename, overwrite); if (destinationURI.isEmpty()) { #if PLATFORM(GTK) GOwnPtr<char> buffer(g_strdup_printf(_("Cannot determine destination URI for download with suggested filename %s"), suggestedFilename.utf8().data())); String errorMessage = String::fromUTF8(buffer.get()); #else String errorMessage = makeString("Cannot determine destination URI for download with suggested filename ", suggestedFilename); #endif downloadFailed(platformDownloadDestinationError(response, errorMessage)); return; } GRefPtr<GFile> file = adoptGRef(g_file_new_for_uri(destinationURI.utf8().data())); GOwnPtr<GError> error; m_outputStream = adoptGRef(g_file_replace(file.get(), 0, TRUE, G_FILE_CREATE_NONE, 0, &error.outPtr())); if (!m_outputStream) { downloadFailed(platformDownloadDestinationError(response, error->message)); return; } GRefPtr<GFileInfo> info = adoptGRef(g_file_info_new()); g_file_info_set_attribute_string(info.get(), "metadata::download-uri", response.url().string().utf8().data()); g_file_set_attributes_async(file.get(), info.get(), G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, 0, 0, 0); m_download->didCreateDestination(destinationURI); }
void didFinishLoading(ResourceHandle*, double) { m_outputStream = 0; ASSERT(m_intermediateFile); GRefPtr<GFile> destinationFile = adoptGRef(g_file_new_for_uri(m_destinationURI.utf8().data())); GOwnPtr<GError> error; if (!g_file_move(m_intermediateFile.get(), destinationFile.get(), G_FILE_COPY_NONE, nullptr, nullptr, nullptr, &error.outPtr())) { downloadFailed(platformDownloadDestinationError(m_response, error->message)); return; } GRefPtr<GFileInfo> info = adoptGRef(g_file_info_new()); CString uri = m_response.url().string().utf8(); g_file_info_set_attribute_string(info.get(), "metadata::download-uri", uri.data()); g_file_info_set_attribute_string(info.get(), "xattr::xdg.origin.url", uri.data()); g_file_set_attributes_async(destinationFile.get(), info.get(), G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, nullptr, nullptr, nullptr); m_download->didFinish(); }
static void vfs_file_set_metadata (NautilusFile *file, const char *key, const char *value) { GFileInfo *info; GFile *location; char *gio_key; info = g_file_info_new (); gio_key = g_strconcat ("metadata::", key, NULL); if (value != NULL) { g_file_info_set_attribute_string (info, gio_key, value); } else { /* Unset the key */ g_file_info_set_attribute (info, gio_key, G_FILE_ATTRIBUTE_TYPE_INVALID, NULL); } g_free (gio_key); location = nautilus_file_get_location (file); g_file_set_attributes_async (location, info, 0, G_PRIORITY_DEFAULT, NULL, set_metadata_callback, nautilus_file_ref (file)); g_object_unref (location); g_object_unref (info); }
static gboolean rotation_plugin_store_state_co (RotationPluginStoreStateData* _data_) { switch (_data_->_state_) { case 0: goto _state_0; case 1: goto _state_1; case 2: goto _state_2; default: g_assert_not_reached (); } _state_0: _data_->_tmp0_ = NULL; g_object_get ((PeasActivatable*) _data_->self, "object", &_data_->_tmp0_, NULL); _data_->_tmp1_ = NULL; _data_->_tmp1_ = _data_->_tmp0_; _data_->t = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp1_, totem_object_get_type (), TotemObject); _data_->_tmp2_ = NULL; _data_->_tmp2_ = _data_->t; _data_->_tmp3_ = NULL; _data_->_tmp3_ = totem_object_get_current_mrl (_data_->_tmp2_); _data_->mrl = _data_->_tmp3_; _data_->_tmp4_ = NULL; _data_->_tmp4_ = _data_->mrl; if (_data_->_tmp4_ == NULL) { _g_free0 (_data_->mrl); _g_object_unref0 (_data_->t); if (_data_->_state_ == 0) { g_simple_async_result_complete_in_idle (_data_->_async_result); } else { g_simple_async_result_complete (_data_->_async_result); } g_object_unref (_data_->_async_result); return FALSE; } _data_->_tmp5_ = NULL; _data_->_tmp5_ = _data_->mrl; _data_->_tmp6_ = NULL; _data_->_tmp6_ = g_file_new_for_uri (_data_->_tmp5_); _data_->file = _data_->_tmp6_; { _data_->_tmp7_ = NULL; _data_->_tmp7_ = _data_->file; _data_->_state_ = 1; g_file_query_info_async (_data_->_tmp7_, GIO_ROTATION_FILE_ATTRIBUTE, G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, NULL, rotation_plugin_store_state_ready, _data_); return FALSE; _state_1: _data_->_tmp8_ = NULL; _data_->_tmp8_ = g_file_query_info_finish (_data_->_tmp7_, _data_->_res_, &_data_->_inner_error_); _data_->file_info = _data_->_tmp8_; if (G_UNLIKELY (_data_->_inner_error_ != NULL)) { if (g_error_matches (_data_->_inner_error_, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED)) { goto __catch0_g_io_error_not_supported; } goto __catch0_g_error; } _data_->_tmp9_ = NULL; _data_->_tmp9_ = g_strdup (""); _data_->state_str = _data_->_tmp9_; _data_->_tmp10_ = NULL; _data_->_tmp10_ = _data_->self->priv->bvw; _data_->_tmp11_ = 0; _data_->_tmp11_ = bacon_video_widget_get_rotation (_data_->_tmp10_); _data_->rotation = _data_->_tmp11_; _data_->_tmp12_ = 0; _data_->_tmp12_ = _data_->rotation; if (_data_->_tmp12_ != BVW_ROTATION_R_ZERO) { _data_->_tmp13_ = 0; _data_->_tmp13_ = _data_->rotation; _data_->_tmp14_ = NULL; _data_->_tmp14_ = g_strdup_printf ("%u", (guint) _data_->_tmp13_); _g_free0 (_data_->state_str); _data_->state_str = _data_->_tmp14_; } _data_->_tmp15_ = NULL; _data_->_tmp15_ = _data_->file_info; _data_->_tmp16_ = NULL; _data_->_tmp16_ = _data_->state_str; g_file_info_set_attribute_string (_data_->_tmp15_, GIO_ROTATION_FILE_ATTRIBUTE, _data_->_tmp16_); _data_->_tmp17_ = NULL; _data_->_tmp17_ = _data_->file; _data_->_tmp18_ = NULL; _data_->_tmp18_ = _data_->file_info; _data_->_state_ = 2; g_file_set_attributes_async (_data_->_tmp17_, _data_->_tmp18_, G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, NULL, rotation_plugin_store_state_ready, _data_); return FALSE; _state_2: g_file_set_attributes_finish (_data_->_tmp17_, _data_->_res_, NULL, &_data_->_inner_error_); if (G_UNLIKELY (_data_->_inner_error_ != NULL)) { _g_free0 (_data_->state_str); _g_object_unref0 (_data_->file_info); if (g_error_matches (_data_->_inner_error_, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED)) { goto __catch0_g_io_error_not_supported; } goto __catch0_g_error; } _g_free0 (_data_->state_str); _g_object_unref0 (_data_->file_info); } goto __finally0; __catch0_g_io_error_not_supported: { _data_->e = _data_->_inner_error_; _data_->_inner_error_ = NULL; _g_error_free0 (_data_->e); } goto __finally0; __catch0_g_error: { _data_->_vala1_e = _data_->_inner_error_; _data_->_inner_error_ = NULL; _data_->_tmp19_ = NULL; _data_->_tmp19_ = _data_->_vala1_e; _data_->_tmp20_ = NULL; _data_->_tmp20_ = _data_->_tmp19_->message; g_warning ("totem-rotation-plugin.vala:156: Could not store file attribute: %s", _data_->_tmp20_); _g_error_free0 (_data_->_vala1_e); } __finally0: if (G_UNLIKELY (_data_->_inner_error_ != NULL)) { _g_object_unref0 (_data_->file); _g_free0 (_data_->mrl); _g_object_unref0 (_data_->t); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code); g_clear_error (&_data_->_inner_error_); return FALSE; } _g_object_unref0 (_data_->file); _g_free0 (_data_->mrl); _g_object_unref0 (_data_->t); if (_data_->_state_ == 0) { g_simple_async_result_complete_in_idle (_data_->_async_result); } else { g_simple_async_result_complete (_data_->_async_result); } g_object_unref (_data_->_async_result); return FALSE; }