• Elvis Angelaccio's avatar
    Add new jobs to preview/open a file · 41b25127
    Elvis Angelaccio authored
    The goal of task T916 is to stop disabling the Part UI while extracting an
    entry. To do so, we need first to make sure that no race condition would occur
    if extracting two or more entries in parallel.
    
    A race condition might occur in Part::slotOpenExtractedEntry(), where
    m_openFileMode is a global member that could be accessed concurrently between
    different threads. We can stop using this variable if we introduce dedicated
    jobs for preview/opening of files. This way we can simply do a dynamic_cast on
    the local job variable, to check whether the user wants to open or open-with
    the file.
    
    Preview is totally unrelated so it can be moved into a different slot. We can
    also make sure that the PreviewJob deletes the temporary directory upon
    completion.
    
    Differential Revision: D1749
    41b25127
part.cpp 49.9 KB