Tree View

Merged Amrit Borah requested to merge Elessar1802/thunar:tree-view into master

Solves #41 (closed).

!297 (closed) Already exists pertaining to this, but this MR takes a different approach.

This MR creates a new ThunarStandardVeiwModel Interface which is to be implemented by all the view models i.e list-model, tree-view-model (part of this MR).

In !297 (closed) the list-model was internally modified. This lead to problems when changing views (from details-view to icon-view & vice-versa). Additionally ThunarPathEntry also uses list-model.

Also this change was made keeping in mind #14.

Tasks

  • Create ThunarStandardViewModel
  • Modify ThunarListModel to implement ThunarStandardViewModel.
  • Create ThunarTreeViewModel
    • Implements ThunarStandardViewModel
    • Try running details-view with the newly created model.
  • Modify ThunarStandardView to support changing of models when changing views.
  • Keyboard navigation in tree-view.
  • Toggle tree-view through view menu while in details-view.
  • Added Thunar preference checkbox to always open details view in tree-view mode.
  • Thunar Critical on switching file counts in configure columns dialog box.
  • Create a UML diagram to showcase the hierarchy of the newly added models.
  • Toggling show hidden option has no effect after the first call.
  • Refactor code. (Naming, formatting, etc)
  • Check for leaks.

TODO (after Merge)

  • #1144 (closed) - Properly define and implement the drag and drop of expanded files.
  • #1146 (closed) - Improve Thunar responsiveness (remove freezes) when opening 10000+ files.
    • Explore the various solutions. Make things more async.
    • Investigate the cause of the freeze.
  • #1145 (closed) - XL & XL+ thumbnails.
    • May need a rewrite of thumbnailing.
  • #1148 (closed) - Expanding folders in single click mode will activate them
  • #1149 (closed) - Select files after action in list view
  • #1156 (closed) - Reload is called once per subfolder

Note: Switching between views should work now.

Edited by Alexander Schwinn

Merge request reports