Table of Contents

Design

Other pages to look at:

Trash System

The Trash System is probably one of the most interesting aspects of the file manager, and a proper implementation depends heavily on other components of the file manager, with a focus on these two components:

  • The file info manager (which includes the stat()-cache)
  • A volume manager, which is required to determine the various $topdirs, that can hold .Trash and/or .Trash-$uid directories

The Volume Manager should also offer some kind of notification when new devices show up (e.g. an USB stick), but it should not depend on unportable services such as HAL.

In addition, the Trash System depends on the file managers ability to

  • move/rename
  • copy
  • delete

files, which needs to be integrated with the file info management to support instant notification to the user.

It is very important to implement the Trash System according to the FreeDesktop.org Trash Specification to be compatible with other major desktops such as KDE and Gnome.

The Main View

The Main View is the heart of the Thunar window, it displays the contents of the folder you are looking (or the results of a desktop search in the future). The Main View should support atleast the

  • Icon View
  • List View

styles. And optionally, it could support the

  • Column View (similar to Aqua Finder)
  • Tree View (similar to Classic Finder)

styles, but this has very low priority.

There’ll be a common interface ThunarView, which will be implemented by the ThunarIconView and ThunarListView classes. All views will be based on a simple backend interface ThunarModel. This interface will be implemented by atleast

  • ThunarFolderModel, which represents a folder (currently I think this should just be a proxy to the stat-cache tree).
  • ThunarTrashModel, which provides an interface to the Trash System

and maybe additional classes.

Since parts of the functionality of the main UI depend on the currently active ThunarModel (like the Empty Trash action), there should be a way to query models for additional actions.

A diagram that represents the basic idea:

Thumbnail System

The Thumbnail System should display thumbnails of all files and should create/update thumbnails of supported types (query GdkPixbuf). This allows third party tools to generate thumbnails for foreign file types - such as spreadsheets or PDF files - that are not supported by GdkPixbuf, and the file manager can display them to the user.

 
  design/overview.txt · Last modified: 2005/07/02 20:10 by 24.6.245.55 (brian)
 
Recent changes RSS feed Creative Commons License Driven by DokuWiki