gnome-apt status wrt UI document
This is a status report on gnome-apt, and also a discussion of where it
stands with respect to the UI design. This should give everyone an idea
what remains to be done. Also I want to let Wichert know where I've
deviated from the design.
I'll follow the organization of the UI design.
I have also made a little web site, it is in CVS and I put a cron job on
va to copy it over to public_html. (hope this is OK)
The web site is simultaneously my TODO list, for tracking progress.
3.2 Interface conformance.
Here I think it is appropriate for gnome-apt to follow Gnome standards
when they exist. i.e., I plan to copy the key shortcuts from the standard
Gtk tree widget. For mouse behavior I plan to do the same.
Key shortcuts are pretty much nonexistent at this time, but the
standard Gnome stuff makes all the menus and dialogs keyboard-navigable.
("navigable" means Alt-P to get the package menu, then arrow down
to the install item; this is different from shortcuts,
since there is no single key to type for "install"). You can
navigate dialogs by pressing return for the default action, escape
to close the dialog, tab to move widget focus and space to activate
a widget (like a button).
I plan to implement key navigation of the package tree soon, and
3.3 Saving state
Unimplemented, but definitely will be implemented. This is a standard
Gnome feature. Want to finalize a few things first since this stuff
is annoying to keep in sync while changing other features.
3.4 Package sources
We just use sources.list. I have not looked at the apt-pkg stuff to
determine if there is a way to parse and write to sources.list; if there
isn't, we will need one.
4.1 Initial config
User should be able to set up list of sources the first time they
start up Apt - this is automatically solved as soon as 3.4 is solved.
I have a reasonable search framework, but the current UI is crap.
Right now you enter a regular expression, it searches all text fields
and reports scored results. You can click a result and jump to it
in the package tree. You can have multiple results windows open
at a time, and use them all to navigate around the tree.
I plan to redo this UI. The results windows will ultimately
mirror the selection in the main tree, so selecting an item in
the tree selects a result, and vice versa. Also any search will
generate results from the entire tree, but display results
obeying the current filter. I think this will be a very nice
way to generate on-the-fly special purpose indexes. The framework
already supports this but I haven't implemented the UI,
only the engine.
It would be nice to have a detailed description of how the search
dialog will look. What kinds of searches? What's the interface?
At the moment it is just a single entry box for a regular expression
but that's simply a hack so I could test the engine.
5.1 Obsolete sources
Sounds like an apt-pkg issue.
5.2 Automatically installed packages
An apt-pkg issue
5.3 Multiple package versions
I don't see a way to access these in the current apt-pkg interface
6.1 Package selection screen
The package information panel is probably going to be more elaborate
than this, Lalo is working on it. However it will be configurable
in all sorts of ways.
I have a lot of changes to the menu.
- There is a File menu, because this is the Gnome standard. File
contains Exit, and all preferences items.
- I have added an Update menu item. This seems important, no?
Does an apt-get update.
- The only action from the UI design is "complete run," apt-pkg does
not support only upgrading/installing/removing really.
- I have added Update to the actions menu; I've also added the option
to "Mark upgrades" (apt-get upgrade) and "Smart Mark Upgrades"
(apt-get dist-upgrade). These just mark packages, then you can
adjust things to your liking and choose Complete Run to actually
perform the installs/removals.
- The Package menu is now like this:
Details and Search were in the popup menu only, so I added them
to the main menu as well. I haven't figured out how to do Hold
with apt-pkg, so there is no Hold. The three Toggle options
correspond to the three check buttons by each package in the
tree view; if the toggle button is not available in the tree,
the menu item is also unavailable.
Reinstall is merged with Install, because this corresponds to the
tree, and the actions are totally equivalent. So it seemed
confusing to have them separate.
- The main menu bar has a View menu, which contains all the View options
from the popup menu.
- To the Advanced menu, I added "File Bug Report," but it is not
- The Help menu has only About for now, since there is no actual help.
- There is no Options menu, since the Gnome standard is to put
this stuff under File.
Opinions welcome on these changes.
I have filter by Priority and Status. Filter by source and flag will
require apt-pkg support, so there is no UI for now. Filter by Section
is planned but somewhat annoying to implement (it has to be updated
when the cache changes) so I have not done so yet.
I have added new features to the filterbar. Each filter menu has
items for Clear and Reverse. Clear changes the filter to permit
all packages. Reverse reverses the filter to permit the opposite
set of packages. The filterbar also has an "overall" menu, which
allows you to Reverse All and Clear All.
I think these are pretty sweet features and worth adding to the UI
6.1.3 Package list
There are no Auto or Source columns due to lack of apt-pkg support.
They can be added later.
The package list is ugly at this time and lacks keyboard support,
but works nice otherwise.
I haven't added the list of providing packages underneath a virtual
package, but this is planned.
22.214.171.124 Popup menu
Basically the context menu consists of the Package and View menus
from the main menu. All other actions seem to infrequent to put on the
popup. The View menu includes Columns shown, Order by, and Panels.
Panels does not work yet (waiting on Lalo's code). I have added
Group by, which determines the toplevel folders. So you can group
by section, then within each section sort alphabetically and by
status, for example.
Mark for hold and purge are absent because these do not seem to fit
the apt-pkg paradigm. Install does not have the submenu with
available versions because there is only one possible version
that could be installed at any time (the one not currently installed).
Again, changing this would seem to require apt-pkg support.
I could be wrong about any of this of course. :-)
I don't have a Filter menu on the popup. There is no way to filter
out individual packages right now; is this menu supposed to provide
that feature? If so it would be fairly easy to add/remove the current
package from the filter, I can implement that.
The other possible interpretation of the UI design is to filter the
section/status/etc. currently under the mouse. This would be
extremely difficult to implement, so I am going to postpone
it indefinitely; many other missing features seem more pressing.
The sorting algorithm is stable as requested.
The Details/Show All Info window isn't written yet; it will simply
be Lalo's display shown in a different window rather than inside
the main window and disconnected from the current selection. (normally
the display changes with the selection).
Not implemented but planned.
6.1.5 Information panels
Lalo is on it.
6.1.6 Package information window
For jumping directly to bugs webpage: I would like to integrate this
in some nice way with the File Bug Report menu item.
Right now Apt always asks whether to install dependencies. In the
future it can be configurable.
However, apt-pkg does not support showing a preview of what will
be done. So the prompt is vague; "this package is missing dependencies
or there are conflicts; should I install/remove as needed to fix
the problem?" - if we want a preview of proposed changes, I need
This is not distinct from dependency handling in apt-pkg AFAICT;
it is all one option to automagically fix, MarkInstall(,true);
Not implemented but seems easy enough.
6.2 Download screen
My screen has all this info and more.
The Abort button needs apt-pkg support; it exists but does not
Update uses the same download screen.
6.3 Installation screen
Shows a modal dialog containing a terminal widget, with dpkg inside.
Dialogs are mostly application modal, except that search results
will not be (since you want to use it as an index, while still
being able to access the package tree).
7.1 List options
Sort order: you can do this manually now from the menus, but there
is no dialog to set it permanently.
Columns shown: right now this is just on the menus.
Multiple package sources: I don't see a way to do this in
apt-pkg, but I may be confused.
7.2 System options
Not implemented, but easy
I haven't looked at apt-pkg support for this, if it doesn't exist
then it will need to. If it does then the dialog is fairly easy.
7.4 Package search
Discussed above; I like my idea for improving the results dialog.
So that's the relationship of gnome-apt to the UI document.
I consider the major missing features to be:
- The package display Lalo is working on
- Keyboard shortcuts and package list navigation
- Finish up the search facilities
- Listing packages that provide a virtual package under the
virtual package's tree row
- Source list editing
- Drawing +/- expanders on tree display, and fixing pixmap
Once these are complete gnome-apt will be a fairly complete and useful
interface to apt-pkg. It is already just as complete as apt-get, though
likely more buggy.
These are pretty much my goals for the first release. Comments welcome.
In the future I will keep the web site up to date with the current status