]> git.sur5r.net Git - glabels/commitdiff
Create a default frame if missing from template file
authorJim Evins <evins@snaught.com>
Mon, 15 Feb 2010 22:13:14 +0000 (17:13 -0500)
committerJim Evins <evins@snaught.com>
Mon, 15 Feb 2010 22:13:14 +0000 (17:13 -0500)
When parsing a template node, if there is no recognized frame node (e.g.
Label-rectangle), a default full-page frame with a 1x1 layout is created.
This prevents potential crashes if sharing a user '.glabels' directory
with future versions of glabels with new frame types, or in the case of
typos for hand generated templates.

libglabels/xml-template.c

index 6f1ae4b852ee5458d6bfde57bf7c3c8f9ae7ae97..9ed25cd96f3890b8d7bbe445ffb9ac4f9b380834 100644 (file)
@@ -289,6 +289,18 @@ lgl_xml_template_parse_template_node (const xmlNodePtr template_node)
        g_free (description);
        g_free (paper_id);
 
+        /*
+         * Create a default full-page frame, if a known frame type was not found.
+         */
+        if ( template->frames == NULL )
+        {
+                lglTemplateFrame    *frame;
+
+                frame = lgl_template_frame_rect_new ("0", page_width, page_height, 0, 0, 0);
+                lgl_template_frame_add_layout (frame, lgl_template_layout_new (1, 1, 0, 0, 0, 0));
+                lgl_template_add_frame (template, frame);
+        }
+
        return template;
 }