GSoC 2019: Plugin Manager (Week 5)
What I've done
This week I focused on the multi-thread facility and relevant features. Now, multiple downloading, installing and checking for update processes can run simultaneously. This greatly improves the speed, as shown in the demo below:
The implementation uses a thread pool that Qt provides, and allows a certain number of threads working for each plugin. The number of threads depends on your CPU's thread count.
There're also some other small feautres I've added:
Abort install when there're no qml files in the archive(this can only be checked after downloading)
Change the plugin installing directory the user's plugin directory.
Check for update when the resource manager starts
I plan to go on to the local plugin management part. The local plugin management part is essentially the scope of the original plugin manager, which covers enabling/disabling plugins, configuring shortcuts, showing plugins' info, and reloading plugins. Most features have already been implemented properly and I just need to adapt them to support for plugins from the store.
A design choice
I have been hesitating about the following design choice: should we move those features above to a subtab in the resource manager(①), or simply keep it as is in the plugin manager(②)?
I originally liked ① because it makes the whole workflow for a plugin in a single dialog, which seems more convenient. But later I realized this indicated removing the original plugin manager, and maybe I shouldn't change that much...
Your opinion on the decision is welcomed.