[valadoc] Add option to generate SVG charts



commit c213d3c13fbc766395adbf63bd16c92089441220
Author: Corentin Noël <corentin elementary io>
Date:   Sat Feb 25 01:29:22 2017 +0100

    Add option to generate SVG charts
    
    https://bugzilla.gnome.org/show_bug.cgi?id=761137

 src/libvaladoc/html/basicdoclet.vala |    5 +++--
 src/libvaladoc/settings.vala         |    5 +++++
 src/valadoc/valadoc.vala             |    3 +++
 3 files changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/src/libvaladoc/html/basicdoclet.vala b/src/libvaladoc/html/basicdoclet.vala
index f770bc2..8e51234 100644
--- a/src/libvaladoc/html/basicdoclet.vala
+++ b/src/libvaladoc/html/basicdoclet.vala
@@ -1026,8 +1026,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
 
        protected void write_image_block (Api.Node element) {
                if (element is Class || element is Interface || element is Struct) {
+                       unowned string format = (settings.use_svg_images ? "svg" : "png");
                        var chart = new Charts.Hierarchy (image_factory, element);
-                       chart.save (this.get_img_path (element, "png"), "png");
+                       chart.save (this.get_img_path (element, format), format);
 
                        writer.start_tag ("h2", {"class", css_title})
                                .text ("Object Hierarchy:")
@@ -1040,7 +1041,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
                                                                           "alt",
                                                                           "Object hierarchy for %s".printf 
(element.name),
                                                                           "src",
-                                                                          this.get_img_path_html (element, 
"png")});
+                                                                          this.get_img_path_html (element, 
format)});
                        writer.add_usemap (chart);
                }
        }
diff --git a/src/libvaladoc/settings.vala b/src/libvaladoc/settings.vala
index 1b5c420..823dd5b 100644
--- a/src/libvaladoc/settings.vala
+++ b/src/libvaladoc/settings.vala
@@ -159,6 +159,11 @@ public class Valadoc.Settings : Object {
        public string gir_namespace;
 
        public string gir_version;
+
+       /**
+        * Use SVG as chart images
+        */
+       public bool use_svg_images = false;
 }
 
 
diff --git a/src/valadoc/valadoc.vala b/src/valadoc/valadoc.vala
index 2e7801b..a4aa327 100644
--- a/src/valadoc/valadoc.vala
+++ b/src/valadoc/valadoc.vala
@@ -50,6 +50,7 @@ public class ValaDoc : Object {
        private static bool with_deps = false;
        private static bool _private = false;
        private static bool version = false;
+       private static bool use_svg_images = false;
 
        private static bool disable_diagnostic_colors = false;
        private static bool verbose = false;
@@ -110,6 +111,7 @@ public class ValaDoc : Object {
                { "no-protected", 0, OptionFlags.REVERSE, OptionArg.NONE, ref _protected, "Removes protected 
elements from documentation", null },
                { "internal", 0, 0, OptionArg.NONE, ref _internal, "Adds internal elements to documentation", 
null },
                { "private", 0, 0, OptionArg.NONE, ref _private, "Adds private elements to documentation", 
null },
+               { "use-svg-images", 0, 0, OptionArg.NONE, ref use_svg_images, "Generate SVG image charts 
instead of PNG", null },
 
                { "package-name", 0, 0, OptionArg.STRING, ref pkg_name, "package name", "NAME" },
                { "package-version", 0, 0, OptionArg.STRING, ref pkg_version, "package version", "VERSION" },
@@ -235,6 +237,7 @@ public class ValaDoc : Object {
                settings.metadata_directories = metadata_directories;
                settings.gir_directories = gir_directories;
                settings.target_glib = target_glib;
+               settings.use_svg_images = use_svg_images;
 
                settings.source_files = tsources;
                settings.packages = packages;


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