2003-10-22

3.2

The &fsview; Plugin for &konqueror; is another view mode for objects of mimetype `inode/directory` for local files. It can be viewed as an alternative to the various iconviews and listviews for browsing the content of your local file system.

## &fsview; - the File System View

### Introduction

The &fsview; Plugin for &konqueror; is another view mode for objects of mimetype `inode/directory` for local files. It can be viewed as an alternative to the various iconviews and listviews for browsing the content of your local file system.

The unique property of &fsview; is its ability to show whole nested folder hierarchies by using a so called tree map for graphical visualization. Tree maps allow for showing metrics of objects in nested structures: each object is represented by a rectangle whose area is proportional to its metric. The metric must have the property that the sum of the children's metrics of some object is equal or smaller than the objects metric.

For &fsview;, sizes of files and folders are choosen as metric, where the the size of a folder is defined to be the sum of the sizes of its subitems. This way, big files even deep down in the folder hierarchy can be spotted easily be looking for large rectangles. So &fsview; can be looked at as a graphical and interactive version of the &UNIX; `du` command.

The integration of &fsview; as part of Konqueror allows it to use the standard features like context file menus, and mime type sensitive actions. But it was choosen not to implement automatical update of file system changes by watching: if you delete a file shown in &fsview; outside of &konqueror;, you have to update manually by ⪚ pressing F5. The reason for this decision is the potentially huge amount of files which would have to be watched for changes, and thus, could put an unreasonable pressure on system resources for a small feature.

### Visualization Features

This section explains the graphical visualization of &fsview; in detail.

#### Item Drawing Options

In &fsview;, an item of the tree map visualization is a rectangle representing a file or folder of your file system. For easier navigation, rectangles have a meaningful coloring and labeling options.

The color of a rectangle, switchable via menu item View Color Mode can be either Depth for easy detection of the nesting, or a color mapping of different file attributes like name, owner, group, or mime type.

A rectangle can be labeled with the various attributes of the corresponding file or folder. For an attribute, you can choose, whether it should be shown at all, only if space is available, or if space should be taken from children (thus introducing errors to pure tree map drawing constrains). Additionally, you can choose the relative location of the label in the rectangle.

#### TreeMap Drawing Algorithms

For drawing algorithms in tree maps, the rule that the area is proportional to the metric of an item should hold true. With the tree map in &fsview;, this goal isn't always met: we draw borders to show the nesting of items, and this border takes space for a item which is possible lost for the areas of child items. Note that less space is lost for the border if the rectangle is quadratic.

Similar, it is good for a better overview to let all rectangles at least have its name as label, taking space, too. It is an option to always force space for labels, or only to draw labels when empty space is available. In the latter case, the tool tips appearing when the mouse is kept over an item for some time, can help a lot. They show information for the item the mouse is currently over, together with its parent relations up to the root item of the tree map.

How the space of an item is split into subareas for children is left to the implementation. It is always better to try to split areas in such a way that rectangles are as quadratic as possible, both for labeling and less space lost by borders. The best methods in this regard are Rows, Columns, or Recursive Bisection.

You can choose the minimal area of items to be drawn via the menu item View Stop at Area. Instead, a hash pattern will be drawn over the parents area to signal that this space is in fact occupied by a child.

### User Interface

&fsview; supports multiple selection of items, similar to the iconview and listview. This allows for actions to be done simultaniously to a set of files. A simple mouse click always selects a single item below the mouse pointer. Use a mouse click in combination with pressing the &Shift; key for range selection or the &Ctrl; Key for selection toggle. Note that by selecting an item, subitems can't be selected any longer. Thus, selecting an item will clear the selection of all its parent items before.

There is keyboard navigation available in tree maps: use Left Arrow and Right Arrow keys to move the current item between siblings, and the Up Arrow and Down Arrow keys to go up and down the nesting hierarchy. Space selects the item, in conjunction with &Shift; does range selection, and with the &Ctrl; key hold down simultaniously, toggles selection of the current item. Press Return to run the open action onto the current item.

### Credits and License

Originally, &fsview; was meant as a small test application and usage tutorial for the TreeMap widget developped within KCachegrind.

Copyright by Josef Weidendorfer, licensed using GPL V2.

&underGPL; &underFDL;