letsfindaway / OpenBoard

I'm using this fork to contribute features and fixes to the upstream project. In order to create good pull requests, I'm rebasing my feature branches, squashing and reordering commits, etc. If you fork this repository be aware that my development branches may rewrite history without prior notice.
http://openboard.ch/
GNU General Public License v3.0
9 stars 0 forks source link

Custom widget installation and management #139

Open letsfindaway opened 12 months ago

letsfindaway commented 12 months ago

OpenBoard comes with a set of built-in widgets. In addition, a user can install additional widgets.

There are some sites on the Internet that recommend copying such widgets to the OpenBoard installation directory. This is bad practice, and in fact OpenBoard already provides a better mechanism for this.

Widget folders

OpenBoard searched for widgets in the following locations:

There is no folder for user provided interactivities.

Applications and Interactivities

In the library OpenBoard distinguishes Applications and Interactivities. Technically, however, they are identical, besides the fact, that the Applications folder additionally contains the C++ tools. There is no way to distinguish an application and an interactivity.

Installing user widgets

The current situation is as follows:

Questions

Some questions have to be answered before looking for a good solution:

letsfindaway commented 11 months ago

Ideas

I have some ideas to improve the situation.

"Interactivities" as subfolder of "Applications"

Making "Interactivities" a subfolder of "Applications" would easily allow to assign a custom widget to either category and also allow to move them around by DnD. To improve visibility of subfolders, they should be the very first items in the library. Currently, they are the first items after the C++ tools.

Install from download

We could improve the way you install a widget downloaded from the Internet. OpenBoard could e.g. inspect any downloaded zip file. If it contains a single top-level folder ending with .wgt, then we could ask the user whether this file should be installed as a custom widget. Probably other sanity checks could be performed, e.g. checking the config.xml file for existence and syntax.

This would enable very simple single-click installation of custom widgets.