From ac688331eb3c961281812cd824e3734796ac321d Mon Sep 17 00:00:00 2001 From: Kaalleen <36401965+kaalleen@users.noreply.github.com> Date: Mon, 1 May 2023 12:03:44 +0200 Subject: Add svg updater extension (#2252) * add updater extension * update legacy underlay_fill_angle: comma to space --- lib/extensions/update_svg.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lib/extensions/update_svg.py (limited to 'lib/extensions/update_svg.py') diff --git a/lib/extensions/update_svg.py b/lib/extensions/update_svg.py new file mode 100644 index 00000000..51960cb2 --- /dev/null +++ b/lib/extensions/update_svg.py @@ -0,0 +1,39 @@ +# Authors: see git history +# +# Copyright (c) 2010 Authors +# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details. + +from inkex import errormsg + +from ..i18n import _ +from ..update import update_inkstitch_document +from .base import InkstitchExtension + + +class UpdateSvg(InkstitchExtension): + + def __init__(self, *args, **kwargs): + InkstitchExtension.__init__(self, *args, **kwargs) + # TODO: When there are more legacy versions than only one, this can be transformed in a user input + # inkstitch_svg_version history: 1 -> v2.3.0 + self.update_from = 0 + + def effect(self): + if not self.svg.selection: + errormsg(_('Please select at least one element to update. ' + 'This extension is designed to help you update copy and pasted elements from old designs.')) + + # set the file version to the update_from value, so that the updater knows where to start from + # the updater will then reset it to the current version after the update has finished + metadata = self.get_inkstitch_metadata() + metadata['inkstitch_svg_version'] = self.update_from + + update_inkstitch_document(self.document, self.get_selection()) + + def get_selection(self): + selection = [] + for element in self.svg.selection: + selection.append(element) + for descendant in element.iterdescendants(): + selection.append(descendant) + return selection -- cgit v1.2.3