Plasma/Active/PA4/Files

From KDE Community Wiki
< Plasma‎ | Active‎ | PA4

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