1. vim:filetype=moin:set expandtab:set textwidth=0:
<
||
The Files place allows users to quickly access the files that are most important to them by eschewing traditional hierarchical filesystem navigation and instead promoting search and temporal browsing.
The Files place is not a complete replacement for a traditional file manager like Nautilus or Dolphin; while the Files place makes it easy to browse, search, and open files, it delegates complex file management tasks to full-featured file managers. It's best to think of the Files place as a "read-only" interface whose primary function is to facilitate the discovery and opening of files.
Search hint is "Search Files"
Sections for the Files place include:
1. "All Files" (Default)
2. "Documents"
3. "Folders"
4. "Images"
5. "Videos"
6. "Presentations"
7. "Other"
All Files Section
{{attachment:Default View - All Files.png}}
The "All Files" section is selected by default when the Files place is first viewed. It presents the following groups of files:
Documents, Folders, Images, Videos, Presentations and Other Sections
{{attachment:Default View - Documents.png}}
All sections beside the "All Files" section display a specific type of files, grouped by when the files were last opened. The types of files displayed in each section are:
<
When there are no items to display in one of these sections, one of the following messages should be displayed with the same treatment as the "No results found" message displayed when searches return zero results:
<
Files are grouped according to when they were last opened. The possible groups displayed in each section are:
1. "Today"
1. "Yesterday"
1. "This Week"
1. "Last Week"
1. "This Month"
1. "
1. "
1. "Past Six Months"
1. "This Year"
1. "Last Year"
1. "
Groups are displayed in the order given above, using the labels given above and the "time" icon. All groups display at most one row by default; empty groups are not shown.
Files in the Today group are listed most-recently-opened first; all other groups order their contents by the frequency with which the files were opened during the corresponding time period.
To avoid displaying the same file in more than one group, files may only be displayed in the most recent group that they are valid for, unless the user is viewing an expanded group. If the user opens documents f, g, h, i, and j, and the unexpanded Today group displays f, g, h, and i but not j, then f, g, h and i are displayed in the Today group, but j is not displayed in Today and may be displayed in another group.
For example, if Lola opens the document "Thesis.odt" yesterday and today, and it is displayed in the unexpanded Today group, it should not also be displayed in the unexpanded Yesterday group; however, if today Celine opened a sufficient number of documents so that "Thesis.odt" is not displayed in the unexpanded Today group, then it may be shown in the unexpanded Yesterday group.
The following pseudo-code demonstrates the display-if-expanded-or-not-yet-displayed heuristic for avoiding displaying duplicate files across groups while browsing:
{{{
previous_groups, current_group = partition groups
def already_visible (item):
1. The naive algorithm will likely run O(#groups * #items_in_unexpanded_group)
for item in current_group:
}}}
A file item is represented by the appropriate 64px mimetype icon, or appropriate thumbnail when available. The file's name is centered below the icon. File names ellipsize at the middle.
Hidden files (e.g. .bashrc) should not be shown in the default view. A gconf key should be alloted to allow advanced users to cause hidden files to be displayed.
{{attachment:Browsing.png}}
Clicking on a folder item displayed in either the Default View or Search View enters hierarchical browsing mode, in which the following elements are displayed:
* Back and Forward Buttons help the user undo and redo steps while browsing.
The browsing view displays a control similar to a toolbar (it contains discreet click targets, represented by icons, invoking distinct actions) but displayed more simply on a continuous surface, much like a button. This blend of toolbar and button is called a "toolbutton." The toolbutton in the Files place contains a Back Button, a Forward Button, and a Reveal Button.
Back and Forward Buttons
The Back and Forward buttons allow the user to navigate through recent views.
Reveal Button
The Reveal Button simply opens the current folder in Nautilus when pressed.
The Path Button is discussed in further detail in the main Places specification, as it is reused in other Places.
When a folder is being browsed, the Path Button displays a Path of the form:
{{{
}}}
{{attachment:Search View.png}}
In Lucid, results are determined by collecting files whose names, or opening application names, contain words in the search query. Results are ordered within their groups as previously specified in the section on Default View's Groups. As the ordering is not affected by the search, search can be thought of as filtering the default view by matching the search query against filenames and application names.
Pseudo-code demonstrating filtering of group contents by matching the search query against filenames and application names:
{{{
query_words = query.split ()
for group in groups:
}}}
In Lucid+1, search-by-content will be considered.
The same time-based groups already described for Documents, Folders, Images and similar Sections are used to display results when searching (see Default View Groups section). One new group is added before the others, Top Results.
Top Results
Label: "Top Result"
Icon: "emblem-favorites"
An additional group, Top Results, is shown in a single row at the top of the search view. When there is only one other group of search results, the Top Results group is not shown to avoid duplicating displayed search results.
Search results observe the same behavior when it comes to hiding duplicate results across groups. Items displayed in the "Top Results" group, for example, should not be displayed in their respective unexpanded groups.
<
Below are descriptions of the time-opened label formatting to be used for each group:
<
{{attachment:Search View - Parent Button.png}}
When the cursor is placed over an individual search result, a faint button outline is drawn around the parent folder label, hinting that the cursor can interact with it. When the cursor is placed directly over the parent folder label, it should be drawn as a small button. Clicking this button opens the parent folder in the appropriate file browser.
{{{
Level Fish
Primary Actor Netbook User
Other Actors None
Trigger None
Preconditions None
Success End Condition The file clicked is opened in the appropriate application
Failure Conditions None
}}}
Primary Scenario
1. The netbook user left-clicks (single click) on a file to open it in the appropriate application. Double-click prevention should be used to avoid unintended double-openings or other strange behavior.
USE CASE ENDS
{{{
Level Fish
Primary Actor Celine
Other Actors None
Trigger None
Preconditions The file /home/celine/eBooks/The Jungle.pdf exists
Success End Condition The file clicked is opened in the appropriate application
Failure Conditions The Netbook User enters the wrong folder
}}}
Primary Scenario
1. Celine clicks on the home folder icon in the Favorite Folders section to view the contents of her home folder.
2. Celine clicks on the eBooks folder inside the home folder to view her eBook files. The Path Button displays the path {{{All Files > celine > eBooks}}}.
3. Celine sees the file she wishes to open, and clicks it.
USE CASE ENDS
2.b Variation: Celine enters the wrong folder
1. Celine chooses either All Files or celine in the Path Bar to navigate back.
RETURN TO 2
{{{
Level Fish
Primary Actor Celine
Other Actors None
Trigger None
Preconditions The file /home/celine/eBooks/The Jungle.pdf exists
Success End Condition Nautilus is opened to the eBooks folder
Failure Conditions None
}}}
Primary Scenario
1. Celine clicks on the home folder icon in the Favorite Folders section to view the contents of her home folder.
2. Celine clicks on the eBooks folder inside the home folder to view her eBook files.
3. Celine clicks the Reveal Button to open the current folder--eBooks--in Nautilus.
USE CASE ENDS
{{{
Level Fish
Primary Actor Celine
Other Actors None
Trigger None
Preconditions Celine has a document titled "Christmas gifts 2009.odt" somewhere
Success End Condition Celine finds the document
Failure Conditions No search results are found
}}}
Primary Scenario
1. Celine types "christmas" in the search field.
2. Search results begin to arrive, and soon Celine sees the document she wants.
USE CASE ENDS
2.b Variation: No search results are found
1. The appropriate "No results found" message is displayed where search results normally appear. See Handling Empty Sections.
2. Celine modifies the search query to perform a different search, or views a different section.
USE CASE ENDS
{{{
Level Fish
Primary Actor Celine
Other Actors None
Trigger None
Preconditions None
Success End Condition Nautilus opens and selects the target file
Failure Conditions None
}}}
Primary Scenario
1. Celine clicks on the parent folder label of the search result she wants to reveal in Nautilus.
2. Nautilus opens to display that folder, and selects the file from the search results.
USE CASE ENDS
Files should be draggable to the Launcher from the default, search, and browsing views. For further details, see Launcher Use Cases.
{{{
Level Fish
Primary Actor Netbook User
Other Actors None
Trigger The Netbook User sees a file and decides to put it in the Trash
Preconditions None
Success End Condition The file is placed in the Trash and removed from view
Failure Conditions None
}}}
Primary Scenario
1. The Netbook User drags the file and drops it on the Trash icon in the Places Bar.
2. The file is moved to the Trash, and is removed from view in the Files place. Adjacent files slide into place to close the empty position left by the trashed file.
USE CASE ENDS
{{{
Level Fish
Primary Actor Netbook User
Other Actors None
Trigger The Netbook User sees a file and decides to copy it to a device
Preconditions None
Success End Condition The file is copied to the device
Failure Conditions The file cannot be copied to the device
}}}
Primary Scenario
1. The Netbook User drags the file and drops it on the appropriate Device icon in the Places Bar.
2. The file begins copying to the device. For Lucid, the Nautilus file activity progress dialogs are displayed as the file is copied to the device.
USE CASE ENDS
1.b Variation: The file cannot be copied to the device
1. The device icon in the Places bar is put in an Insensitive state and does not acknowledge or accept the drag. Dropping the file on the device icon has no effect.
USE CASE ENDS
2.b Variation: The file cannot be copied due to an error
1. Allow Nautilus/gio to handle the error, displaying the normal error dialog. (In Lucid+1, the Dash will display its own error "dialogs" in exceptional scenarios such as this one.)
USE CASE ENDS
{{{
Level Fish
Primary Actor Netbook User
Other Actors None
Trigger None
Preconditions The Netbook User is viewing search results
Success End Condition The Netbook User returns to the default view
Failure Conditions None
}}}
Primary Scenario
1. The Netbook User deletes the search query by any means (e.g. pressing backspace, pressing the clear button in the search field, pressing escape).
2. The Default View of the Files place is shown (All Files section is displayed with an empty Search Field).
USE CASE ENDS
1.b Variation: The Netbook User clicks the Files place icon in the Places Bar
1. The Netbook User clicks the Files place icon in the Places Bar.
2. The Search Field is cleared, and the default section (All Files) is displayed.
RETURN TO 2
{{{
Level Fish
Primary Actor Netbook User
Other Actors None
Trigger None
Preconditions The Netbook User is viewing the Files place
Success End Condition The Netbook User returns to the default view
Failure Conditions None
}}}
Primary Scenario
1. The Netbook User clicks the Files place icon in the Places Bar.
2. The Default View of the Files place is shown (All Files section is displayed with an empty Search Field).
USE CASE ENDS
* Toolbutton
* Back, Forward, and Reveal icons (for toolbutton).
Celine opens her netbook and wishes to review some slides she worked on over the weekend. She clicks on the Files place icon in the Places bar, and quickly locates her presentation in the Recent group right at the top of the screen. She clicks the presentation to open it in OpenOffice.org Presentation.
Lola is having some difficulty finding her thesis rough draft, which she needs to print before a meeting with her advisor in five minutes. She opens the Files place and types "thesis" in the search field. Presented with the search results, Lola expands the Yesterday group by clicking the expand button in the section header. Still unable to find her thesis, Lola refines her search by adding "draft" to her query. "Thesis rough draft.odt" turns up in the Top Results group, and Lola breathes a sigh of relief as she clicks the result to open the document and print it.
Joseph recently purchased the film "Pan's Labyrinth" on DVD. Included on the DVD was a copy of the film that could be easily and legally copied to Joseph's PC. Joseph cannot remember if he ever copied the movie file to his netbook, so he clicks on the Files place and types "labyrinth" to begin searching for the file. After a moment of searching, the message "No results found" is displayed, letting Joseph know that the movie file is not on his netbook.
Mikhail is looking for an old tarball containing some code he'd like to reuse in a new project he's working on. From the Files place, Mikhail types ".tar.gz" in the search field and watches the results come in. Mikhail scrolls down to view older files, and sees the tarball he's looking for in the Last Year group of results. He clicks to open it in Archive Manager and browse the source files inside.
Federico needs to copy the previous night's homework onto a USB stick to bring to school. He navigates to the Files place, clicks on his Documents folder, where he finds his document. Federico drags it onto the USB stick icon in the places bar. When he drops the file there, it begins to copy to the USB stick.