From 0d01e9ca2aa250ad3e683db38e2ab5e334845202 Mon Sep 17 00:00:00 2001 From: Jonathan Neuhauser Date: Thu, 10 Feb 2022 20:24:12 +0100 Subject: [PATCH] replace usage of deprecated svg.selected by svg.selection --- dimension.py | 4 ++-- frame.py | 2 +- funcplot.py | 2 +- hershey.py | 4 ++-- image_attributes.py | 6 +++--- inkex/extensions.py | 2 +- interp.py | 2 +- interp_att_g.py | 2 +- jessyink_autotexts.py | 4 ++-- jessyink_effects.py | 4 ++-- jessyink_view.py | 2 +- markers_strokepaint.py | 2 +- merge_styles.py | 2 +- new_glyph_layer.py | 2 +- param_curves.py | 2 +- path_mesh_m2p.py | 2 +- path_to_absolute.py | 2 +- pathmodifier.py | 8 ++++---- pixelsnap.py | 2 +- replace_font.py | 2 +- restack.py | 6 +++--- tests/test_frame.py | 2 +- tests/test_inkex_svg.py | 4 ++-- text_merge.py | 8 ++++---- ungroup_deep.py | 4 ++-- voronoi2svg.py | 4 ++-- web_interactive_mockup.py | 2 +- web_set_att.py | 4 ++-- webslicer_create_group.py | 6 +++--- 29 files changed, 49 insertions(+), 49 deletions(-) diff --git a/dimension.py b/dimension.py index ceeeae64..bde92b9f 100755 --- a/dimension.py +++ b/dimension.py @@ -102,7 +102,7 @@ class Dimension(pathmodifier.PathModifier): self.options.xoffset *= scale self.options.yoffset *= scale - if not self.svg.selected: + if not self.svg.selection: raise inkex.AbortExtension("Please select an object") if self.options.type == "geometric": bbox = self.svg.selection.bounding_box() @@ -147,7 +147,7 @@ class Dimension(pathmodifier.PathModifier): line.set("stroke-width", str(0.5 * scale)) group.append(line) - for node in self.svg.selected.values(): + for node in self.svg.selection.values(): group.append(node) layer.append(group) diff --git a/frame.py b/frame.py index d1c09f8a..a2a44386 100755 --- a/frame.py +++ b/frame.py @@ -155,7 +155,7 @@ class Frame(inkex.EffectExtension): style.set_color(self.options.stroke_color, "stroke") layer = self.svg.get_current_layer() - for node in self.svg.selected.values(): + for node in self.svg.selection.values(): box = node.bounding_box() if self.options.position == "outside": box = size_box(box, (width / 2)) diff --git a/funcplot.py b/funcplot.py index ceb52424..9e67222a 100755 --- a/funcplot.py +++ b/funcplot.py @@ -238,7 +238,7 @@ class FuncPlot(inkex.EffectExtension): def effect(self): newpath = None - for node in self.svg.selected.values(): + for node in self.svg.selection.values(): if isinstance(node, Rectangle): # create new path with basic dimensions of selected rectangle newpath = inkex.PathElement() diff --git a/hershey.py b/hershey.py index 6f2b2b5a..b532e0dd 100644 --- a/hershey.py +++ b/hershey.py @@ -1993,10 +1993,10 @@ Evil Mad Scientist Laboratories # Traverse selected objects for id_ref in self.options.ids: transform = self.recursive_get_encl_transform( - self.svg.selected[id_ref] + self.svg.selection[id_ref] ) self.recursively_traverse_svg( - [self.svg.selected[id_ref]], transform + [self.svg.selection[id_ref]], transform ) else: # Traverse entire document self.recursively_traverse_svg( diff --git a/image_attributes.py b/image_attributes.py index 0e39bff0..9b93eba2 100755 --- a/image_attributes.py +++ b/image_attributes.py @@ -122,7 +122,7 @@ class ImageAttributes(inkex.EffectExtension): def method_tab_basic(self): """Render all bitmap images like in older Inskcape versions""" self.change_in_document( - self.svg.selected, + self.svg.selection, { "preserveAspectRatio": ( "none" if self.options.fix_scaling else "unset" @@ -139,13 +139,13 @@ class ImageAttributes(inkex.EffectExtension): if self.options.aspect_clip != "unset": attr_val.append(self.options.aspect_clip) self.options.aspect_ratio_scope( - self.svg.selected, {"preserveAspectRatio": " ".join(attr_val)} + self.svg.selection, {"preserveAspectRatio": " ".join(attr_val)} ) def method_tab_image_rendering(self): """Image Rendering Quality""" self.options.image_rendering_scope( - self.svg.selected, {"image-rendering": self.options.image_rendering} + self.svg.selection, {"image-rendering": self.options.image_rendering} ) diff --git a/inkex/extensions.py b/inkex/extensions.py index 92a2e499..965a8f9d 100644 --- a/inkex/extensions.py +++ b/inkex/extensions.py @@ -422,7 +422,7 @@ class TextExtension(EffectExtension): newpar = True def effect(self): - nodes = self.svg.selected or {None: self.document.getroot()} + nodes = self.svg.selection or {None: self.document.getroot()} for elem in nodes.values(): self.process_element(elem) diff --git a/interp.py b/interp.py index a056d6e5..61291624 100755 --- a/interp.py +++ b/interp.py @@ -125,7 +125,7 @@ class Interp(inkex.EffectExtension): objects = self.svg.selection.rendering_order() else: # use selection order (default) - objects = self.svg.selected + objects = self.svg.selection objects = [ node for node in objects.values() if isinstance(node, inkex.PathElement) diff --git a/interp_att_g.py b/interp_att_g.py index 348c2bbc..0e3674aa 100755 --- a/interp_att_g.py +++ b/interp_att_g.py @@ -107,7 +107,7 @@ class InterpAttG(inkex.EffectExtension): # multiple selection if self.options.zsort: return list(self.svg.selection.rendering_order().values()) - return list(self.svg.selected.values()) + return list(self.svg.selection.values()) # must be a group node = self.svg.selection.filter(inkex.Group).first() diff --git a/jessyink_autotexts.py b/jessyink_autotexts.py index 0eef457b..3509c863 100755 --- a/jessyink_autotexts.py +++ b/jessyink_autotexts.py @@ -32,10 +32,10 @@ class AutoTexts(JessyInkMixin, inkex.EffectExtension): def effect(self): self.is_installed() - if not self.svg.selected: + if not self.svg.selection: inkex.errormsg(_("To assign an effect, please select an object.\n\n")) - for node in self.svg.selected.get(inkex.Tspan): + for node in self.svg.selection.get(inkex.Tspan): if self.options.autoText == "slideTitle": node.set("jessyink:autoText", "slideTitle") elif self.options.autoText == "slideNumber": diff --git a/jessyink_effects.py b/jessyink_effects.py index f53547ab..1845339b 100755 --- a/jessyink_effects.py +++ b/jessyink_effects.py @@ -37,7 +37,7 @@ class JessyinkEffects(JessyInkMixin, inkex.EffectExtension): def effect(self): self.is_installed() - if not self.svg.selected: + if not self.svg.selection: raise inkex.AbortExtension( _( "No object selected. Please select the object you want to " @@ -45,7 +45,7 @@ class JessyinkEffects(JessyInkMixin, inkex.EffectExtension): ) ) - for elem in self.svg.selected.values(): + for elem in self.svg.selection.values(): self._process(elem, "effectIn") self._process(elem, "effectOut") diff --git a/jessyink_view.py b/jessyink_view.py index 2283d5e0..e5010807 100755 --- a/jessyink_view.py +++ b/jessyink_view.py @@ -34,7 +34,7 @@ class View(JessyInkMixin, inkex.EffectExtension): def effect(self): self.is_installed() - rect = self.svg.selected.first() + rect = self.svg.selection.first() if rect is None: raise inkex.AbortExtension( diff --git a/markers_strokepaint.py b/markers_strokepaint.py index aa6a99d9..33e652be 100755 --- a/markers_strokepaint.py +++ b/markers_strokepaint.py @@ -115,7 +115,7 @@ class MarkersStrokePaint(inkex.EffectExtension): return fill, stroke def effect(self): - for node in self.svg.selected.values(): + for node in self.svg.selection.values(): fill, stroke = self.options.tab(node.style) for attr in MARKERS: diff --git a/merge_styles.py b/merge_styles.py index 018117d9..2e393b2c 100755 --- a/merge_styles.py +++ b/merge_styles.py @@ -42,7 +42,7 @@ class MergeStyles(inkex.EffectExtension): if not newclass: newclass = self.svg.get_unique_id("css") - elements = self.svg.selected.values() + elements = self.svg.selection.values() common = None for elem in elements: diff --git a/new_glyph_layer.py b/new_glyph_layer.py index 983184c9..3e12adab 100755 --- a/new_glyph_layer.py +++ b/new_glyph_layer.py @@ -47,7 +47,7 @@ class NewGlyphLayer(inkex.EffectExtension): # TODO: make it optional ("Use current selection as template glyph") # Move selection to the newly created layer - for node in self.svg.selected.values(): + for node in self.svg.selection.values(): layer.append(node) diff --git a/param_curves.py b/param_curves.py index 3fa30948..dd903328 100755 --- a/param_curves.py +++ b/param_curves.py @@ -186,7 +186,7 @@ class ParamCurves(inkex.EffectExtension): pars.add_argument("--tab", default="sampling") def effect(self): - for node in self.svg.selected: + for node in self.svg.selection: if isinstance(node, inkex.Rectangle): # create new path with basic dimensions of selected rectangle newpath = inkex.PathElement() diff --git a/path_mesh_m2p.py b/path_mesh_m2p.py index bb27fec3..cb5425bd 100755 --- a/path_mesh_m2p.py +++ b/path_mesh_m2p.py @@ -323,7 +323,7 @@ class MeshToPath(inkex.EffectExtension): def effect(self): """Main routine to convert mesh geometry to path data.""" # loop through selection - for node in self.svg.selected.values(): + for node in self.svg.selection.values(): meshgradients = self.find_meshgradients(node) # if style references meshgradient if meshgradients: diff --git a/path_to_absolute.py b/path_to_absolute.py index 13d49292..e2f0d888 100755 --- a/path_to_absolute.py +++ b/path_to_absolute.py @@ -28,7 +28,7 @@ class ToAbsolute(inkex.EffectExtension): def effect(self): """Performs the effect.""" - for node in self.svg.selected.values(): + for node in self.svg.selection.values(): if not isinstance(node, inkex.PathElement): node = node.replace_with(node.to_path_element()) node.path = node.path.to_absolute().to_superpath().to_path() diff --git a/pathmodifier.py b/pathmodifier.py index e4716e1a..e99b4b5e 100755 --- a/pathmodifier.py +++ b/pathmodifier.py @@ -80,7 +80,7 @@ class PathModifier(inkex.EffectExtension): def effect(self): raise NotImplementedError("overwrite this method in subclasses") - self.objects_to_paths(self.svg.selected, True) + self.objects_to_paths(self.svg.selection, True) self.bbox = self.svg.selection.bounding_box() for node in self.svg.selection.filter(PathElement): path = node.path.to_superpath() @@ -214,9 +214,9 @@ class Diffeo(PathModifier): v[1] += bpt[1] def effect(self): - self.expand_clones(self.svg.selected, True) - self.expand_groups(self.svg.selected, True) - self.objects_to_paths(self.svg.selected, True) + self.expand_clones(self.svg.selection, True) + self.expand_groups(self.svg.selection, True) + self.objects_to_paths(self.svg.selection, True) self.bbox = self.svg.selection.bounding_box() for node in self.svg.selection.filter(PathElement): path = node.path.to_superpath() diff --git a/pixelsnap.py b/pixelsnap.py index 204018af..ef0ef24b 100755 --- a/pixelsnap.py +++ b/pixelsnap.py @@ -481,7 +481,7 @@ class PixelSnap(inkex.EffectExtension): self.svg.unittouu(svg.attrib["height"]) % 1 ) # although SVG units are absolute, the elements are positioned relative to the top of the page, rather than zero - for id, elem in self.svg.selected.items(): + for id, elem in self.svg.selection.items(): try: self.pixel_snap(elem) except TransformError as err: diff --git a/replace_font.py b/replace_font.py index 1aff7fe0..98f291e9 100755 --- a/replace_font.py +++ b/replace_font.py @@ -165,7 +165,7 @@ class ReplaceFont(inkex.EffectExtension): selected = self.svg if scope == "selection_only": - selected = self.svg.selected.values() + selected = self.svg.selection.values() for item in selected: items.extend(self.find_child_text_items(item)) diff --git a/restack.py b/restack.py index 24a9080c..5e302bae 100755 --- a/restack.py +++ b/restack.py @@ -52,7 +52,7 @@ class Restack(inkex.EffectExtension): pars.add_argument("--nb_direction", default="", help="Direction tab") def effect(self): - if not self.svg.selected: + if not self.svg.selection: raise inkex.AbortExtension("There is no selection to restack.") # process selection to get list of objects to be arranged @@ -69,7 +69,7 @@ class Restack(inkex.EffectExtension): def restack_positional(self, parentnode): """Restack based on canvas position""" # move them to the top of the object stack in this order. - for node in sorted(self.svg.selected.values(), key=self._sort): + for node in sorted(self.svg.selection.values(), key=self._sort): parentnode.append(node) return True @@ -83,7 +83,7 @@ class Restack(inkex.EffectExtension): def restack_z_order(self, parentnode): """Restack based on z-order""" - objects = list(self.svg.selected.rendering_order()) + objects = list(self.svg.selection.rendering_order()) if self.options.zsort == "rev": objects.reverse() elif self.options.zsort == "rand": diff --git a/tests/test_frame.py b/tests/test_frame.py index ae5d86ca..8d6e2695 100644 --- a/tests/test_frame.py +++ b/tests/test_frame.py @@ -106,7 +106,7 @@ class FrameTest(InkscapeExtensionTestMixin, TestCase): new_frame = self.get_frame(uut.svg) self.assertIsNotNone(new_frame) self.assertEqual("{http://www.w3.org/2000/svg}path", new_frame.tag) - orig = list(uut.svg.selected.values())[0] + orig = list(uut.svg.selection.values())[0] self.assertEqual("url(#clipPath5815)", orig.get("clip-path")) clip_path = uut.svg.getElement("//svg:defs/svg:clipPath") self.assertEqual("{http://www.w3.org/2000/svg}clipPath", clip_path.tag) diff --git a/tests/test_inkex_svg.py b/tests/test_inkex_svg.py index 238612f6..9b445f53 100644 --- a/tests/test_inkex_svg.py +++ b/tests/test_inkex_svg.py @@ -67,7 +67,7 @@ class BasicSvgTest(TestCase): self.assertEqual(doc.selection["bananas"], doc) self.assertEqual(doc.selection.first(), doc) doc = svg('id="apples"') - doc.selected.set(doc.getElementById("apples")) + doc.selection.set(doc.getElementById("apples")) self.assertEqual(doc.selection["apples"], doc) self.assertEqual(doc.selection.first(), doc) @@ -105,7 +105,7 @@ class BasicSvgTest(TestCase): def test_selected_bbox(self): """Can we get a bounding box from the selected items""" doc = svg_file(self.data_file("svg", "multilayered-test.svg")) - doc.selected.set("path3904", "path3902") + doc.selection.set("path3904", "path3902") from inkex.transforms import BoundingBox x, y, w, h = 199.544, 156.412, 377.489, 199.972 # from inkscape --query-all diff --git a/text_merge.py b/text_merge.py index 08e570a2..6085647b 100755 --- a/text_merge.py +++ b/text_merge.py @@ -57,11 +57,11 @@ class Merge(inkex.EffectExtension): ) def effect(self): - if not self.svg.selected: + if not self.svg.selection: for node in self.svg.xpath("//svg:text | //svg:flowRoot"): - self.svg.selected[node.get("id")] = node + self.svg.selection[node.get("id")] = node - if not self.svg.selected: + if not self.svg.selection: return parentnode = self.svg.get_current_layer() @@ -87,7 +87,7 @@ class Merge(inkex.EffectExtension): "stroke": "none", } - for node in sorted(self.svg.selected.values(), key=self._sort): + for node in sorted(self.svg.selection.values(), key=self._sort): self.recurse(text_span, node, text_root) if self.options.flowtext: diff --git a/ungroup_deep.py b/ungroup_deep.py index 6b578747..36a01bff 100755 --- a/ungroup_deep.py +++ b/ungroup_deep.py @@ -193,8 +193,8 @@ class UngroupDeep(inkex.EffectExtension): q.pop() def effect(self): - if self.svg.selected: - for node in self.svg.selected.values(): + if self.svg.selection: + for node in self.svg.selection.values(): self._deep_ungroup(node) else: for node in self.document.getroot(): diff --git a/voronoi2svg.py b/voronoi2svg.py index fdf509cc..e4cf802f 100755 --- a/voronoi2svg.py +++ b/voronoi2svg.py @@ -159,7 +159,7 @@ class Voronoi(inkex.EffectExtension): def effect(self): # Check that elements have been selected - if not self.svg.selected: + if not self.svg.selection: inkex.errormsg(_("Please select objects!")) return @@ -192,7 +192,7 @@ class Voronoi(inkex.EffectExtension): seeds = [] fills = [] - for node in self.svg.selected.values(): + for node in self.svg.selection.values(): nodes.append(node) bbox = node.bounding_box() if bbox: diff --git a/web_interactive_mockup.py b/web_interactive_mockup.py index 1af5e925..8f0e591f 100755 --- a/web_interactive_mockup.py +++ b/web_interactive_mockup.py @@ -35,7 +35,7 @@ class InteractiveMockup(inkwebeffect.InkWebEffect): "You must select at least two elements. The last one is the object you want to go to." ) - el_from = list(self.svg.selected.values())[:-1] + el_from = list(self.svg.selection.values())[:-1] ev_code = "InkWeb.moveViewbox({from:this, to:'" + self.options.ids[-1] + "'})" for elem in el_from: diff --git a/web_set_att.py b/web_set_att.py index 2e6798fe..5b7e8ca8 100755 --- a/web_set_att.py +++ b/web_set_att.py @@ -55,8 +55,8 @@ class SetAttribute(inkwebeffect.InkWebEffect): # All set the last else The first set all split = -1 if self.options.from_and_to == "g-to-one" else 1 - el_from = list(self.svg.selected.values())[:split] - id_to = list(self.svg.selected.ids)[split:] + el_from = list(self.svg.selection.values())[:split] + id_to = list(self.svg.selection.ids)[split:] ev_code = "InkWeb.setAtt({{el:['{}'], att:'{}', val:'{}'}})".format( "','".join(id_to), self.options.att, self.options.val diff --git a/webslicer_create_group.py b/webslicer_create_group.py index 1c02fab7..1322b9fa 100755 --- a/webslicer_create_group.py +++ b/webslicer_create_group.py @@ -35,7 +35,7 @@ class CreateGroup(WebSlicerMixin, inkex.EffectExtension): pars.add_argument("--bg-color", dest="bg_color") def effect(self): - if not self.svg.selected: + if not self.svg.selection: raise inkex.AbortExtension( _( 'You must to select some "Slicer rectangles" ' @@ -44,7 +44,7 @@ class CreateGroup(WebSlicerMixin, inkex.EffectExtension): ) base_elements = self.get_slicer_layer().descendants() - for key, node in self.svg.selected.id_dict().items(): + for key, node in self.svg.selection.id_dict().items(): if node not in base_elements: raise inkex.AbortExtension( _(f'The element "{key}" is not in the Web Slicer layer') @@ -57,7 +57,7 @@ class CreateGroup(WebSlicerMixin, inkex.EffectExtension): ["html_id", "html_class", "width_unity", "height_unity", "bg_color"] ) - for node in self.svg.selected.values(): + for node in self.svg.selection.values(): group.insert(1, node) -- GitLab