I noticed that when it comes to addons, unregister() gets called both when disabling the addon AND when exiting blender.
I have an operation I only want to perform if the addon is disabled from the user Preferences, but NOT every single time blender closes.
Does anyone know of a way to differentiate between the two situations?
Some context: my addon needs to copy custom matcap files to blender's user path (datafiles/studiolights). The problem is deleting them only when the addon gets unchecked in the preferences, but not every time blender exits. Copying those files into that user path seems to be the only way to install a matcap.
isinstance(bpy.context.space_data, bpy.types.SpacePreferences)
in unregister. If True the addon was likely disabled by the user in the prefs and you could erase the matcaps. False does not necessarily mean Blender is closing though. Not sure how robust this would be; if possible I'd think about an explicit "Uninstall Matcaps" operator. $\endgroup$ – scurest Jan 16 at 19:04