LaunchpadIntegration

Summary

Launchpad Integration is a way of providing people using Ubuntu programs with easy access to functions provided by Launchpad. It does not include any Ubuntu-specific code in Launchpad; other distributions can provide such integration just as easily.

Scope

For Ubuntu 5.04, many desktop applications will be enhanced to provide built-in links to Launchpad pages for:

  • getting help on the application
  • contributing to translations of the application.

Design

For those applications that have a practically alterable Help menu, two items are added to it like this.

  • app-help-menu.jpg

The "Get Help Online..." item opens a browser window to https://launchpad.net/distros/ubuntu/breezy/+sources/package/+bugs/+new, using the standard GNOME mechanism for opening URLs. the "Translate This Application..." item similarly opens a browser window to https://launchpad.net/distros/ubuntu/breezy/+sources/package/+contribute.

To cover those programs that do not have their own Help menus, or for which modifying their Help menus is too difficult, two equivalent items are added to Ubuntu's overall "Help" menu.

  • system-help-menu.jpg

These items open https://launchpad.net/distros/ubuntu/breezy/+bugs/+new and https://launchpad.net/distros/ubuntu/breezy/+contribute respectively.

For now, the extra menu items will not have access keys.

For the design of the pages at the other end, see:

Implementation

To make this happen by Ubuntu 5.04, some standard Gnome libraries are patched to include the menu items.

Long term

This is just an idea for the future maybe, with a thought to generalize this sort of application supportive desktop integration efforts.

  • Create a library and an API that would provide support for an app to use a standard way to "request" those menu items and their attached actions.
  • Complement the library with a conffile that would include details, per application / globally to instruct which bug tracker , translation portal / program / info pages to use for an app relative to the distro it's running on.
  • Encourage the developers community to use that API, so to achive a streamlined way to allow derived custom distributions to specifiy their preferred bug systems, translation portals, information pages and possibly make this API extensible to allow derivatives to add more functionality, as per their private infrastructures.
  • This would make it trivial for distributors of desktop suits (Ubuntu as one) to customize this niche of the desktop, as well as spreading this functionality over all flavours of desktops, if this gets wide adoption by the community.

Research

Applications use the following methods for creating their menus:

  1. hand built menus
  2. GtkItemFactory

  3. GtkUIManager
  4. GnomeUIInfo
  5. BonoboUI
  6. menus built from a glade file (which is really just (1))

The applications to be modified are listed below, sorted according to the method used.

GtkUIManager

Uploaded:

  • eog
  • epiphany-browser
  • evince
  • file-roller
  • gcalctool
  • gconf-editor
  • gnome-media
  • gnome-system-monitor
  • gnome-utils
  • gnumeric
  • gthumb
  • nautilus
  • rhythmbox
  • yelp

WIP:

  • gnome-games (issue due to setgid games)

Todo:

BonoboUI

* Bonobo comaptible helper lib is ready, sivang.

Uploaded:

WIP: Todo:

Glade

Uploaded:

  • sound-juicer
  • synaptic
  • totem

WIP:

Todo:

Gtk``Item``Factory

Uploaded:

  • gaim

Manual

Uploaded:

  • gnome-terminal
  • gucharmap
  • xchat
  • gnomemeeting
  • firefox

WIP:

Todo:

  • gimp (not sure about that, it uses what looks to be a customized form of UIManager, sivang)

See also

CategoryDevelopment

UbuntuDownUnder/BOFs/LaunchpadIntegration (last edited 2008-08-06 16:37:39 by localhost)