Implemented the saving function (doesn't save attributes yet)
This commit is contained in:
parent
a04a439a63
commit
e1b502003f
10
po/fr.po
10
po/fr.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: XMLEditor 0.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2010-11-16 15:08+0100\n"
|
||||
"POT-Creation-Date: 2010-11-16 17:11+0100\n"
|
||||
"PO-Revision-Date: 2010-11-14 00:20+0100\n"
|
||||
"Last-Translator: Pierre Pronchery <khorben@defora.org>\n"
|
||||
"Language-Team: French\n"
|
||||
|
@ -116,8 +116,8 @@ msgstr "(Sans titre)"
|
|||
msgid "Error"
|
||||
msgstr "Erreur"
|
||||
|
||||
#: ../src/xmleditor.c:333 ../src/xmleditor.c:343 ../src/xmleditor.c:485
|
||||
#: ../src/xmleditor.c:490
|
||||
#: ../src/xmleditor.c:333 ../src/xmleditor.c:343 ../src/xmleditor.c:527
|
||||
#: ../src/xmleditor.c:532
|
||||
msgid "Warning"
|
||||
msgstr "Avertissement"
|
||||
|
||||
|
@ -131,10 +131,10 @@ msgstr ""
|
|||
msgid "Open file..."
|
||||
msgstr "Ouvrir un fichier..."
|
||||
|
||||
#: ../src/xmleditor.c:489
|
||||
#: ../src/xmleditor.c:531
|
||||
msgid "This file already exists. Overwrite?"
|
||||
msgstr "Ce fichier existe déjà. Écraser?"
|
||||
|
||||
#: ../src/xmleditor.c:508
|
||||
#: ../src/xmleditor.c:550
|
||||
msgid "Save as..."
|
||||
msgstr "Enregistrer sous..."
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<root><node1></node1><node2 attr2="attr2"></node2>
|
||||
<root><node1></node1><node2></node2>
|
||||
<node3>some data</node3>
|
||||
<node4 attr4></node4>
|
||||
<node5/>
|
||||
<node6 attr6="attr6" attr7="attr7">more data and an &entity; (yup)</node6>
|
||||
<node7><node8/></node7>
|
||||
<node4></node4>
|
||||
<node5></node5>
|
||||
<node6>more data and an &entity; (yup)</node6>
|
||||
<node7><node8></node8></node7>
|
||||
<node9></node9>
|
||||
</root>
|
||||
</root>
|
|
@ -445,11 +445,14 @@ void xmleditor_open_dialog(XMLEditor * xmleditor)
|
|||
|
||||
|
||||
/* xmleditor_save */
|
||||
static void _save_do(XMLEditor * xmleditor, FILE * fp, GtkTreeIter * parent);
|
||||
|
||||
gboolean xmleditor_save(XMLEditor * xmleditor)
|
||||
{
|
||||
char const * filename;
|
||||
char * buf;
|
||||
FILE * fp;
|
||||
char * buf;
|
||||
GtkTreeIter iter;
|
||||
|
||||
if(xmleditor->xml == NULL)
|
||||
return xmleditor_save_as_dialog(xmleditor);
|
||||
|
@ -461,12 +464,51 @@ gboolean xmleditor_save(XMLEditor * xmleditor)
|
|||
g_free(buf);
|
||||
return FALSE;
|
||||
}
|
||||
/* FIXME implement */
|
||||
if(gtk_tree_model_iter_children(GTK_TREE_MODEL(xmleditor->store), &iter,
|
||||
NULL) == TRUE)
|
||||
_save_do(xmleditor, fp, &iter);
|
||||
fclose(fp);
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void _save_do(XMLEditor * xmleditor, FILE * fp, GtkTreeIter * parent)
|
||||
{
|
||||
GtkTreeModel * model = GTK_TREE_MODEL(xmleditor->store);
|
||||
GtkTreeIter child;
|
||||
gchar * name;
|
||||
gboolean valid;
|
||||
gchar * tag;
|
||||
gchar * data;
|
||||
gchar * entity;
|
||||
|
||||
gtk_tree_model_get(model, parent, XEC_TAGNAME, &name, -1);
|
||||
fprintf(fp, "<%s", name);
|
||||
/* attributes */
|
||||
gtk_tree_model_iter_children(model, &child, parent);
|
||||
/* FIXME implement */
|
||||
fprintf(fp, ">");
|
||||
/* content */
|
||||
gtk_tree_model_iter_children(model, &child, parent);
|
||||
for(valid = gtk_tree_model_iter_children(model, &child, parent);
|
||||
valid == TRUE;
|
||||
valid = gtk_tree_model_iter_next(model, &child))
|
||||
{
|
||||
gtk_tree_model_get(model, &child, XEC_TAGNAME, &tag,
|
||||
XEC_DATA, &data, XEC_ENTITY, &entity, -1);
|
||||
if(tag != NULL)
|
||||
_save_do(xmleditor, fp, &child);
|
||||
else if(data != NULL)
|
||||
fprintf(fp, "%s", data);
|
||||
else if(entity != NULL)
|
||||
fprintf(fp, "&%s;", entity);
|
||||
g_free(tag);
|
||||
g_free(data);
|
||||
g_free(entity);
|
||||
}
|
||||
fprintf(fp, "</%s>", name);
|
||||
g_free(name);
|
||||
}
|
||||
|
||||
|
||||
/* xmleditor_save_as */
|
||||
gboolean xmleditor_save_as(XMLEditor * xmleditor, char const * filename)
|
||||
|
|
Loading…
Reference in New Issue
Block a user