diff --git a/dimension.py b/dimension.py index ceeeae6440590cc57cd3d14a285caead3d2dcd07..bde92b9ffafc560345f8e09cc5d194da5f67e21c 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 d1c09f8aa700704a7af592b953109e458aca3b26..a2a443869d731e1aa66a73f2d6fbbe64a6e6841b 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 ceb524246ec69de704d099904ef73527ad6ddfa6..9e67222afe51233118c5152857d03875e95d28ac 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 6f2b2b5a5f874f6019bba39a0265ecf0a047136c..b532e0dd8f32435c110e731b90296da8887c570c 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 0e39bff0b492ba35ce31c291bc54f8259f9bc7a8..9b93eba2ef183b517f27eecea30d921231ceb28e 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 92a2e499d6dbe19b51f2f14f67aee783a0050caf..965a8f9dbdd6b720539a4cce596f98a2b37046ef 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 a056d6e551550e8b460862da0d74d0049832f3a6..61291624f9e934c63d4a00a888fae23211b72cdc 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 348c2bbc29fb453913b7eba82e5bdf8fd9b942f4..0e3674aa3b021a2b9d72a7b30a9c08c5789a9749 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 0eef457b54b62f6279dfb83276506afa2a81349b..3509c863100d2e3c5b01e5e245ccdcc95e79d9dd 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 f53547ab49f636dc8a112c31d3b2995706195ee1..1845339b567d2f314cfbc1de509dea42e071d89f 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 2283d5e0bcc7d2028634194b05ca8a5c26ee076c..e50108070ced9468e1ac49e55255db61437c1cb4 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 aa6a99d991dec8c3abe57a77f79a6ac3cedaca75..33e652beec926a2083b755ac6f2d30dbd40405b5 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 018117d94f8acb2d3590fa887e59b52f318f9269..2e393b2ca131b1870be1d9fb700492344a7139de 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 983184c936e60649d28aced24bb31746dfb5c442..3e12adab314b8bcc19dcdc8a4d07d7f6eaa09bf8 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 3fa309483319a98e392c184998c1fcc58d8759c3..dd903328fd96360a12a91708dcb1f7f48e720184 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 bb27fec3f0e64c1868fabb48e01805d50457fcf3..cb5425bd77970fb576ca4b4daa51c367f4629e71 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 13d492927d3ebd6900e4f83805ebb63a066362da..e2f0d88866f766c85abf929c0ee0ac400d75843d 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 e4716e1ad6354aa0e83571a3883200a0c8263e42..e99b4b5e4dce5177ab48cd5d86b5744f5597c610 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 204018af381ee169b36559af8077484e2183100f..ef0ef24b720d9d9646937a27a0ed3e4ff523e87e 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 1aff7fe04f436d7094ad4c384dc76e2839627549..98f291e967757488f97a879a7c4f9226787a75e6 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 24a9080c505d7343cdee01b3dd15af020dc9404c..5e302bae3da51661ba39bb6d5ea2b9ad482977c6 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 ae5d86cae2ec48b2fe3a128919520eadcdf7e5fe..8d6e26953d3df3267a9b4f7cf1231eaa2710699a 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 238612f6596bcdae70ac35f139948f48f707488c..9b445f53d6837454249ae466ff9b6d0b1f7c8164 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 08e570a2ef6139cc0a39ad677d8e5c8685c40e76..6085647b50ff2ada4d2fd3464cc93e5c6fc7387a 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 6b578747c47f0b2ad87de12bbfadd0b61e004874..36a01bff64f71fe765a5d19d769d8f604af5420f 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 fdf509cc4a7efc41d60dc1c4da44c796c9ec78a3..e4cf802f10642e2ae09be735c4ebeb41b3dbd169 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 1af5e925d97f9930866a0ae412f92cf872cd906d..8f0e591f7506a338cf32ffafebb513e5441a5c9c 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 2e6798fe3786920bf9f7af9c05e756668b60674a..5b7e8ca8e631748f1eaf95ad88b5baafb3d49736 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 1c02fab7b903b8890206d9f635821916f411b3af..1322b9fad55e2f87df5a093361aa6ab03272e22d 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)