Add an "extension" system. #1687
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Not ready for merge. Posting for initial review and comments.
This adds a new "extension" system that can be used to download additional features. This commit uses the extension system to allow the user to download additional Whisper.cpp models.
The "Speech to Text" dialog now has a new list that shows all the available models. Models that are downloaded have a green check mark. Models that are not downloaded have a download icon.

If the user clicks on a model with a green check mark, it becomes the current model. If the user clicks on a model with a download icon, they are prompted to download it:
Models are stored in the users data directory in an "extensions" folder. Example on Linux:
/home/brian/.local/share/Meltytech/Shotcut/extensions/Whisper Model/ggml-small.bin
The available models are listed in the QML extension file: whispermodel.qml
The extension file is distributed with the Shotcut binary package.
Discussion: should Shotcut offer a way to delete the models? Perhaps a right-click context menu?
Comments are welcome.