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

gnome-apt status wrt UI document



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




Reply to: