[librsvg: 3/7] Create chars nodes in a new NodeData::new_chars() function



commit 037f50839f3803d022a2ea65c5f645a28810aa13
Author: Federico Mena Quintero <federico gnome org>
Date:   Wed Mar 11 13:12:42 2020 -0600

    Create chars nodes in a new NodeData::new_chars() function

 rsvg_internals/src/document.rs | 17 ++---------------
 rsvg_internals/src/node.rs     | 16 +++++++++++++++-
 2 files changed, 17 insertions(+), 16 deletions(-)
---
diff --git a/rsvg_internals/src/document.rs b/rsvg_internals/src/document.rs
index 1414b12c..06db47b3 100644
--- a/rsvg_internals/src/document.rs
+++ b/rsvg_internals/src/document.rs
@@ -1,7 +1,7 @@
 //! Main SVG document structure.
 
 use gdk_pixbuf::{PixbufLoader, PixbufLoaderExt};
-use markup5ever::{LocalName, Namespace, QualName};
+use markup5ever::QualName;
 use std::cell::RefCell;
 use std::collections::hash_map::Entry;
 use std::collections::HashMap;
@@ -18,7 +18,6 @@ use crate::node::{NodeData, NodeType, RsvgNode};
 use crate::property_bag::PropertyBag;
 use crate::structure::{IntrinsicDimensions, Svg};
 use crate::surface_utils::shared_surface::SharedImageSurface;
-use crate::text::NodeChars;
 use crate::xml::xml_load_from_possibly_compressed_stream;
 
 /// A loaded SVG file and its derived data.
@@ -480,20 +479,8 @@ impl DocumentBuilder {
         {
             child
         } else {
-            let child = RsvgNode::new(NodeData::new(
-                NodeType::Chars,
-                &QualName::new(
-                    None,
-                    Namespace::from("https://wiki.gnome.org/Projects/LibRsvg";),
-                    LocalName::from("rsvg-chars"),
-                ),
-                None,
-                None,
-                Box::new(NodeChars::new()),
-            ));
-
+            let child = RsvgNode::new(NodeData::new_chars());
             parent.append(child.clone());
-
             child
         };
 
diff --git a/rsvg_internals/src/node.rs b/rsvg_internals/src/node.rs
index 877a2744..5ee30650 100644
--- a/rsvg_internals/src/node.rs
+++ b/rsvg_internals/src/node.rs
@@ -14,7 +14,7 @@
 
 use downcast_rs::*;
 use locale_config::Locale;
-use markup5ever::{expanded_name, local_name, namespace_url, ns, QualName};
+use markup5ever::{expanded_name, local_name, namespace_url, ns, LocalName, Namespace, QualName};
 use std::cell::Ref;
 use std::collections::HashSet;
 use std::fmt;
@@ -83,6 +83,20 @@ impl NodeData {
         }
     }
 
+    pub fn new_chars() -> NodeData {
+        Self::new(
+            NodeType::Chars,
+            &QualName::new(
+                None,
+                Namespace::from("https://wiki.gnome.org/Projects/LibRsvg";),
+                LocalName::from("rsvg-chars"),
+            ),
+            None,
+            None,
+            Box::new(NodeChars::new()),
+        )
+    }
+
     pub fn get_node_trait(&self) -> &dyn NodeTrait {
         self.node_impl.as_ref()
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]