Hi, 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) Anyway: http://www.debian.org/~hp/gnome-apt.html 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 true shortcuts. 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. 4.2.2 Search 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. 6.1.1 Menu 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 Search... Toggle Install/Upgrade Toggle Remove Toggle Keep 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 implemented - 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. 6.1.2 Filterbar 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 design. 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. 6.1.3.1 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). 6.1.4 Shortcuts Not implemented but planned. 6.1.5 Information panels Lalo is on it. 6.1.6 Package information window See above. For jumping directly to bugs webpage: I would like to integrate this in some nice way with the File Bug Report menu item. 6.1.7.1 (Pre-)dependencies 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 apt-pkg support. 6.1.7.2 Conflicts This is not distinct from dependency handling in apt-pkg AFAICT; it is all one option to automagically fix, MarkInstall(,true); 6.1.7.3 Recommends Not implemented but seems easy enough. 6.1.7.4 Suggests Ditto. 6.2 Download screen My screen has all this info and more. The Abort button needs apt-pkg support; it exists but does not work. Update uses the same download screen. 6.3 Installation screen Shows a modal dialog containing a terminal widget, with dpkg inside. 7 Dialogs 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 7.3 Sources 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. The End 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 - Preferences/state-saving - Keyboard shortcuts and package list navigation - Finish up the search facilities - Filter-by-section - 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 cosmetics 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 and TODO. Havoc

