Plasma/Active/PA4/Files: Difference between revisions

From KDE Community Wiki
< Plasma‎ | Active‎ | PA4
(Added some more bugs)
(Added suggested solutions)
 
(12 intermediate revisions by 3 users not shown)
Line 27: Line 27:
}}
}}


{{FeatureProjectTodo
{{FeatureProjectDone
| Searching for <4 chars
| Searching for <4 chars
| Enter 1-3 characters into the search box. It seems to perform a search, but always returns all files, not just matching ones
| Enter 1-3 characters into the search box. It seems to perform a search, but always returns all files, not just matching ones
Line 66: Line 66:
| Filtering by rating
| Filtering by rating
| Whatever rating I select in Filters, all files are shown
| Whatever rating I select in Filters, all files are shown
|
}}
{{FeatureProjectTodo
| Text alignment in icon grid
| Certain icon listings produce overlapping text and icon problems. [http://plasma.kde.org/media/activefiles_icontext.png See this screenshot]
|  
|  
}}
}}
Line 84: Line 91:
! Status !! Name !! Summary !! Developer
! Status !! Name !! Summary !! Developer


{{FeatureProjectTodo
{{FeatureProjectDone
| Sidebar Tabs
| Sidebar Tabs
| [[#Sidebar Tabs|Description]]
| [[#Sidebar Tabs|Description]]
Line 90: Line 97:
}}
}}


{{FeatureProjectInProgress
{{FeatureProjectDone
| Intro Page
| Intro Page
| [[#Intro Page|Description]]
| [[#Intro Page|Description]]
Line 108: Line 115:
}}
}}


{{FeatureProjectTodo
| Timeline zoom
| [[#Timeline zoom|Description]]
|
}}
{{FeatureProjectDone
| Select multiple files
| [[#Ctrl click|Description]]
|
}}
|}
|}


=== Sidebar Tabs ===
=== Sidebar Tabs Cosmetic Improvement ===
''Problem'': The sidebar tabs match the content area background, do not always line up with the sidebar and are visually noisy as separate tabs.
''Problem'': The sidebar tabs match the content area background, do not always line up with the sidebar and are visually noisy as separate tabs.


''Suggested Solution'': Merge the three tabs into a single (visually) tab with dividers between the words; make the width be the sidebar width and position directly above it; adjust the image used so that it matches the sidebar "hatch" background better visually.
''Suggested Solution'': Merge the three tabs into a single (visually) tab with dividers between the words; make the width be the sidebar width and position directly above it; adjust the image used so that it matches the sidebar "hatch" background better visually.
''Suggested Solution #2'': change the tabbar ui with a navigation based one: only the first type  sidebar is shown. Besides resource type radiobuttons, it has buttons to go into timeline, tags etc. when in timeline page there would be a back button.
To make this easier to navigate, the sidebar can be resizable to allow 2 columns, having the main type sidebar always visible.


=== Intro Page ===
=== Intro Page ===
Line 122: Line 137:


''Suggested Solution'': get rid of the intro page completely. Start with just the sidebar, selecting a category makes the main page slide in.
''Suggested Solution'': get rid of the intro page completely. Start with just the sidebar, selecting a category makes the main page slide in.
''Suggested Solution #2'': Get rid of the intro page and show all files by default, plus start with the side bar open, which contains "All" as category filter preselected.


=== File Copy ===
=== File Copy ===
Line 127: Line 144:


''Suggested Solution'': have the info sidebar discussed for rename with also buttons for copy and move from/to removable devices.
''Suggested Solution'': have the info sidebar discussed for rename with also buttons for copy and move from/to removable devices.
''Suggested Solution #2'': Provide visual indicators for possible drop targets while dragging. This helps in general to see which elements are drop targets and which are not.
''Suggested Solution #3'': Make all drop targets visually consistent so users see immediately where they can drop things.


=== Icon View ===
=== Icon View ===
Line 132: Line 153:


''Suggested Solution'': usea vertical scrolling GridView, it's less complex, faster to resize and having less instantiated qml objects and less proxy models should be in general a bit more performant. It also makes easier to select items in more than one page.
''Suggested Solution'': usea vertical scrolling GridView, it's less complex, faster to resize and having less instantiated qml objects and less proxy models should be in general a bit more performant. It also makes easier to select items in more than one page.
=== Timeline zoom ===
''Problem'': The zoom feature in the timeline is currently rather cumbersome with the buttons, with zooming in and out quite far away from each other, zoom in only appearing after selecting a point and only one zooming step at a time.
''Suggested solution'': Allow zooming with pinch gesture. Zooming in on a time point expands the next level (only one level possible). Zooming out is possible multiple levels at a time, a query is only started when the gesture is stopped. Activate buttons only for non-multitouch-devices.
=== Ctrl click ===
"Problem": It is impossible to select more than one file at a time when the files are not displayed adjacent to one another. On a Linux desktop, this is typically accomplished by holding down the Ctrl key while clicking on the desired files.
"Suggested solution": A button that toggles this feature on and off.  Put the button in the side bar.


== Missing Functionality ==
== Missing Functionality ==
Line 140: Line 172:
Jerry has copied a number of photos from his camera SD card to his tablet. He opens Files to view the images and finds select metadata in the Tags section pulled from the keyword and geolocation metadata of the images. Similarly, he has a number of books on his device with author and other metadata associated with them. When opening books, this metadata appears in the Tags automatically.
Jerry has copied a number of photos from his camera SD card to his tablet. He opens Files to view the images and finds select metadata in the Tags section pulled from the keyword and geolocation metadata of the images. Similarly, he has a number of books on his device with author and other metadata associated with them. When opening books, this metadata appears in the Tags automatically.


''Suggested Solution'':  provide some specific UI for resource type (the same ones as the sidebar: documents, music, images...)
''Suggested Solution'':   
that ui, living in the sidebar will allow to filter by metadata specific for the type, like author, album, geolocation, etc.
In the "Filters" tab ob the sidebar/drawer, below the file type radiobuttons, additional content-type specific filters (depending on the information available in Nepomuk for that file type) are offered. Each filter is in its own row, in the format "<Filtername>: <value>" with the default set to "<all>". When a filter is tapped, an input widget specific to the type of data is displayed (see [[../../Development/ActiveHIG#Widgets | Widget HIGs]]). When a value is selected, it is displayed in the list with a "clear" button next to it and the filter is applied. Any combination of filters can be used.
Types of metadata can be specific for a resource type, for instance Album would be available only in "music"
 
Activities are moved from the Filters tab to either a new tab or to the Tags tab


=== File rename, delete, remove tags ===
=== File rename, delete, remove tags ===
Line 151: Line 184:
''Suggested Solution'':  when a single file is selected, an info panel can be displayed in the sidebar, with some controls such as rename, delete and the list of tags. Then they can be deleted from there.  The tags bar can also have a long press context menu on individual tags, for rename or delete.
''Suggested Solution'':  when a single file is selected, an info panel can be displayed in the sidebar, with some controls such as rename, delete and the list of tags. Then they can be deleted from there.  The tags bar can also have a long press context menu on individual tags, for rename or delete.


''Suggested Solution #2'':
Deleting files: Dragging to the trash is a way to delete files which has existed ever since the trash can metaphor came up, so it's safe to keep it. For increased discoverability, highlight the navigation icons including the trash icon (e.g. by changing color or enlarging them) as drop targets when the user starts dragging files
Removing tags: Removing a tag from a file is already possible by dragging it to a tag that's already associated with it.  To improve discoverability, display a big red "-"  on a tag which is already associated with selected files when a drag is started to show that if one drags them to the tag again, they are un-tagged.
Renaming files:
a) Introduce a new drag target for rename so it works the same way as  moving/deleting/tagging. I'm not sure about the placement yet, though
b) Add another button near SLC for misc actions. This could also hold functions like "delete" for people who don't like dragging. It may feel weird to do this, but I think that if we add a button with additional options for selected items, it should be here because SLC is also stuff you do with selected items.
c) Use a button on the info panel from Solution 1
Renaming/deleting tags:
a) Use the same long-tap context menu as for the resource icons on the Activity Screen
b) Introduce a new gesture for invoking context menus for both Tags in Files and resource icons on the Activity Screen: Swipe up or
down over the item so as to "slide the menu out of it" (including the corresponding animation). That fits our general drawer metaphor pretty well. This may conflict with scrolling the list of tags, so this only works if there is enough whitespace for flicking the list left.


=== Add items to activity ===
=== Add items to activity ===
Line 156: Line 206:


''Suggested Solution'':  make the minimal part of the files browser, (what doesn't need c++ parts) a component usable from elsewhere, with limited functionality as a "file picker". would be great to inject it also as standard file open dialog for qt apps, but that could require ugly hacks.
''Suggested Solution'':  make the minimal part of the files browser, (what doesn't need c++ parts) a component usable from elsewhere, with limited functionality as a "file picker". would be great to inject it also as standard file open dialog for qt apps, but that could require ugly hacks.
=== Show bookmarks, contacts, mails and events in Files ===
Sandy wants to create an Activity for a project. She wants to add files, contacts, emails and events related to the project to the Activity. She opens Resources and finds there not only files, but also all the other resources she wants to add to the Activity and can add them.
''Suggested Solution'': Show resources from Akonadi and bookmarks in Resources (or whatever name we give it then, since it's not only about files), since this is something we've been promoting since PA One and it is one of the reasons why Nepomuk is better than the file system: Users don't have to care of what type the resource they are looking for is.


== Under the hood ==
== Under the hood ==
* make the metadata models used by Files more genric to be easy to be used for more use cases of "nepomuk from qml"
* make the metadata models used by Files more genric to be easy to be used for more use cases of "nepomuk from qml"
* item delegates are a bit too complex, they should be smaller, for faster loading times and less memory usage
* item delegates are a bit too complex, they should be smaller, for faster loading times and less memory usage

Latest revision as of 15:41, 20 November 2012

PA4 tasks discovery process for Files application.

Functional Defects

Method

One line per defect describing it. We will triage confirmed and unfixed to bugs.kde.org.

Status Name Summary Developer
TODO Tag reset Select a tag, change file type being shown; tags UI is reset and you can not un-set the tag selected


TODO Folders deadend Perform a search that results in a folder being shown; enter the folder. The sidebar UI becomes permanently disabled.


TODO No full-text search Enter a word contained in one or more of your files in Files' search box. The files don't show up. Searching for the words within Reader does work, searching for filenames in Files works as well, but not searching in the content in Files


DONE Searching for <4 chars Enter 1-3 characters into the search box. It seems to perform a search, but always returns all files, not just matching ones


TODO Tag size update Associate some files with a tag. The size of the circle next to the tag is only updated when you switch to another tab (like "Filters") and back again.


TODO Long-tap on external storage Browse an external storage device with Files. Selecting a file via long-tap does not work, in contrast to browsing the internal storage.


TODO Internal <> external storage On the internal storage, select a filetype other than Documents, then switch to an external storage device and back. No files are shown unless a new query is initiated (by selecting a filter, tag etc.). Select a filetype other than documents again and switch to the external storage again. It shows file:///URL-to-file instead of just the filename and opening files or folders does not work.


TODO OOXML as Archives OOXML files are shown as Archives instead of Documents


TODO Deleting files Moving a file to Trash always returns "Could not delete file [path-to-file]"


TODO Filtering by rating Whatever rating I select in Filters, all files are shown


TODO Text alignment in icon grid Certain icon listings produce overlapping text and icon problems. See this screenshot


UI Improvements

Method

One section per issue. User stories for workflow related issues. Include a problem statement and possible solution:

Problem: ... User story: ... Suggested Solution: ...


Status Name Summary Developer
DONE Sidebar Tabs Description


DONE Intro Page Description


TODO Copy to/from memory card Description


TODO icon view resize Description


TODO Timeline zoom Description


DONE Select multiple files Description

Sidebar Tabs Cosmetic Improvement

Problem: The sidebar tabs match the content area background, do not always line up with the sidebar and are visually noisy as separate tabs.

Suggested Solution: Merge the three tabs into a single (visually) tab with dividers between the words; make the width be the sidebar width and position directly above it; adjust the image used so that it matches the sidebar "hatch" background better visually.

Intro Page

Problem: the intro page is redundant with the main sidebar: there are the same categories and they may get out of sync. Moveover it makes people want to "go back" when there is no need to.

Suggested Solution: get rid of the intro page completely. Start with just the sidebar, selecting a category makes the main page slide in.

Suggested Solution #2: Get rid of the intro page and show all files by default, plus start with the side bar open, which contains "All" as category filter preselected.

File Copy

Problem: it is possible to copy a file from the internal storage to a removable device or viceversa by dragging over the toolbar buttons, but this is not intuitive at all.

Suggested Solution: have the info sidebar discussed for rename with also buttons for copy and move from/to removable devices.

Suggested Solution #2: Provide visual indicators for possible drop targets while dragging. This helps in general to see which elements are drop targets and which are not.

Suggested Solution #3: Make all drop targets visually consistent so users see immediately where they can drop things.

Icon View

Problem: when the sidebar is opened/closed, the icon view is not very fast to resize, and it's painted with a misaligned layout for a fraction of second

Suggested Solution: usea vertical scrolling GridView, it's less complex, faster to resize and having less instantiated qml objects and less proxy models should be in general a bit more performant. It also makes easier to select items in more than one page.

Timeline zoom

Problem: The zoom feature in the timeline is currently rather cumbersome with the buttons, with zooming in and out quite far away from each other, zoom in only appearing after selecting a point and only one zooming step at a time.

Suggested solution: Allow zooming with pinch gesture. Zooming in on a time point expands the next level (only one level possible). Zooming out is possible multiple levels at a time, a query is only started when the gesture is stopped. Activate buttons only for non-multitouch-devices.

Ctrl click

"Problem": It is impossible to select more than one file at a time when the files are not displayed adjacent to one another. On a Linux desktop, this is typically accomplished by holding down the Ctrl key while clicking on the desired files.

"Suggested solution": A button that toggles this feature on and off. Put the button in the side bar.


Missing Functionality

Method

Provide a user story describing the workflow that is not currently possible. Implementation planning will happen in a second round. (So detailed solutions do not need to be suggested.)

Content-type Specific Metadata as Tags

Jerry has copied a number of photos from his camera SD card to his tablet. He opens Files to view the images and finds select metadata in the Tags section pulled from the keyword and geolocation metadata of the images. Similarly, he has a number of books on his device with author and other metadata associated with them. When opening books, this metadata appears in the Tags automatically.

Suggested Solution: In the "Filters" tab ob the sidebar/drawer, below the file type radiobuttons, additional content-type specific filters (depending on the information available in Nepomuk for that file type) are offered. Each filter is in its own row, in the format "<Filtername>: <value>" with the default set to "<all>". When a filter is tapped, an input widget specific to the type of data is displayed (see Widget HIGs). When a value is selected, it is displayed in the list with a "clear" button next to it and the filter is applied. Any combination of filters can be used.

Activities are moved from the Filters tab to either a new tab or to the Tags tab

File rename, delete, remove tags

Jerry has copied some photos on his device, but their names are auto generated by the camera, eg DSCN00001.jpg, so he wants to rename at least some. Then after organizing his album, wants to delete some photos that are just duplicate multiple takes of the same thing. Some day after, looking again at the album, he finds that he doesn't like how tags are and wants to either change or remove tags from some photos, or delete a tag entirely.

Suggested Solution: when a single file is selected, an info panel can be displayed in the sidebar, with some controls such as rename, delete and the list of tags. Then they can be deleted from there. The tags bar can also have a long press context menu on individual tags, for rename or delete.

Suggested Solution #2:

Deleting files: Dragging to the trash is a way to delete files which has existed ever since the trash can metaphor came up, so it's safe to keep it. For increased discoverability, highlight the navigation icons including the trash icon (e.g. by changing color or enlarging them) as drop targets when the user starts dragging files

Removing tags: Removing a tag from a file is already possible by dragging it to a tag that's already associated with it. To improve discoverability, display a big red "-" on a tag which is already associated with selected files when a drag is started to show that if one drags them to the tag again, they are un-tagged.

Renaming files:

a) Introduce a new drag target for rename so it works the same way as moving/deleting/tagging. I'm not sure about the placement yet, though b) Add another button near SLC for misc actions. This could also hold functions like "delete" for people who don't like dragging. It may feel weird to do this, but I think that if we add a button with additional options for selected items, it should be here because SLC is also stuff you do with selected items. c) Use a button on the info panel from Solution 1

Renaming/deleting tags:

a) Use the same long-tap context menu as for the resource icons on the Activity Screen b) Introduce a new gesture for invoking context menus for both Tags in Files and resource icons on the Activity Screen: Swipe up or down over the item so as to "slide the menu out of it" (including the corresponding animation). That fits our general drawer metaphor pretty well. This may conflict with scrolling the list of tags, so this only works if there is enough whitespace for flicking the list left.

Add items to activity

Sandy wants to add some items to the current activity and hits the "Add Items" button in the home screen. She is presented with an user interface that looks and behaves remotely similar to the file browser, but presents major discrepancies.

Suggested Solution: make the minimal part of the files browser, (what doesn't need c++ parts) a component usable from elsewhere, with limited functionality as a "file picker". would be great to inject it also as standard file open dialog for qt apps, but that could require ugly hacks.

Show bookmarks, contacts, mails and events in Files

Sandy wants to create an Activity for a project. She wants to add files, contacts, emails and events related to the project to the Activity. She opens Resources and finds there not only files, but also all the other resources she wants to add to the Activity and can add them.

Suggested Solution: Show resources from Akonadi and bookmarks in Resources (or whatever name we give it then, since it's not only about files), since this is something we've been promoting since PA One and it is one of the reasons why Nepomuk is better than the file system: Users don't have to care of what type the resource they are looking for is.

Under the hood

  • make the metadata models used by Files more genric to be easy to be used for more use cases of "nepomuk from qml"
  • item delegates are a bit too complex, they should be smaller, for faster loading times and less memory usage