mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-08-27 11:29:24 +00:00
126 lines
5 KiB
Plaintext
126 lines
5 KiB
Plaintext
1. A definite improvement over the previous version I saw.
|
|
2. Contains some interesting ideas:
|
|
Features:
|
|
> Multiple content views
|
|
> Display of an XML file as a frame floating in the content view
|
|
> Customizability
|
|
I like the ability to drag colors from the color selector to a window.
|
|
> Interface
|
|
. Much attention paid to producing a user-friendly result here.
|
|
. "Everything Windows explorer is and more"
|
|
. Simplicity of available operations
|
|
. Providing as much useful information as possible from a given screen, without
|
|
overloading the user (e.g. thumbnails).
|
|
. I like the (debated) user levels, but wish their differences were known.
|
|
Design:
|
|
Implementation:
|
|
> Code is survivably good - not wonderful, but not procmail
|
|
> Using XML allows easy integration of web data sources, etc.
|
|
|
|
3. Has some drawbacks:
|
|
Features:
|
|
> Interface
|
|
. Value of the panel is questionable
|
|
. Double-click vs. single click needs explanation/exploration
|
|
. More information on what the new user
|
|
. The "file operations" area of the interface is not explored very well and
|
|
is very vague.
|
|
Design:
|
|
> Is basically a collection of intertwined widgets, rather than
|
|
a data-oriented class hierarchy.
|
|
> No abstraction of common patterns
|
|
> Extensibility virtually non-existent
|
|
> Generally poor.
|
|
|
|
Example - instead of instantiating the a certain class with a well-known
|
|
interface when a particular view is requested, MultiView is used
|
|
with a number of set_*_view() functions that are hardcoded to display
|
|
certain views.
|
|
Example - The iconview has special cases for the vault in its metadata-reading code.
|
|
Example - There is only one application-level class that is ever derived from (IconView),
|
|
out of the thirty or fourty such classes present.
|
|
Implementation:
|
|
> Performance is poor (possibly due to use of AA canvas)
|
|
"It has to be faster if you are going to get people to use this"
|
|
> Uses Gtk--
|
|
. In constant flux
|
|
. Relatively high resource demands
|
|
> Somewhat buggy
|
|
> Using XML - may not always be appropriate, has performance implications in the
|
|
current usage situations, what about gnome_metadata.
|
|
> Doesn't use gnome-vfs
|
|
|
|
4. Misc suggestions
|
|
|
|
"One thing I like in windows is how you can select a file, and it views it on the side as
|
|
a preview (for picture files and html files)". (Easy to implement.)
|
|
|
|
5. Nautilus scenarios
|
|
|
|
irc://irc.gnome.org/#gnome
|
|
Shows xchat as the content view, and a list of 'Recently Displayed URLs' as a
|
|
meta view.
|
|
ghelp:
|
|
Displays the help intro page as the content view, and the table of contents,
|
|
help search, and help index as meta views.
|
|
file://localhost/
|
|
Displays icon list of files as content view, and directory tree and file
|
|
properties as meta views.
|
|
http://www.gnome.org/
|
|
Displays the web page as the content view, and web search and what's related
|
|
as meta views.
|
|
mailto:sopwith@gnome.org
|
|
Displays mail composer as content view, and address book as meta view.
|
|
|
|
6. My conclusions
|
|
|
|
gnomad is very focused on the user interface, and looks promising for producing a good
|
|
user experience.
|
|
|
|
The patterns that pieces of gnomad fit would allow for easy integration into Nautilus.
|
|
|
|
I recommend that that an assessment be made of features still needed from Nautilus, and
|
|
that we turn the various views of Gnomad into Bonobo controls for use in Nautilus.
|
|
|
|
|
|
Appendix A: What Nautilus is
|
|
|
|
The generic pattern of content view/meta views/available operations occurs in a wide
|
|
variety of situations. The Windows web-browser interface uses the basics of this, but
|
|
does not exploit it to its full potential.
|
|
|
|
Nautilus is a data shell that uses Bonobo components to present the best possible user
|
|
interface for a given piece of data. When navigation to a particular URL is requested by
|
|
a view (either the main content view or one of the meta views), Nautilus determines what
|
|
content view and meta views should be displayed, based on the requested URL, the
|
|
referring URL, the content type of the requested URL, and application configuration.
|
|
|
|
This allows a standard yet appropriate interface to be provided for an infinite variety
|
|
of data types.
|
|
|
|
http://people.redhat.com/sopwith/h3.gif contains a screenshot of the help browser
|
|
prototype that produced the idea for Nautilus. This window follows the content
|
|
view+meta views pattern that Nautilus supports.
|
|
|
|
Based on analysis of gnomad, features that Nautilus design still needs:
|
|
More thorough examination of what data-related elements the user interface
|
|
should incorporate (especially in the areas of toolbars/menus).
|
|
|
|
Ways of displaying meta views besides as tabs in a notebook.
|
|
|
|
Multiple content views.
|
|
|
|
Passing RDF-like tree from content to meta views, instead of just the URL.
|
|
|
|
Other features that I had been planning to add:
|
|
Ability for displayed views to modify menus/toolbars
|
|
(just need to make use of GnomeUIHandler, I think).
|
|
|
|
Finish implementation of the whole URL -> set of views code.
|
|
|
|
Finish implementation period. :)
|
|
|
|
Appendix B: Bugs
|
|
|
|
Remove semicolon from end of music_view.cpp:115 (still doesn't work, oh well).
|