When you start an operation to add files to the translation memory of the current project, a “meta” job is created and registered in the system with KIO, so that there is a system-wide progress report.
When you switch to a different project before the process finishes, however, the process stops (as in stops progressing) but the notification continues, and needs to be manually stopped by the user.
The reason is that on project switch we are cancelling all the jobs that perform the actual scanning, but we are leaving the parent job responsible for reporting the total progress in memory.
The proposed changes aim to fix that.
I must say however that I do not consider myself a C++/Qt programmer, but rather a Python programmer. So please pay close attention to the code, in case I’m doing something silly. I’m also completely open to any kind of style feedback, including variable naming.