home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / lib / python2.4 / site-packages / AppInstall / DialogMultipleApps.py < prev    next >
Encoding:
Python Source  |  2006-08-28  |  2.6 KB  |  66 lines

  1. # (c) 2005 Canonical, GPL
  2.  
  3. from SimpleGladeApp import SimpleGladeApp
  4. import gtk
  5. import gobject
  6. import os
  7. from Util import *
  8. from gettext import gettext as _
  9.  
  10. class DialogMultipleApps(SimpleGladeApp):
  11.  
  12.     def __init__(self, datadir, parent, multiple_items_list, name):
  13.         SimpleGladeApp.__init__(self,
  14.                                 path=datadir+"/gnome-app-install.glade",
  15.                                 root="dialog_multiple_apps",
  16.                                 domain="gnome-app-install")
  17.                                 
  18.                                 
  19.         self.store = gtk.ListStore(gobject.TYPE_STRING,
  20.                                    gobject.TYPE_PYOBJECT)
  21.         for elm in multiple_items_list:
  22.             self.store.append((elm.name,elm))
  23.         self.treeview_multiple_apps.set_model(self.store)
  24.         self.dialog_multiple_apps.set_transient_for(parent)
  25.         self.init_treeview(self.treeview_multiple_apps)
  26.  
  27.         header = (_("'%s' is bundled with other applications") % name)
  28.         msg = _("Modifications of one application affect the other "\
  29.                 "applications as well.")
  30.         self.label_multiple.set_markup("<b><big>%s</big></b>\n\n%s" %\
  31.                                        (header, msg))
  32.  
  33.     def run(self):
  34.         return self.dialog_multiple_apps.run()
  35.  
  36.     def hide(self):
  37.         self.dialog_multiple_apps.hide()
  38.  
  39.     # this code is identical to DialogPendingChanges - merge
  40.     def init_treeview(self, view):
  41.         def package_view_func(cell_layout, renderer, model, iter):
  42.             (name, item) = model.get(iter, 0, 1)
  43.             renderer.set_property("markup",
  44.                                   "%s\n<small>%s</small>" % \
  45.                                   (item.name, item.description))
  46.         def icon_cell_func(column, cell, model, iter):
  47.             menuitem = model.get_value(iter, 1)
  48.             if menuitem.iconname != None:
  49.                 icon = menuitem.icontheme._getIcon(menuitem.iconname, 24)
  50.                 cell.set_property("pixbuf", icon)
  51.             else:
  52.                 cell.set_property("pixbuf", None)
  53.             cell.set_property("visible", True)
  54.         view.set_search_column(COL_NAME)
  55.         view.get_selection().set_mode(gtk.SELECTION_NONE)
  56.         column = gtk.TreeViewColumn("")
  57.         render = gtk.CellRendererPixbuf()
  58.         column.pack_start(render, False)
  59.         column.set_cell_data_func (render, icon_cell_func)
  60.         render = gtk.CellRendererText()
  61.         render.set_property("xpad", 4)
  62.         column.pack_start(render, True)
  63.         column.add_attribute(render, "markup", COL_NAME)
  64.         column.set_cell_data_func (render, package_view_func)
  65.         view.append_column(column)
  66.