Skip to content

Phase 2 of embedded interfaces GUI design

leightonhargreaves edited this page Apr 4, 2013 · 7 revisions

The purpose of this document is to identify what already know, and what we still need to decide, relating to the GUI for embedded interfaces functionality.

How should module library handle multiple modules of same origin?

  • Convert module library to an Accordion Control. Accordion headings the are 'default' modules when multiple versions are available, and accordian content is an indented sub-list of all available versions. A sub-region of each accordian header should be used to open the accordion group, so that it's possible to drag a header directly without opening.

  • Accordion content to be sorted by type ( system then 3rd party then embedded ), with modification timestamp as secondary sort key

  • Treat first module in sorted list as 'default' module

  • Incorporate module type into module name, in popup menu EG [flanger (system), flanger (3rd party)]. Use variable height item rendered to ensure enough space.

  • Employ different coloured tints to distinguish between system, 3rd party or embedded

  • Use info view to display module type, author and creation date for accordion content

  • Initially the existing item renderer will be used, Jamie to create mockup for new visual appearance of Module Library item renderer. Same new renderer would then be used for block library.

  • Tags in module library. Eventually we want a multiselect list of 20 or so most popular tags at top of list, and we would filter modules by selected tags.

  • Eventually we should add keyboard navigation + enter for instantiation, and double-click for instantiation.

'Module Manager' dialog

This will be a new popup dialog, accessible via View menu and Ctrl+4

It will contain the following 3 tabs:

Upgrade Tab

  • Contains a multi-selection list of all modules for which non-default instances exist. Initially all items selected.

  • Contains an 'upgrade' button, which upgrades all selected items.

When no non-default instances exist, the upgrade tab should display a string stating that all modules are up to date.

When a project s opened which contains non-default modules, the module manager should be opened automatically, with the upgrade tab displayed.

For each module, info view should display a summary of changes between versions.

Manage Tab

  • Contains a single selection list of all modules for which more than one version exists, and at least one instance exists in the project

  • Contains a second list, in which all available version are displayed, for the selected module in the first list

  • Contains a 'switch versions' button, with which the user can switch all instances of the module selected in the first list, with the version selected in the second list

  • Also allows user to drag from second list to first list, as alternative way of switching versions

For each available module to switch to in second list, info view should display a summary of changes between versions.

Install / Uninstall Tab

  • Contains a list of all 3rd party modules, a list of all Embedded modules that are not available as system or 3rd party modules

  • Drag from 3rd party module list to a trash can icon to uninstall (would have a 'confirm' prompt, and would delete any instances)

  • Alternatively, select 3rd party modules and drag to trash can to uninstall

  • Drag from embedded module list to 3rd party module list to install embedded

  • Alternatively, have a 'install embedded modules' button to install embedded

  • Also contains an 'install from disk' button to install 3rd party .im or bundle from file

  • Also, add a 'install modules' command to file menu to duplicate this functionality

Note: installing and uninstalling 3rd party modules should be undo-able.