diff options
| author | Kaalleen <36401965+kaalleen@users.noreply.github.com> | 2023-05-01 12:03:44 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-01 12:03:44 +0200 |
| commit | ac688331eb3c961281812cd824e3734796ac321d (patch) | |
| tree | 1a018eed3baa590d99786990421dde29dd8d360a /lib/extensions/update_svg.py | |
| parent | 2542f124eb4e741687ebc7e0d69b27e2291310c6 (diff) | |
Add svg updater extension (#2252)
* add updater extension
* update legacy underlay_fill_angle: comma to space
Diffstat (limited to 'lib/extensions/update_svg.py')
| -rw-r--r-- | lib/extensions/update_svg.py | 39 |
1 files changed, 39 insertions, 0 deletions
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 |
