Hello all. I am beyond burn-out and have sunk days into this. I can't do it alone :(
Inkscape 3.2, newest stable python release, libraries installed in python directory via pycharm. So i wanna create a very simple extension that selects a small number out of my entire selection. I have got it part-working, but soon as the extension closes, the selection still or again contains all objects i originally sent INTO the extension.
I have a surface texture simulated in smal path objects, but i need to distribute them. So as not to select hundres by hand, i wanted the extension to just do the selection for me. Status: Ojects ARE being grayed out. A log file IS created and DOES contain valid ids - i verified those in the XML view inside inkscape. But, for some ungodly reason, neither clearing, setting nor filtering the selection does it. I noticed that in my
Directory: C:\Program Files (User)\Python\Python312\Lib\site-packages\inkex ...there is a _selected.py, not a selection.py.
Other than that, i'm just...spent...Code is fairly short...please, help... :(((
@inklinea Okay, i installed your extension and tried to embed it in my own. It runs through clean but i failed to update the selection. Items are grayed out as before, and i can see that another instance of sth starts up and vanishes again. But after all is done, the selection is the same as the one i input.
I'll attach the file here - maybe you could help tying it properly to your scripts? :)
It's working!! I does exactly what i'd hoped! Thank you so so much. The need for this functionality kept me from working on my book for weeks. I didn't even attempt to manually do what i needed. I am beyond excited that i came so close, even found the dbus function you spoke of. That's so cool! Thank you for finishing it for me :) You helped me out SO much with this. You even built a proper GUI for it :D
Hello all. I am beyond burn-out and have sunk days into this. I can't do it alone :(
Inkscape 3.2, newest stable python release, libraries installed in python directory via pycharm. So i wanna create a very simple extension that selects a small number out of my entire selection. I have got it part-working, but soon as the extension closes, the selection still or again contains all objects i originally sent INTO the extension.
I have a surface texture simulated in smal path objects, but i need to distribute them. So as not to select hundres by hand, i wanted the extension to just do the selection for me. Status: Ojects ARE being grayed out. A log file IS created and DOES contain valid ids - i verified those in the XML view inside inkscape. But, for some ungodly reason, neither clearing, setting nor filtering the selection does it. I noticed that in my
Directory:
C:\Program Files (User)\Python\Python312\Lib\site-packages\inkex
...there is a _selected.py, not a selection.py.
Other than that, i'm just...spent...Code is fairly short...please, help... :(((
It can't be done.
The selection list in the GUI cannot be changed via the extension system*
The reason the selection list can be changed in the extension system, is to allow for reusable code I suppose.
-----
* it can be done via dbus from an extension, but it's quite complicated.
The extension launches a subprocess with a slight delay which contains an id list and dbus code.
The extension then returns and then the reselection takes place via the dbus subprocess.
https://inkscape.org/~inklinea/%E2%98%85selection-plus
Well...First, thank you! At least i know i didn't grossly overlook sth. Would it instead be possible to delete 80 radom % of the selection entirely?
Alternatively...i can set the opacity for a subsection to ..20% or so, and leave the chosen paths alone. I think inkscape can filter for opacity...
Did the SelectionPlus extension work on your system ?
If so, it may be possible to use a couple of the files from that extension.
That would enable you to send a list of ids to the extension code and it will select for you .
I plan on trying that in a while. Right now, the opacity and filter option works good enough. I'll get back to you when I've tried! :)
@inklinea Okay, i installed your extension and tried to embed it in my own. It runs through clean but i failed to update the selection. Items are grayed out as before, and i can see that another instance of sth starts up and vanishes again. But after all is done, the selection is the same as the one i input.
I'll attach the file here - maybe you could help tying it properly to your scripts? :)
I've attached a zipped example.
It's just simpler to drop 1 file into your extension folder: ink_dbus.py
Referencing external paths in python is a bit of headache.
I've edited the code of your extension in a couple of places.
I made an .inx to go with it ( my name is in the .inx, just ignore that, it's just to prevent id collisions if you have already chosen a name )
**Please note:
in the .py code, there are two lines and two functions:
# set_stdout(None, 'off')
# set_stderr(None, 'off')
These are important, they make the python error messages silent.
If you don't do that, when the user clicks the ok button after the message box pops up - the selection focus is lost !
For testing if you scroll the canvas to the left first, you can still see the effects of the extension before you click okay.
However - for normal use, uncomment the two lines so it can work normally.
I have tested it on Ubuntu and Windows 11. Inkscape 1.4
It's working!! I does exactly what i'd hoped! Thank you so so much. The need for this functionality kept me from working on my book for weeks. I didn't even attempt to manually do what i needed. I am beyond excited that i came so close, even found the dbus function you spoke of. That's so cool! Thank you for finishing it for me :) You helped me out SO much with this. You even built a proper GUI for it :D
Many thanks. Have a wonderful evening :D