GSoC 2019: Plugin Manager (Week 7)

Posted 5 years ago

The past week was probably not so productive, since I have been busy with moving into my new college dorm… So no new features were added, and I mainly worked on bug fixes and code cleaning.

What I've done

  • Code cleaning. The unused old plugin manager is completely removed. And most plugin related codes in resource manager also got moved into the new plugin manager. The resource manager now only handles displaying of plugins from repo, refreshing buttons' status, and contains some wrapper functions which would in turn call routines from PluginManager or PluginWorker.

  • Now the "Plugin Manager" button in the menu bar leads to Resource Manager switched to "Installed Plugins" tab.

  • The uninstalling failure I mentioned in last week's report got fixed. The problem disappeared after I upgraded my Qt library version to 5.12+, because in newer versions, qmlc files are stored by default in a unified location rather than the source code directory(the plugin directory that contains qml files). Then deleting the plugin directory won't encounter any more problems. You can compare https://doc-snapshots.qt.io/qt5-5.11/qtquick-deployment.html#qml-caching and https://doc-snapshots.qt.io/qt5-5.12/qtquick-deployment.html#qml-caching if you're interested.

  • Remove the redundant compatibility column in plugin store, since all plugins we deal with for now are 3.x ones. (After I upgraded to Qt 5.13, I found the text display became much smoother and there're no aliasing artifacts anymore!)
    qt-upgrade.png

What to do next

Till now, I have already accomplished basic items in the feature list shown on the PR page, and the current product should be a usable one. However, to improve user experience, there're lots of expected improvements.

There's about a week before the second evaluation and I'll try to finish the following:

  • Now each time the launch of resource manager is really a bad experience, because all the metadata(including language list, extension list and plugin list) are time-consuming to be fetched. So one possible improvement is to make fetching routines in resource manager(including extensions, languages and plugins) run in the background and not block the launch process of resource manager.

  • Add description for each plugin package in plugin manager. The description can be pre-fetched and stored from the plugin description page.