Songbird Wiki > Releases > Eno > Clean Up View Menus

Clean Up View Menus


Document In Development

Please use the discussion wiki page for feedback about this document.

Contents

Introduction

The View menu is getting more and more complex as it is asked to support Feathers switching, View switching, and display pane content selection. Let's take a pass at simplifying the menu with specific use cases we want to - and don't want to - support in mind.

Purpose of This Document

This document captures a proposal for View menu simplification that is the outcome of a few conversations between Daniel and Keisuke.

Goals

Simplify the View menu.

Wireframes

Current and proposed view menus

view-menu.png

Content for empty display panes

display-pane-content.png

Stories

Feather Switching

ID Cost Title Story
[1] 1

rm 3rd level menu for feather switching from view menu

rm 3rd level menu for feather switching from "Switch feather" button

rm the label that shows the selected feather

The 3rd level menu is the one that shows the available layout(s) for the selected feather.

[2] 3

Add ability for feather developers to define a default layout + observe it during feather switching

Default layouts for a given feather is used for when feather switching occurs.

Given the following

  • feather A
    • layout A (default)
    • layout B
  • feather B
    • layout A (default)
    • layout B
  • feather C
    • layout X
    • layout Y (default)
Case 1 (default layout is overridden with user selection)

  1. Current feather+layout = feather A + layout B
  2. Feather selected from the view menu = feather B
  3. New feather+layout = feather A + layout B
Case 2 (default layout is used when the new feather does not have the user selected layout)

  1. Current feather+layout = feather A + layout A
  2. Feather selected from the view menu = feather C
  3. New feather+layout = feather C + layout Y


If no default is defined then the first layout in alphabetical order is set as default.

Eng Note:

  • Cost 3 since this requires manager, unit test, and documentation changes
[3] 1 Add hotkeys for switching layouts within feathers

Hotkey combination pending

Remember that a feather can have n layouts. This means that having keys for previous/next layout is more scalable than command+1, command+2, command+3, for example.

Eng Note:

  • This will require moving code out of the feathers toggle binding and into some shared location. The feathers manager perhaps?

View Switching

ID Cost Title Story
RM: Change Of Spec
Update label for View switching

The following should be the disabled menu item that acts as the label for the section of the menu:

View ($media-list-display-label): $selected-view-display-label

Eg: View (Keisuke Omi's Playlist): List

$media-list-display-label should be cropped at 32 characters.

[4] 1 List available Views a level deeper + reuse in "Switch View" button

All available Views for the selected media list should be listed in a menu that becomes visible when the "Switch View" menu item is selected.

This new menu should be reused for the "Switch View" button found to the right of the search box.

Display Pane Content Selection

ID Cost Title Story
[5] 1 Hide menu items when no add-ons that use display panes are installed

If user has not installed any add-ons that take advantage of display panes then the 3 menu items in the view menu associated with display panes should be hidden. As soon as the user installs an add-on that displays something in a display pane then the menu items should appear.

Note: This unclutters the menu but decreases discoverability of display panes. It's not that big of a deal because we can address this elsewhere - and users are going to say "I want to fill this rectangle with stuff" anyway.

Note: Can we see how this behavior looks like before making a decision on it? Prototype?

NEW [6]
Display static content for empty display panes

If the user choses to show a display pane with no extension assigned to it then display content that:

  • Tells user that extensions can be selected from the drop down menu in the display pane title bar
  • Tells user that extensions can be found on the add-on site

If this functionality is implemented as an extension then it should not appear in the drop down with the other extensions.

Engineering Notes

Production Notes

  • Asset list
    • None
  • Visual design
    • None

Additional Engineering Notes

Engineering Tasks

Known Risks

Looks like we are breaking convention a little by showing/hiding sections of the menu depending on context. It looks the the standard thing to do is to enable/disable items. Eh.

Interdependencies

Future

References

Comments

Komi 17:09, 25 February 2008 (PST) Seeded document

Komi 11:12, 18 March 2008 (PDT) Updated doc with comments from Rob, Chris, and Daniel from a while ago

Komi 13:54, 18 March 2008 (PDT) Reviewed doc with John and Nick


Tag page
You must login to post a comment.