This is most likely related to the fact that the way actions are stored was changed by Etienne a while ago. It's what broke saving triggers. I've just started looking into it, but I now realise you're assigned.
I think the fundamental problem is with the (QSCommand *)initWithDirectObject:(QSObject *)directObject actionObject:(QSAction *)actionObject indirectObject:(QSObject *)indirectObject method in QSCommand. The direct/indirect objects aren't really getting set properly.
I thought it was the massive differences in the result of dictionaryRepresentation. (See the plist examples I included over on #555.) But maybe that’s the same thing. dictionaryRepresentation gets called by the setters in the method you refer to.
I’m not looking at this at the moment if you want to.
I thought it was the massive differences in the result of dictionaryRepresentation. (See the plist examples I included over on #555.) But maybe thats the same thing. dictionaryRepresentation gets
called by the setters in the method you refer to.
Im not looking at this at the moment if you want to.
-direct/indirect/actionArchives are -dictionaryRepresentations of their corresponding command objects (a bit overkill for actions), and -direct/indirect/actionIDs are for object IDs.
The reasoning was that command items without IDs would be lost on the next startup (aka the my triggers become null bug, the null happening when QS tries to restore an object that doesn't lives in the catalog anymore) My test case for that was "pizza" > "Show in large type".
And IIRC I was trying to prevent the "Trigger pref pane has become blank" bug (like if you try to make a trigger with an encapsulated command under certain circumstances), because some objects store non-plist compatible things in a QSObject data dict, and -dictionaryRepresentation is not smart enough to handle those cases, and then the reload code would return a nil for the complete trigger array, resulting in complete trigger loss. But sadly it caused some other things to go awry (like the comma trick objects).