spakin / SimpInkScr

Simple Inkscape Scripting
https://inkscape.org/~pakin/%E2%98%85simple-inkscape-scripting
GNU General Public License v3.0
320 stars 31 forks source link

Guides break scripting #101

Closed Apanatshka closed 1 year ago

Apanatshka commented 1 year ago

When I run a script in the gui (just typing it in for a quick test), it runs fine until I add guides to my svg, and works again once I remove the guides. The traceback I get is as follows:

Traceback (most recent call last):
  File "[...]/.config/inkscape/extensions/SimpInkScr/simpinkscr/simple_inkscape_scripting.py", line 3525, in <module>
    main()
  File "[...]/.config/inkscape/extensions/SimpInkScr/simpinkscr/simple_inkscape_scripting.py", line 3521, in main
    SimpleInkscapeScripting().run()
  File "/usr/share/inkscape/extensions/inkex/base.py", line 231, in run
    self.save_raw(self.effect())
                  ^^^^^^^^^^^^^
  File "[...]/.config/inkscape/extensions/SimpInkScr/simpinkscr/simple_inkscape_scripting.py", line 3469, in effect
    _user_globals['guides'] = _simple_top.get_existing_guides()
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "[...]/.config/inkscape/extensions/SimpInkScr/simpinkscr/simple_inkscape_scripting.py", line 303, in get_existing_guides
    guides.append(SimpleGuide._from_inkex_object(iobj))
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "[...]/.config/inkscape/extensions/SimpInkScr/simpinkscr/simple_inkscape_scripting.py", line 1709, in _from_inkex_object
    pos = iobj.position
          ^^^^^^^^^^^^^
  File "/usr/share/inkscape/extensions/inkex/elements/_base.py", line 145, in __getattr__
    raise AttributeError(f"Can't find attribute {self.typename}.{name}")
AttributeError: Can't find attribute Guide.position

Version info:

spakin commented 1 year ago

Thanks for the bug report. It looks like while I was adding support for Inkscape 1.3 I accidentally broke support for Inkscape 1.2, at least with respect to reading existing guides. Please try out the latest version on GitHub and see if that lets you again read files containing guides.