diff --git a/bindings/python/mapnik_text_symbolizer.cpp b/bindings/python/mapnik_text_symbolizer.cpp index 66df793a8..baa6041ed 100644 --- a/bindings/python/mapnik_text_symbolizer.cpp +++ b/bindings/python/mapnik_text_symbolizer.cpp @@ -75,12 +75,12 @@ struct text_symbolizer_pickle_suite : boost::python::pickle_suite // so we do not exceed max args accepted by make_tuple, // lets put the increasing list of parameters in a list boost::python::list extras; - extras.append(t.get_wrap_char()); + extras.append(t.get_wrap_char_string()); extras.append(t.get_line_spacing()); extras.append(t.get_character_spacing()); extras.append(t.get_text_convert()); - return boost::python::make_tuple(disp,t.get_fontset().get_name(),t.get_label_placement(), + return boost::python::make_tuple(disp,t.get_label_placement(), t.get_vertical_alignment(),t.get_halo_radius(),t.get_halo_fill(),t.get_text_ratio(), t.get_wrap_width(),t.get_label_spacing(),t.get_minimum_distance(),t.get_allow_overlap(), anchor,t.get_force_odd_labels(),t.get_max_char_angle_delta(),extras @@ -92,7 +92,7 @@ struct text_symbolizer_pickle_suite : boost::python::pickle_suite { using namespace boost::python; - if (len(state) != 15) + if (len(state) != 14) { PyErr_SetObject(PyExc_ValueError, ("expected 15-item tuple in call to __setstate__; got %s" @@ -105,41 +105,35 @@ struct text_symbolizer_pickle_suite : boost::python::pickle_suite double dx = extract(disp[0]); double dy = extract(disp[1]); t.set_displacement(dx,dy); - - if (state[1]) - { - std::string fontset = extract(state[1]); - t.set_fontset(fontset); - } - t.set_label_placement(extract(state[2])); + t.set_label_placement(extract(state[1])); - t.set_vertical_alignment(extract(state[3])); + t.set_vertical_alignment(extract(state[2])); - t.set_halo_radius(extract(state[4])); + t.set_halo_radius(extract(state[3])); - t.set_halo_fill(extract(state[5])); + t.set_halo_fill(extract(state[4])); - t.set_text_ratio(extract(state[6])); + t.set_text_ratio(extract(state[5])); - t.set_wrap_width(extract(state[7])); + t.set_wrap_width(extract(state[6])); - t.set_label_spacing(extract(state[8])); + t.set_label_spacing(extract(state[7])); - t.set_minimum_distance(extract(state[9])); + t.set_minimum_distance(extract(state[8])); - t.set_allow_overlap(extract(state[10])); + t.set_allow_overlap(extract(state[9])); - list anch = extract(state[11]); + list anch = extract(state[10]); double x = extract(anch[0]); double y = extract(anch[1]); t.set_anchor(x,y); - t.set_force_odd_labels(extract(state[12])); + t.set_force_odd_labels(extract(state[11])); - t.set_max_char_angle_delta(extract(state[13])); + t.set_max_char_angle_delta(extract(state[12])); - list extras = extract(state[14]); + list extras = extract(state[13]); t.set_wrap_char_from_string(extract(extras[0])); t.set_line_spacing(extract(extras[1])); t.set_character_spacing(extract(extras[2])); diff --git a/tests/python_tests/object_test.py b/tests/python_tests/object_test.py index 6e1c55cde..98a488b16 100644 --- a/tests/python_tests/object_test.py +++ b/tests/python_tests/object_test.py @@ -186,7 +186,6 @@ def test_textsymbolizer_pickle(): eq_(ts.text_size, 8) eq_(ts.fill, mapnik.Color('black')) - raise Todo("FontSet pickling support needed: http://trac.mapnik.org/ticket/348") ts2 = pickle.loads(pickle.dumps(ts,pickle.HIGHEST_PROTOCOL)) eq_(ts.name, ts2.name) eq_(ts.face_name, ts2.face_name) @@ -211,6 +210,7 @@ def test_textsymbolizer_pickle(): eq_(ts.line_spacing, ts2.line_spacing) eq_(ts.character_spacing, ts2.character_spacing) + raise Todo("FontSet pickling support needed: http://trac.mapnik.org/ticket/348") eq_(ts.fontset, ts2.fontset)