files-community / Files

Building the best file manager for Windows
https://files.community
MIT License
33k stars 2.11k forks source link

Feature: Add TreeView #1928

Open rc1 opened 3 years ago

rc1 commented 3 years ago

[!important] Current status: https://github.com/files-community/Files/issues/1928#issuecomment-1634584639

Is your feature request related to a problem? Please describe.

Typically, I work in a project folder. That folder might have multiple sub folders like: images, src, prints, presentations. With Windows Explorer and Files, I must keep navigating in and out of folders. I want a view of all my files and folders in one view. Much like how VS Code's 'Explorer' handles files display and navigation, or how Mac's Finder handles.

Describe the solution you'd like

In list view, I'd like a tree navigation component for files allowing me to expand a folder to list is child files and folders (which can be expanded too)

Describe alternatives you've considered None. I've tried for years now without this feature on Windows. Still miss it sorely from Mac.

Additional context There is discussion on Reddit where someone looks for this feature on Windows.

Here is a found image of Finder on Mac. image

issue-label-bot[bot] commented 3 years ago

Issue-Label Bot is automatically applying the label feature_request to this issue, with a confidence of 0.92. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

mdtauk commented 3 years ago

In case this is looked at again, here is a mock-up for how it could be implemented

image

The drop down would allow the picking of a drive

ghost commented 2 years ago

-treeview in sidebar helps to quickly move files b/w folders. -helps with quick navigation like if i am in X folder and want to open Z folder without the need to open a new tab or dual pane (as dual-pane will take screen space) -also if needed can perform actions like open in new window or open in new tab or in 2nd pane or open terminal in a certain folder from the sidebar -if we only have sidebar support then we will have to pin a folder for quick action and it will clutter the sidebar

mdtauk commented 2 years ago

Despite my previous mockup showing a TreeView alongside the Sidebar, toggling between the two would work better, with only the favourites being shared between both options. image image image

firefinchdev commented 2 years ago

UI mockups are fine, but I am more concerned about the UX. In macos, once you open Finder (in tree view), you can basically navigate only using keyboard. In the UI mockups above, if I need to change my current drive (C:, D:), that needs to be done using mouse (or maybe some non-so-easy-to-run keyboard shortcut combination).

In case of macos, open Finder, press "Down" key, and now file selector(Highlighted in blue) appears. You can select any drive. Once you are on some drive(highlighted blue), you can press "Right" key to expand the contents. This entire UX makes it very easy and fast to navigate.

We can have similar experience in Community Files.

In screenshots below, grey icons represents different drives (C:, D: in case of Windows)

Screenshot 2021-07-24 at 1 23 02 PM Screenshot 2021-07-24 at 1 23 33 PM
Space-Cadet0 commented 2 years ago

This is the top missing feature for me as I navigate using the keyboard a lot

mileyvirus commented 2 years ago

I think it should be clarified wether this issue is asking for:

  1. macOS Finder style list view with expand/collapse disclosure triangles
  2. Windows Explorer style sidebar tree

Personally I'd much rather have the macOS Finder style view but I still think it would be better to split the issue to clarify which one has more interest.

firefinchdev commented 2 years ago

I would prefer macos finder style

Space-Cadet0 commented 2 years ago

Agreed, Marcos finder tree view is better. (The UX of windows explorer of tree view in the side bar is not good.)

rc1 commented 2 years ago

The spirit of this issue was to have a tree view of files and directories as macOS does. Not a tree view of directories. I agree that it's two separate issues.

Am I alone in thinking this is a killer feature. I'd never not use it on macOS. Strange it's missing from the windows eco-system. I wonder why that is.

yaira2 commented 2 years ago

I think it should be clarified wether this issue is asking for:

  1. macOS Finder style list view with expand/collapse disclosure triangles
  2. Windows Explorer style sidebar tree

Personally I'd much rather have the macOS Finder style view but I still think it would be better to split the issue to clarify which one has more interest.

@mileyvirus the plan for Files is to add a tree view layout similar to the one in Finder.

guategeek commented 2 years ago

I have been wanting this on Windows ever since I had to leave Mac OS. So I add my vote for a Mac OS style tree view.

charlau commented 2 years ago

That's the only thing preventing me from being in love with Files. For me, it's really a deal breaker. Any timeline for an implementation?

mileyvirus commented 2 years ago

That's the only thing preventing me from being in love with Files. For me, it's really a deal breaker. Any timeline for an implementation?

@charlau I'm not a contributor but 8 days ago @yaichenbaum - the lead dev - moved this issue from the To do list to the Backlog list so I don't think they plan to work on it for some time, correct me if I'm wrong.

Maybe there's a way to sponsor this issue in particular to push its priority up? Is there, @yaichenbaum?

yaira2 commented 2 years ago

@mileyvirus I only put it in the todo column to remind myself to give an update on the issue but by all means, if someone wants to work on this or help sponsor the project, we can try working on the feature quicker.

Space-Cadet0 commented 2 years ago

@mileyvirus keeping an eye on this one as it will be the day I switch to Files :)

martinandersen3d commented 2 years ago

I want tree view also (MacOS Style) - Smash that like button in the top post πŸ‘πŸ‘πŸ‘πŸ‘πŸ‘

yosimor commented 2 years ago

I have been wanting this on Windows ever since I had to leave Mac OS. So I add my vote for a Mac OS style tree view.

Not sure if the following will help you in the meantime, but are you aware that the native Win10 File Explorer has an "Expand to open folder" option in the configuration settings for its Navigation pane?

Enabling it will automatically synchronize the currently selected directory inside the Navigation pane's directory-tree (expanding it if needed) ... with the current working directory.

FileExplorer-NavPane-ExpandToOpenFolder

DaTigerYT commented 1 year ago

This somewhat easy-to-implement non-existent feature is approaching its Two Year Anniversary! πŸŽ‰

yaira2 commented 1 year ago

This somewhat easy-to-implement non-existent feature is approaching its Two Year Anniversary! πŸŽ‰

Is that an offer to implement it? πŸ˜‚ Adding new layouts is a complex process and something we're trying to make easier before working on this issue. That being said, we'll be happy to merge a pull request that adds this feature as long as it meets our standards.

ambitiousCC commented 1 year ago

Will the UI of the treelist-view change significantly in future development, or will it inherit the previous collapsed style?

yaira2 commented 1 year ago

@ambitiousCC the design will be based off the screenshot in the description.

DuckEater commented 1 year ago

@mileyvirus if someone wants to work on this or help sponsor the project, we can try working on the feature quicker.

I know i'm not a big sponsor, but I'm doing my bit to support the development of this particular feature.

It's a big lacking in Windows (for anyone moving from MacOS to Windows at least) and Files seems to me the best way to fill this gap. Considering the number of people looking for this feature (beyond the Files forum), when it is implemented I think it will attract new users !

yaira2 commented 1 year ago

Thank you for your feedback, a tree view will definitely expand the user base and is something we're looking forward to implementing when we make some more progress on performance and code base improvements.

stoph88 commented 1 year ago

So another two years? I know this is free software but with the tree view like Finder I would pay good money for Files

yaira2 commented 1 year ago

@stoph88 no timeline on this, the codebase requires some refactoring before we're ready to implement a tree view layout. It's not the same but you might be interested in the Column Layout in the meantime.

DavidBevi commented 1 year ago

Hi! Tree view layout was recently added on an open source file manager written in C#: https://github.com/omeryanar/FileExplorer --- https://github.com/omeryanar/FileExplorer/issues/16

Hope this helps Devs who want to tackle this request without reinventing the wheel.

SgtSweetieBelle commented 1 year ago

I think it should be clarified wether this issue is asking for:

  1. macOS Finder style list view with expand/collapse disclosure triangles
  2. Windows Explorer style sidebar tree

Personally I'd much rather have the macOS Finder style view but I still think it would be better to split the issue to clarify which one has more interest.

@mileyvirus the plan for Files is to add a tree view layout similar to the one in Finder.

oh thank god lmao

mdtauk commented 1 year ago

Gnome 44 has re-added this view mode to their Nautilus Files app image

A design for this should be explored especially for ensuring the top and bottom of new folder levels are clearly defined. Should there be branch lines like you may get between braces in a code file? Should the indented folder levels always show pushing content down, or do we have nested scroll views? How would that work with touch too.

yaira2 commented 1 year ago

@mdtauk do you want to explore some designs for this in Files?

bayazidbh commented 1 year ago

IMHO Dolphin has a pretty good design to ensure clarity between the different levels in treeview:

KDE Dolphin

![image](https://user-images.githubusercontent.com/26621899/229725700-f0d01df9-bd7a-4a28-9245-06a61a3aec85.png)

Dolphin is also available on Windows via Winget if anyone wants to see it on their Windows devices, with the default theme.

0x5bfa commented 1 year ago

When introducing this feature, my app's code would be good https://github.com/0x5bfa/RegistryValley. I would like to get some opinions about design from @rc1 @mdtauk @yaira2 @chingucoding. When approved I would get work on.

Overview & Rational

Uinsg ListView and custom template(Not TreeView because I had to display vertical and horizontal gray color bars and TreeView is ListViewBase-based control but there's something layer that cannot expand their grid)

Behaviour

Chevrons are buttons, so it'll be highlighted and buttons expand child directories on hover. Hovering other than chevron now updates the value page (object content in Files) instead of expanding. Settings that change the height of the ListView are also compatible(have that functionality already in RegistryValley).

image 568C1372-E729-44D6-9327-02DF5973E288 C100DD4F-4C32-43DE-BDB2-DCE0315891DA

yaira2 commented 1 year ago

@0x5bfa we've been looking for a good way to do a tree view with resizable columns, does your control have support for this?

0x5bfa commented 1 year ago

I'm not sure I fully understand β€˜resizable columns. But between TreeView and Value page have GridslSplitter to be resizable.

SgtSweetieBelle commented 1 year ago

worth pointing out that what you're describing looks to be for the sidebar, and i don't think yair has decided yet whether treeview will be in sidebar or in the main content view like in the KDE Dolphin or Gnome screenshots above image image

0x5bfa commented 1 year ago

That would be fine as well because it is ListView, which can be placed there. but considering consistency with File Explorer, shoule only be in sidebar, I suppose.

Space-Cadet0 commented 1 year ago

My preference would be for it to be in the main content view like KDE dolphin or GNOME.

0x5bfa commented 1 year ago

We can add that layout view by adding a new layout page. But should not be the default. But, in sidebar, should be default setting.

Space-Cadet0 commented 1 year ago

I've never been a fan of tree view in the side bar, far too crowded:

image

Explorer already offers this anyway.

Having tree view in the main content view (like many linux distros or MacOS) would set files apart as having a unique feature

Space-Cadet0 commented 1 year ago

Looks like the project is, thankfully, planning on placing the tree view in the main content view anyway. See this post from @yaira2

I think it should be clarified wether this issue is asking for:

  1. macOS Finder style list view with expand/collapse disclosure triangles
  2. Windows Explorer style sidebar tree

Personally I'd much rather have the macOS Finder style view but I still think it would be better to split the issue to clarify which one has more interest.

@mileyvirus the plan for Files is to add a tree view layout similar to the one in Finder.

0x5bfa commented 1 year ago

My point is, by introducing my code into Files, both achievements of sidebar TreeView and main content TreeView can be reached.

In anycase, we have to discuss the matter it is ok if we should implement main content TreeView as default page.

yaira2 commented 1 year ago

@0x5bfa this issue is specifically for adding a tree view layout, we'd like to do this in the details layout (as an option) but we need a good control for this.

dcadint commented 1 year ago

Looks like the project is, thankfully, planning on placing the tree view in the main content view anyway. See this post from @yaira2

I think it should be clarified wether this issue is asking for:

  1. macOS Finder style list view with expand/collapse disclosure triangles
  2. Windows Explorer style sidebar tree

Personally I'd much rather have the macOS Finder style view but I still think it would be better to split the issue to clarify which one has more interest.

@mileyvirus the plan for Files is to add a tree view layout similar to the one in Finder.

Oh Please no. why would you want a tree view in the contents pane, it should go in the navigation pane because that's what it is, a navigation tool. I've never liked Mac Finder or the Gnome file manager, they are trash. In the contents I just want to see the contents of what I'm focused on why would anyone want to see the tree there, just to add more clutter around the contents you are working on and want to focus on? A tree in the contents pane confuses me on mac finder and linux file manager. Before you say anything I've worked in IT for over 30 years and administer Cisco switches, network infrastructures, Platforms such as Linux, Aix, Solaris, and windows systems and I've deployed high performance computer environments for artificial intelligence. I know what works and I know what doesn't.

mdtauk commented 1 year ago

We have plans to simplify the sidebar, to remove as many levels of tree as possible. So I think if a tree view is coming, it will be within the content area.

image

Me and @yaira2 discussed some initial ideas, but there are some technical hurdles to work out with it, especially with the detail view columns.

image

yaira2 commented 1 year ago

We haven't made a final decision yet, for a while we were leaning towards doing it in the content area, but we ran into a number of technical challenges (especially around selection). Both a tree view layout and sidebar have drawbacks, but we'll continue prototyping and try to come up with the best approach.

If we go with the sidebar approach, it would likely be an additional option with the simplified version being the default.

yaira2 commented 1 year ago

A tree in the contents pane confuses me on mac finder and linux file manager

@dcadint that is the main complaint with the layout, but there are also issues with multiselect and performance.

I know what works and I know what doesn't.

Everyone is an expert until they see the bigger picture, bottom line is we're listening to all the feedback and doing our own research and hope to come up with something that satisfies the most users.

mdtauk commented 1 year ago

We haven't made a final decision yet, for a while we were leaning towards doing it in the content area, but we ran into a number of technical challenges (especially around selection). Both a tree view layout and sidebar have drawbacks, but we'll continue prototyping and try to come up with the best approach.

If we go with the sidebar approach, it would likely be an additional option with the simplified version being the default.

What we would like, is similar to Gnome and macOS Finder's approach - what we may have to settle with, is an additional sidebar to the side.

But we have been exploring and considering ideas - its just less of a priority as other parts of the app are being refactored and improved.

yaira2 commented 1 year ago

What we would like, is similar to Gnome and macOS Finder's approach - what we may have to settle with, is an additional sidebar to the side.

@mdtauk you had a concept a while back that allowed users to switch between different sidebar formats, this might be the approach we end up going with. There are performance issues to consider because currently, the sidebar is shared across all tabs. If we use a tree view, it wouldn't be as simple to reuse the control in each tab.

mdtauk commented 1 year ago

@mdtauk you had a concept a while back that allowed users to switch between different sidebar formats, this might be the approach we end up going with. There are performance issues to consider because currently, the sidebar is shared across all tabs. If we use a tree view, it wouldn't be as simple to reuse the control in each tab.

I think with the changes we are planning for the sidebar - having an additional tree one level below the current selection on the sidebar, may be the better approach, for performance and for making sense of it

SgtSweetieBelle commented 1 year ago

Oh Please no. why would you want a tree view in the contents pane

Here is a simple multi-folder workflow with a sidebar treeview: image

Here is that same exact multi-folder workflow with a contentpane treeview: image

In short, contentpane treeview lets you see the contents of multiple folders simultaneously. Sidebar treeview does not; you must either click between folders/tabs, or open a new window for each folder.

In the contents I just want to see the contents of what I'm focused on

What if you're focused on the contents of multiple folders?

Folders themselves are contents, depending on the context.

why would anyone want to see the tree there, just to add more clutter around the contents you are working on and want to focus on?

Because you can see more things in a single pane without additional navigation.

it should go in the navigation pane because that's what it is, a navigation tool.

It's great for top level navigation, which UI designers are starting to recognize as their preferred use of the sidebar. The prevailing belief is that the sidebar should be as static as possible, so you can always have quick access to entirely different parts of your computer.

Having a static sidebar and a treeview content pane gives them both very clear roles:

But if you introduce expanding folders in the sidebar, it stops being that. Both sidebar and contentpane become sublevel nav. which is redundant, splits the functionality unnecessarily, and almost completely removes toplevel nav.

I've never liked Mac Finder or the Gnome file manager, they are trash.

If they were trash, no one would like them.

Before you say anything I've worked in IT for over 30 years and administer Cisco switches, network infrastructures, Platforms such as Linux, Aix, Solaris, and windows systems and I've deployed high performance computer environments for artificial intelligence. I know what works and I know what doesn't.

Be wary of appeals to authority, especially a self-imposed authority, and especially in situations where knowledge is not proprietary. What would you say if a 30-year IT veteran with similar credentials claimed that the Finder style was "what works" and the Explorer style was "what doesn't"? What makes you more right than them?

Even then, being a 30-year IT veteran does not make you more right than other people when it comes to UI design. We are not talking about Cisco switches or MLL environments, we're talking about a file browser. Everyone in every computer-dominated industry uses file browsers to get shit done on a daily basis, and everyone knows what works best for them and their workflow. Just because those people are not IT professionals does not make them wrong, because IT professionals are not the only people in the world who exist, and what works for them will not necessarily work for everyone.

There are many valid reasons to prefer the sidebar treeview, but they are above all a preferenceβ€”do not mistake it for universal truth.