Quick Spectre Generator design explanation -------------------------------------------- libgs has a limitation that there can only be a gs instance per process. To overcome that problem there is zero (when no ps document has been opened) or one GSRendererThread thread running (when on or more ps documents are open in the same okular process) As there is only one GSRendererThread for potentially N GSGenerator, the imageDone signal from GSRendererThread also emits the request and the GSGenerator checks if it is its request that was done or from another GSGenerator.