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 ""
|
msgstr ""
|
||||||
"Project-Id-Version: XMLEditor 0.0.0\n"
|
"Project-Id-Version: XMLEditor 0.0.0\n"
|
||||||
"Report-Msgid-Bugs-To: \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"
|
"PO-Revision-Date: 2010-11-14 00:20+0100\n"
|
||||||
"Last-Translator: Pierre Pronchery <khorben@defora.org>\n"
|
"Last-Translator: Pierre Pronchery <khorben@defora.org>\n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
|
@ -116,8 +116,8 @@ msgstr "(Sans titre)"
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Erreur"
|
msgstr "Erreur"
|
||||||
|
|
||||||
#: ../src/xmleditor.c:333 ../src/xmleditor.c:343 ../src/xmleditor.c:485
|
#: ../src/xmleditor.c:333 ../src/xmleditor.c:343 ../src/xmleditor.c:527
|
||||||
#: ../src/xmleditor.c:490
|
#: ../src/xmleditor.c:532
|
||||||
msgid "Warning"
|
msgid "Warning"
|
||||||
msgstr "Avertissement"
|
msgstr "Avertissement"
|
||||||
|
|
||||||
|
@ -131,10 +131,10 @@ msgstr ""
|
||||||
msgid "Open file..."
|
msgid "Open file..."
|
||||||
msgstr "Ouvrir un fichier..."
|
msgstr "Ouvrir un fichier..."
|
||||||
|
|
||||||
#: ../src/xmleditor.c:489
|
#: ../src/xmleditor.c:531
|
||||||
msgid "This file already exists. Overwrite?"
|
msgid "This file already exists. Overwrite?"
|
||||||
msgstr "Ce fichier existe déjà. Écraser?"
|
msgstr "Ce fichier existe déjà. Écraser?"
|
||||||
|
|
||||||
#: ../src/xmleditor.c:508
|
#: ../src/xmleditor.c:550
|
||||||
msgid "Save as..."
|
msgid "Save as..."
|
||||||
msgstr "Enregistrer sous..."
|
msgstr "Enregistrer sous..."
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<root><node1></node1><node2 attr2="attr2"></node2>
|
<root><node1></node1><node2></node2>
|
||||||
<node3>some data</node3>
|
<node3>some data</node3>
|
||||||
<node4 attr4></node4>
|
<node4></node4>
|
||||||
<node5/>
|
<node5></node5>
|
||||||
<node6 attr6="attr6" attr7="attr7">more data and an &entity; (yup)</node6>
|
<node6>more data and an &entity; (yup)</node6>
|
||||||
<node7><node8/></node7>
|
<node7><node8></node8></node7>
|
||||||
<node9></node9>
|
<node9></node9>
|
||||||
</root>
|
</root>
|
|
@ -445,11 +445,14 @@ void xmleditor_open_dialog(XMLEditor * xmleditor)
|
||||||
|
|
||||||
|
|
||||||
/* xmleditor_save */
|
/* xmleditor_save */
|
||||||
|
static void _save_do(XMLEditor * xmleditor, FILE * fp, GtkTreeIter * parent);
|
||||||
|
|
||||||
gboolean xmleditor_save(XMLEditor * xmleditor)
|
gboolean xmleditor_save(XMLEditor * xmleditor)
|
||||||
{
|
{
|
||||||
char const * filename;
|
char const * filename;
|
||||||
char * buf;
|
|
||||||
FILE * fp;
|
FILE * fp;
|
||||||
|
char * buf;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
|
||||||
if(xmleditor->xml == NULL)
|
if(xmleditor->xml == NULL)
|
||||||
return xmleditor_save_as_dialog(xmleditor);
|
return xmleditor_save_as_dialog(xmleditor);
|
||||||
|
@ -461,12 +464,51 @@ gboolean xmleditor_save(XMLEditor * xmleditor)
|
||||||
g_free(buf);
|
g_free(buf);
|
||||||
return FALSE;
|
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);
|
fclose(fp);
|
||||||
return FALSE;
|
|
||||||
return TRUE;
|
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 */
|
/* xmleditor_save_as */
|
||||||
gboolean xmleditor_save_as(XMLEditor * xmleditor, char const * filename)
|
gboolean xmleditor_save_as(XMLEditor * xmleditor, char const * filename)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user