diff --git a/bindings/python/mapnik_text_symbolizer.cpp b/bindings/python/mapnik_text_symbolizer.cpp index 020112c3d..c3ec8afa0 100644 --- a/bindings/python/mapnik_text_symbolizer.cpp +++ b/bindings/python/mapnik_text_symbolizer.cpp @@ -25,10 +25,14 @@ #include #include "mapnik_enumeration.hpp" +#include using namespace mapnik; using mapnik::color; using mapnik::text_symbolizer; +using mapnik::expr_node; +using mapnik::expression_ptr; +using mapnik::to_expression_string; namespace { using namespace boost::python; @@ -248,9 +252,9 @@ class_("TextSymbolizer",init()), - // &text_symbolizer::set_name) + .add_property("name",make_function + (&text_symbolizer::get_name,return_value_policy()), + &text_symbolizer::set_name) .add_property("opacity", &text_symbolizer::get_opacity, &text_symbolizer::set_opacity, diff --git a/include/mapnik/text_symbolizer.hpp b/include/mapnik/text_symbolizer.hpp index 9e3863dad..47ea441f0 100644 --- a/include/mapnik/text_symbolizer.hpp +++ b/include/mapnik/text_symbolizer.hpp @@ -100,8 +100,8 @@ namespace mapnik text_symbolizer& operator=(text_symbolizer const& rhs); // - expression_ptr get_name() const; - void set_name(expression_ptr expr); + expression_ptr const& get_name() const; + void set_name(const expression_ptr& expr); // unsigned get_text_ratio() const; // target ratio for text bounding box in pixels diff --git a/src/text_symbolizer.cpp b/src/text_symbolizer.cpp index 6815305d7..ce1fe2a6e 100644 --- a/src/text_symbolizer.cpp +++ b/src/text_symbolizer.cpp @@ -205,12 +205,12 @@ text_symbolizer& text_symbolizer::operator=(text_symbolizer const& other) return *this; } -expression_ptr text_symbolizer::get_name() const +expression_ptr const& text_symbolizer::get_name() const { return name_; } -void text_symbolizer::set_name(expression_ptr name) +void text_symbolizer::set_name(const expression_ptr& name) { name_ = name; } diff --git a/tests/python_tests/object_test.py b/tests/python_tests/object_test.py index 78510736f..ebacc35d5 100644 --- a/tests/python_tests/object_test.py +++ b/tests/python_tests/object_test.py @@ -178,18 +178,18 @@ def test_shapefile_properties(): # TextSymbolizer initialization def test_textsymbolizer_init(): - ts = mapnik.TextSymbolizer(mapnik.Expression('[Field Name]'), 'Font Name', 8, mapnik.Color('black')) + ts = mapnik.TextSymbolizer(mapnik.Expression('[Field_Name]'), 'Font Name', 8, mapnik.Color('black')) - eq_(ts.name, 'Field Name') + eq_(str(ts.name), str(mapnik.Expression('Field_Name'))) eq_(ts.face_name, 'Font Name') eq_(ts.text_size, 8) eq_(ts.fill, mapnik.Color('black')) # TextSymbolizer pickling def test_textsymbolizer_pickle(): - ts = mapnik.TextSymbolizer(mapnik.Expression('[Field Name]'), 'Font Name', 8, mapnik.Color('black')) + ts = mapnik.TextSymbolizer(mapnik.Expression('[Field_Name]'), 'Font Name', 8, mapnik.Color('black')) - eq_(ts.name, 'Field Name') + eq_(str(ts.name), str(mapnik.Expression('Field_Name'))) eq_(ts.face_name, 'Font Name') eq_(ts.text_size, 8) eq_(ts.fill, mapnik.Color('black'))