[Usability] Two proposals for file-selection



Before anyone yells at me "no! not more", I'd like to explain that these
are not UI proposals. I think we have enough UIs for now.

These are two separate ideas that can be applied to any file-selection
dialog I know (GTK2.0, GTK2.4, windows, wmaker...) to improve usability.
Both ideas sparked from recent discussions about using DB-like
filesystems to simplify selection, but trying to get closer to current
widely-available technology.

1) Directory filtering

When selecting files of specific types, hiding directories that don't
contain (recursively) files of that type. Suppose you're using the file
open dialog to select audio files, and all your audio files are in
places like

/home/dmoisset/media/sounds/*.wav
/home/dmoisset/programming/project/sound/test.wav
/usr/share/sounds/foo.wav
/usr/share/sounds/gaim/bar.wav
/usr/lib/baz/quux.wav

and you go to the root directory, the file selector should show

[home]
[usr]

hiding /boot, /var, /etc.

Let's suppose I select [home]. Now my only choice is

[dmoisset]

Perhaps there are some audio files in /home/someoneelse/, but I have no
read access to them, so as a user, I couldn't care less. When I finally
get to /home/dmoisset/media/sounds/ only .wav files should be shown
(that is current behaviour, I think)

The rationale for all this, is that if I say "I want to select a WAV
file", the system should expose to me all choices to get to a WAV file,
and shouldn't show me a lot of possible choices that won't help me get
the WAV file I'm looking for. The idea is that there are a lot of
dead-ends in the directory structure, and the dialog could help to hide
them so I can get where I want.

Hiding directories has the potential drawback (some tests should be
made) that some guy could see the file open dialog with most of their
home folder directories missing and say "hey! where is all my data!".
I'd like to have some feedback about other bad points of this.

2) Path compacting

Note that this idea is independent of the previous one, but they could
work quite well together.

While browsing the directory structure to find a file, there are lots of
times when there is only one possible option to move forward. That step
could be skipped. Let's use the previous file structure as an example.
Suppose you don't have any extra files besides the one I've showed. The
file dialog should show as initial options

[home/dmoisset]
[usr]

Note that there is only one subfolder under /home, so asking the user
where to go after he selected home is forcing him to do an extra step.
With this proposal, he skips that intermediate step. If he selects
[usr], he should be shown:

[lib/baz]
[share/sounds]

This works quite well with directory filtering.

Also note that if all my media files are in ~/Media, and a FO dialog
opens in ~, it should go immediately to ~/Media being consistent with
all this. In this way we get some kind of automatic positioning of the
File Open dialog if the user uses this kind of structure (~/Media,
~/Documents, etc.), but he is no forced to use it and is given the
choices if he puts media files somewhere else.

Both things are only for the file open dialog, and make no sense in a
file save dialog (they could make impossible to get to a folder). A
variant to this would be hide folders with no write permission, and no
writable subfolders. I'd like to know what do you think about them from
an usability standpoint, and if it's possible to implement them

I know there are some difficulties for implementing this, specially (1)
((2) is actually quite trivial). Some kind of file database should be
implemented, something like the slocate(1) DB, a little more
mimetype-aware. But I think it's quite closer to reality than a
databased filesystem.

I've written a small prototype to show these idea. You can get it from
http://www.grulic.org.ar/~dmoisset/filesel.py

you can run something like ./filesel.py *.doc, or ./filesel.py HOWTO and
it uses the locate command to get the file lists, and shows the output
as a tree, supposedly the tree that the file selector should show. You
can change the line "compaction=1" to enable or disable idea (2). It's
just a 1-afternoon prototype trying to be simple, not fast or small in
memory.

For the above directories, it should show something like

/home/dmoisset
    media/sounds
        a.wav
        b.wav
        ...
    programming/project/sound
        test.wav
/usr
    share/sounds
        foo.wav
        gaim
            bar.wav
    lib/baz
        quux.wav

I really would like to know what do you think about the usability of
this, and the applicability to GTK/GNOME file selectors

thanks for your time,
	Daniel

-- 
Must it be assumed that because we are engineers beauty is not our concern,
and that while we make our constructions robust and durable we do not also
strive to make them elegant?
Is it not true that the genuine conditions of strength always comply
with the secret conditions of harmony?
    -- Gustave Eiffel, 1887

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]