$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r85384 - in trunk/libs/geometry/doc: . src/docutils/tools/doxygen_xml2qbk
From: barend.gehrels_at_[hidden]
Date: 2013-08-17 17:05:44
Author: barendgehrels
Date: 2013-08-17 17:05:44 EDT (Sat, 17 Aug 2013)
New Revision: 85384
URL: http://svn.boost.org/trac/boost/changeset/85384
Log:
[geometry][doxygen_xml2qbk][#8825] applied patch (modified making behaviour optional)
Text files modified: 
   trunk/libs/geometry/doc/make_qbk.py                                               |     1                                         
   trunk/libs/geometry/doc/release_notes.qbk                                         |     1                                         
   trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/configuration.hpp      |     7 +++++                                   
   trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp   |     2                                         
   trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp    |     4 ++                                      
   trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp |    43 ++++++++++++++++++++++++++++++++++----- 
   trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp   |    35 +++++++++++++++++++++++++++++--         
   7 files changed, 81 insertions(+), 12 deletions(-)
Modified: trunk/libs/geometry/doc/make_qbk.py
==============================================================================
--- trunk/libs/geometry/doc/make_qbk.py	Sat Aug 17 16:04:23 2013	(r85383)
+++ trunk/libs/geometry/doc/make_qbk.py	2013-08-17 17:05:44 EDT (Sat, 17 Aug 2013)	(r85384)
@@ -31,6 +31,7 @@
 cmd = cmd + " --convenience_headers geometry.hpp,geometries/geometries.hpp,multi/multi.hpp"
 cmd = cmd + " --skip_namespace boost::geometry::"
 cmd = cmd + " --copyright src/copyright_block.qbk"
+cmd = cmd + " --output_member_variables false"
 cmd = cmd + " > generated/%s.qbk"
 
 def call_doxygen():
Modified: trunk/libs/geometry/doc/release_notes.qbk
==============================================================================
--- trunk/libs/geometry/doc/release_notes.qbk	Sat Aug 17 16:04:23 2013	(r85383)
+++ trunk/libs/geometry/doc/release_notes.qbk	2013-08-17 17:05:44 EDT (Sat, 17 Aug 2013)	(r85384)
@@ -28,6 +28,7 @@
 [*Solved tickets]
 
 * [@https://svn.boost.org/trac/boost/ticket/8969 8969] boost::geometry::model::point single argument constructor should be explicit
+* [@https://svn.boost.org/trac/boost/ticket/8825 8825] Patch adding member variable documentation to doxygen_xml2qbk
 
 [*Internal changes]
 
Modified: trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/configuration.hpp
==============================================================================
--- trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/configuration.hpp	Sat Aug 17 16:04:23 2013	(r85383)
+++ trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/configuration.hpp	2013-08-17 17:05:44 EDT (Sat, 17 Aug 2013)	(r85384)
@@ -29,10 +29,15 @@
     std::vector<std::string> convenience_headers;
 
     std::string skip_namespace;
+    bool output_member_variables;
 
     enum output_style_type {def, alt};
     output_style_type output_style;
-    configuration() : output_style(def) {}
+
+    configuration() 
+      : output_style(def) 
+      , output_member_variables(false) 
+    {}
 };
 
 
Modified: trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp
==============================================================================
--- trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp	Sat Aug 17 16:04:23 2013	(r85383)
+++ trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp	2013-08-17 17:05:44 EDT (Sat, 17 Aug 2013)	(r85384)
@@ -164,7 +164,7 @@
     std::vector<function> functions;
 
     std::vector<base_element> typedefs;
-    std::vector<base_element> variables;
+    std::vector<parameter> variables;
 
     std::vector<base_class> base_classes;
 };
Modified: trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp
==============================================================================
--- trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp	Sat Aug 17 16:04:23 2013	(r85383)
+++ trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp	2013-08-17 17:05:44 EDT (Sat, 17 Aug 2013)	(r85384)
@@ -42,7 +42,7 @@
 #include <quickbook_output.hpp>
 #include <rapidxml_util.hpp>
 
-static const std::string version = "1.1.0";
+static const std::string version = "1.1.1";
 
 inline std::string program_description(bool decorated)
 {
@@ -95,6 +95,8 @@
 
                 ("output_style", po::value<std::string>(&output_style),
                             "Docbook output style. Available values: 'alt'")
+                ("output_member_variables", po::value<bool>(&config.output_member_variables), 
+                            "Output member variables inside the class")
             ;
 
             po::variables_map varmap;
Modified: trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp
==============================================================================
--- trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp	Sat Aug 17 16:04:23 2013	(r85383)
+++ trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp	2013-08-17 17:05:44 EDT (Sat, 17 Aug 2013)	(r85384)
@@ -691,13 +691,44 @@
             }
             else if (kind == "variable")
             {
-                if (boost::equals(get_attribute(node, "static"), "yes")
-                    && boost::equals(get_attribute(node, "mutable"), "no")
-                    && boost::equals(get_attribute(node, "prot"), "public"))
+                if (boost::equals(get_attribute(node, "prot"), "public"))
                 {
-                    std::string name = parse_named_node(node->first_node(), "name");
-                    doc.cos.variables.push_back(base_element(name));
-                    doc.cos.variables.back().id = id;
+                    parameter p;
+                    p.id = id;
+                    for(rapidxml::xml_node<>* var_node = node->first_node(); var_node; var_node=var_node->next_sibling())
+                    {
+                        if(boost::equals(var_node->name(), "name"))
+                        {
+                            p.name = var_node->value();
+                        }
+                        else if(boost::equals(var_node->name(), "type"))
+                        {
+                            get_contents(var_node->first_node(), p.fulltype);
+                            p.type = p.fulltype;
+                            //boost::replace_all(p.type, " const", "");
+                            //boost::trim(p.type);
+                            //boost::replace_all(p.type, "&", "");
+                            //boost::replace_all(p.type, "*", "");
+                            boost::trim(p.type);
+
+                            // If alt output is used retrieve type with QBK links
+                            if ( configuration::alt == config.output_style )
+                            {
+                                p.fulltype_without_links = p.fulltype;
+                                p.fulltype.clear();
+                                parse_para(var_node->first_node(), config, p.fulltype, p.skip);
+                            }
+                        }
+                        else if(boost::equals(var_node->name(), "briefdescription"))
+                        {
+                            parse_para(var_node->first_node(), config, p.brief_description, p.skip);
+                        }
+                        else if(p.brief_description.empty() && boost::equals(var_node->name(), "detaileddescription"))
+                        {
+                            parse_para(var_node->first_node(), config, p.brief_description, p.skip);
+                        }
+                    }
+                    doc.cos.variables.push_back(p);
                 }
             }
 
Modified: trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp
==============================================================================
--- trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp	Sat Aug 17 16:04:23 2013	(r85383)
+++ trunk/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp	2013-08-17 17:05:44 EDT (Sat, 17 Aug 2013)	(r85384)
@@ -544,9 +544,38 @@
         out << std::endl;
     }
 
-    out << "{" << std::endl
-        << "  // ..." << std::endl
-        << "};" << std::endl
+    out << "{" << std::endl;
+    if (! cos.variables.empty() && config.output_member_variables)
+    {
+        size_t maxlength = 0;
+        BOOST_FOREACH(parameter const& p, cos.variables)
+        {
+            if (! p.skip)
+            {
+                size_t length = 6 + p.fulltype.size() + p.name.size();
+                if (length > maxlength) maxlength = length;
+            }
+        }
+        BOOST_FOREACH(parameter const& p, cos.variables)
+        {
+            if (! p.skip)
+            {
+                size_t length = 4 + p.fulltype.size() + p.name.size();
+                out << "  " << p.fulltype << " " << p.name << ";";
+                if (! p.brief_description.empty())
+                {
+                    while(length++ < maxlength) out << " ";
+                    out << "// " << p.brief_description;
+                }
+                out << std::endl;
+            }
+        }
+    }
+    else
+    {
+        out << "  // ..." << std::endl;
+    }
+    out << "};" << std::endl
         << "``" << std::endl << std::endl;
     quickbook_markup(cos.qbk_markup, markup_after, markup_synopsis, out);