/** * glide_document_write_json: * @document: A #GlideDocument * * Saves the JSON file for @document in the working path of * @document. */ void glide_document_write_json (GlideDocument *document) { GError *e = NULL; JsonNode *node; JsonGenerator *gen; gchar *json_path; g_return_if_fail (GLIDE_IS_DOCUMENT (document)); node = glide_document_serialize (document); gen = json_generator_new (); g_object_set (gen, "pretty", TRUE, NULL); json_generator_set_root (gen, node); if (!document->priv->working_path) glide_document_make_working_dir (document); json_path = g_strdup_printf("%s/document.json",document->priv->working_path); // TODO: Error json_generator_to_file (gen, json_path, &e); if (e) { g_warning ("Failed to write JSON to file (%s): %s", json_path, e->message); g_error_free (e); } g_object_unref (G_OBJECT (gen)); g_free (json_path); }
// FIXME: check for memory leaks void Network::writeJSON(JSONcontext* ctx,const char* file){ GError *error; JsonGenerator* gen=json_generator_new (); json_generator_set_root(gen,ctx->root); JsonArray* jnodes=json_object_get_array_member(json_node_get_object (ctx->root),"nodes"); int i; int n=nodes->size(); for(i=0;i<n;i++){ // add x,y position to json object JsonObject *node=json_array_get_object_element(jnodes,(*(ctx->nodeidx))[i]); //get corresponding json node using nodeidx JsonObject *data=json_object_get_object_member(node,"data"); json_object_set_double_member(data,"x",(*nodes)[i].pts.x); json_object_set_double_member(data,"y",(*nodes)[i].pts.y); } json_generator_to_file(gen,file,&error); if (error) { g_print ("Unable to write `%s': %s\n", file, error->message); g_error_free (error); abort(); } }
gboolean trg_prefs_save(TrgPrefs * p) { TrgPrefsPrivate *priv = p->priv; JsonGenerator *gen = json_generator_new(); gchar *dirName; gboolean success = TRUE; gboolean isNew = TRUE; dirName = g_path_get_dirname(priv->file); if (!g_file_test(dirName, G_FILE_TEST_IS_DIR)) { success = g_mkdir_with_parents(dirName, TRG_PREFS_DEFAULT_DIR_MODE) == 0; } else if (g_file_test(priv->file, G_FILE_TEST_IS_REGULAR)) { isNew = FALSE; } g_free(dirName); if (!success) { g_error ("Problem creating parent directory (permissions?) for: %s\n", priv->file); return success; } g_object_set(G_OBJECT(gen), "pretty", TRUE, NULL); json_generator_set_root(gen, priv->user); success = json_generator_to_file(gen, priv->file, NULL); if (!success) g_error("Problem writing configuration file (permissions?) to: %s", priv->file); else if (isNew) g_chmod(priv->file, 384); g_object_unref(gen); return success; }
static void glide_window_save_document_real (GlideWindow *w, const gchar *filename) { JsonNode *node; JsonGenerator *gen; node = glide_document_serialize (w->priv->document); gen = json_generator_new (); g_object_set (gen, "pretty", TRUE, NULL); json_generator_set_root (gen, node); // TODO: Error json_generator_to_file (gen, filename, NULL); glide_document_set_dirty (w->priv->document, FALSE); glide_document_set_path (w->priv->document, filename); // Maybe gets called twice? glide_window_update_title (w); }
/** * Save keymap for given input mode. * * @param input_mode input mode */ void kkc_user_rule_write (KkcUserRule* self, KkcInputMode input_mode, GError** error) { GEnumClass* enum_class = NULL; GTypeClass* _tmp0_ = NULL; gchar* keymap_name = NULL; KkcInputMode _tmp1_ = 0; GEnumValue* _tmp2_ = NULL; const gchar* _tmp3_ = NULL; gchar* _tmp4_ = NULL; gchar* keymap_path = NULL; const gchar* _tmp5_ = NULL; gchar* _tmp6_ = NULL; JsonGenerator* generator = NULL; JsonGenerator* _tmp7_ = NULL; JsonBuilder* builder = NULL; KkcRuleMetadata* _tmp8_ = NULL; KkcInputMode _tmp9_ = 0; KkcKeymap* _tmp10_ = NULL; KkcKeymap* _tmp11_ = NULL; JsonBuilder* _tmp12_ = NULL; JsonBuilder* _tmp13_ = NULL; JsonNode* _tmp14_ = NULL; JsonNode* _tmp15_ = NULL; gchar* filename = NULL; gchar* _tmp16_ = NULL; gchar* _tmp17_ = NULL; gchar* _tmp18_ = NULL; gchar* _tmp19_ = NULL; GError * _inner_error_ = NULL; g_return_if_fail (self != NULL); _tmp0_ = g_type_class_ref (KKC_TYPE_INPUT_MODE); enum_class = (GEnumClass*) _tmp0_; _tmp1_ = input_mode; _tmp2_ = g_enum_get_value (enum_class, (gint) _tmp1_); _tmp3_ = (*_tmp2_).value_nick; _tmp4_ = g_strdup (_tmp3_); keymap_name = _tmp4_; _tmp5_ = self->priv->path; _tmp6_ = g_build_filename (_tmp5_, "keymap", NULL); keymap_path = _tmp6_; g_mkdir_with_parents (keymap_path, 448); _tmp7_ = json_generator_new (); generator = _tmp7_; json_generator_set_pretty (generator, TRUE); _tmp8_ = self->priv->parent; _tmp9_ = input_mode; _tmp10_ = kkc_rule_get_keymap ((KkcRule*) self, _tmp9_); _tmp11_ = _tmp10_; _tmp12_ = kkc_user_rule_create_keymap (_tmp8_, keymap_name, _tmp11_); _tmp13_ = _tmp12_; _g_object_unref0 (_tmp11_); builder = _tmp13_; _tmp14_ = json_builder_get_root (builder); _tmp15_ = _tmp14_; json_generator_set_root (generator, _tmp15_); __vala_JsonNode_free0 (_tmp15_); _tmp16_ = g_strdup_printf ("%s.json", keymap_name); _tmp17_ = _tmp16_; _tmp18_ = g_build_filename (keymap_path, _tmp17_, NULL); _tmp19_ = _tmp18_; _g_free0 (_tmp17_); filename = _tmp19_; json_generator_to_file (generator, filename, &_inner_error_); if (G_UNLIKELY (_inner_error_ != NULL)) { g_propagate_error (error, _inner_error_); _g_free0 (filename); _g_object_unref0 (builder); _g_object_unref0 (generator); _g_free0 (keymap_path); _g_free0 (keymap_name); _g_type_class_unref0 (enum_class); return; } _g_free0 (filename); _g_object_unref0 (builder); _g_object_unref0 (generator); _g_free0 (keymap_path); _g_free0 (keymap_name); _g_type_class_unref0 (enum_class); }
static void kkc_user_rule_write_files (KkcRuleMetadata* parent, const gchar* path, const gchar* name, GError** error) { JsonGenerator* generator = NULL; JsonGenerator* _tmp0_ = NULL; JsonGenerator* _tmp1_ = NULL; const gchar* _tmp2_ = NULL; JsonBuilder* metadata_builder = NULL; KkcRuleMetadata* _tmp3_ = NULL; const gchar* _tmp4_ = NULL; JsonBuilder* _tmp5_ = NULL; JsonGenerator* _tmp6_ = NULL; JsonBuilder* _tmp7_ = NULL; JsonNode* _tmp8_ = NULL; JsonNode* _tmp9_ = NULL; gchar* metadata_filename = NULL; const gchar* _tmp10_ = NULL; gchar* _tmp11_ = NULL; JsonGenerator* _tmp12_ = NULL; const gchar* _tmp13_ = NULL; gchar* keymap_path = NULL; const gchar* _tmp14_ = NULL; gchar* _tmp15_ = NULL; const gchar* _tmp16_ = NULL; GEnumClass* enum_class = NULL; GTypeClass* _tmp17_ = NULL; gchar* rom_kana_path = NULL; const gchar* _tmp46_ = NULL; gchar* _tmp47_ = NULL; const gchar* _tmp48_ = NULL; JsonBuilder* rom_kana_builder = NULL; KkcRuleMetadata* _tmp49_ = NULL; JsonBuilder* _tmp50_ = NULL; JsonGenerator* _tmp51_ = NULL; JsonBuilder* _tmp52_ = NULL; JsonNode* _tmp53_ = NULL; JsonNode* _tmp54_ = NULL; gchar* rom_kana_filename = NULL; const gchar* _tmp55_ = NULL; gchar* _tmp56_ = NULL; JsonGenerator* _tmp57_ = NULL; const gchar* _tmp58_ = NULL; GError * _inner_error_ = NULL; g_return_if_fail (parent != NULL); g_return_if_fail (path != NULL); g_return_if_fail (name != NULL); _tmp0_ = json_generator_new (); generator = _tmp0_; _tmp1_ = generator; json_generator_set_pretty (_tmp1_, TRUE); _tmp2_ = path; g_mkdir_with_parents (_tmp2_, 448); _tmp3_ = parent; _tmp4_ = name; _tmp5_ = kkc_user_rule_create_metadata (_tmp3_, _tmp4_); metadata_builder = _tmp5_; _tmp6_ = generator; _tmp7_ = metadata_builder; _tmp8_ = json_builder_get_root (_tmp7_); _tmp9_ = _tmp8_; json_generator_set_root (_tmp6_, _tmp9_); __vala_JsonNode_free0 (_tmp9_); _tmp10_ = path; _tmp11_ = g_build_filename (_tmp10_, "metadata.json", NULL); metadata_filename = _tmp11_; _tmp12_ = generator; _tmp13_ = metadata_filename; json_generator_to_file (_tmp12_, _tmp13_, &_inner_error_); if (G_UNLIKELY (_inner_error_ != NULL)) { g_propagate_error (error, _inner_error_); _g_free0 (metadata_filename); _g_object_unref0 (metadata_builder); _g_object_unref0 (generator); return; } _tmp14_ = path; _tmp15_ = g_build_filename (_tmp14_, "keymap", NULL); keymap_path = _tmp15_; _tmp16_ = keymap_path; g_mkdir_with_parents (_tmp16_, 448); _tmp17_ = g_type_class_ref (KKC_TYPE_INPUT_MODE); enum_class = (GEnumClass*) _tmp17_; { gint i = 0; GEnumClass* _tmp18_ = NULL; gint _tmp19_ = 0; _tmp18_ = enum_class; _tmp19_ = _tmp18_->minimum; i = _tmp19_; { gboolean _tmp20_ = FALSE; _tmp20_ = TRUE; while (TRUE) { gint _tmp22_ = 0; GEnumClass* _tmp23_ = NULL; gint _tmp24_ = 0; GEnumValue* enum_value = NULL; GEnumClass* _tmp25_ = NULL; gint _tmp26_ = 0; GEnumValue* _tmp27_ = NULL; GEnumValue* _tmp28_ = NULL; JsonBuilder* keymap_builder = NULL; KkcRuleMetadata* _tmp29_ = NULL; GEnumValue* _tmp30_ = NULL; const gchar* _tmp31_ = NULL; JsonBuilder* _tmp32_ = NULL; JsonGenerator* _tmp33_ = NULL; JsonBuilder* _tmp34_ = NULL; JsonNode* _tmp35_ = NULL; JsonNode* _tmp36_ = NULL; gchar* keymap_filename = NULL; const gchar* _tmp37_ = NULL; GEnumValue* _tmp38_ = NULL; const gchar* _tmp39_ = NULL; gchar* _tmp40_ = NULL; gchar* _tmp41_ = NULL; gchar* _tmp42_ = NULL; gchar* _tmp43_ = NULL; JsonGenerator* _tmp44_ = NULL; const gchar* _tmp45_ = NULL; if (!_tmp20_) { gint _tmp21_ = 0; _tmp21_ = i; i = _tmp21_ + 1; } _tmp20_ = FALSE; _tmp22_ = i; _tmp23_ = enum_class; _tmp24_ = _tmp23_->maximum; if (!(_tmp22_ <= _tmp24_)) { break; } _tmp25_ = enum_class; _tmp26_ = i; _tmp27_ = g_enum_get_value (_tmp25_, _tmp26_); _tmp28_ = __g_enum_value_dup0 (_tmp27_); enum_value = _tmp28_; _tmp29_ = parent; _tmp30_ = enum_value; _tmp31_ = (*_tmp30_).value_nick; _tmp32_ = kkc_user_rule_create_keymap (_tmp29_, _tmp31_, NULL); keymap_builder = _tmp32_; _tmp33_ = generator; _tmp34_ = keymap_builder; _tmp35_ = json_builder_get_root (_tmp34_); _tmp36_ = _tmp35_; json_generator_set_root (_tmp33_, _tmp36_); __vala_JsonNode_free0 (_tmp36_); _tmp37_ = keymap_path; _tmp38_ = enum_value; _tmp39_ = (*_tmp38_).value_nick; _tmp40_ = g_strdup_printf ("%s.json", _tmp39_); _tmp41_ = _tmp40_; _tmp42_ = g_build_filename (_tmp37_, _tmp41_, NULL); _tmp43_ = _tmp42_; _g_free0 (_tmp41_); keymap_filename = _tmp43_; _tmp44_ = generator; _tmp45_ = keymap_filename; json_generator_to_file (_tmp44_, _tmp45_, &_inner_error_); if (G_UNLIKELY (_inner_error_ != NULL)) { g_propagate_error (error, _inner_error_); _g_free0 (keymap_filename); _g_object_unref0 (keymap_builder); _g_free0 (enum_value); _g_type_class_unref0 (enum_class); _g_free0 (keymap_path); _g_free0 (metadata_filename); _g_object_unref0 (metadata_builder); _g_object_unref0 (generator); return; } _g_free0 (keymap_filename); _g_object_unref0 (keymap_builder); _g_free0 (enum_value); } } } _tmp46_ = path; _tmp47_ = g_build_filename (_tmp46_, "rom-kana", NULL); rom_kana_path = _tmp47_; _tmp48_ = rom_kana_path; g_mkdir_with_parents (_tmp48_, 448); _tmp49_ = parent; _tmp50_ = kkc_user_rule_create_rom_kana (_tmp49_, "default"); rom_kana_builder = _tmp50_; _tmp51_ = generator; _tmp52_ = rom_kana_builder; _tmp53_ = json_builder_get_root (_tmp52_); _tmp54_ = _tmp53_; json_generator_set_root (_tmp51_, _tmp54_); __vala_JsonNode_free0 (_tmp54_); _tmp55_ = rom_kana_path; _tmp56_ = g_build_filename (_tmp55_, "default.json", NULL); rom_kana_filename = _tmp56_; _tmp57_ = generator; _tmp58_ = rom_kana_filename; json_generator_to_file (_tmp57_, _tmp58_, &_inner_error_); if (G_UNLIKELY (_inner_error_ != NULL)) { g_propagate_error (error, _inner_error_); _g_free0 (rom_kana_filename); _g_object_unref0 (rom_kana_builder); _g_free0 (rom_kana_path); _g_type_class_unref0 (enum_class); _g_free0 (keymap_path); _g_free0 (metadata_filename); _g_object_unref0 (metadata_builder); _g_object_unref0 (generator); return; } _g_free0 (rom_kana_filename); _g_object_unref0 (rom_kana_builder); _g_free0 (rom_kana_path); _g_type_class_unref0 (enum_class); _g_free0 (keymap_path); _g_free0 (metadata_filename); _g_object_unref0 (metadata_builder); _g_object_unref0 (generator); }
gboolean Settings::save(const char* path){ generator = json_generator_new(); json_generator_set_root(generator, root); return json_generator_to_file(generator, path, NULL); }