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 / DialogPendingChanges.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2006-08-31  |  3.1 KB  |  79 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. from SimpleGladeApp import SimpleGladeApp
  5. import gtk
  6. import gobject
  7. import os
  8. from Util import *
  9.  
  10. class DialogPendingChanges(SimpleGladeApp):
  11.     
  12.     def __init__(self, datadir, parent, to_add, to_rm):
  13.         SimpleGladeApp.__init__(self, path = datadir + '/gnome-app-install.glade', root = 'dialog_pending_changes', domain = 'gnome-app-install')
  14.         self.add_store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_PYOBJECT)
  15.         self.remove_store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_PYOBJECT)
  16.         for elm in to_add:
  17.             self.add_store.append([
  18.                 elm.name,
  19.                 elm])
  20.         
  21.         for elm in to_rm:
  22.             self.remove_store.append([
  23.                 elm.name,
  24.                 elm])
  25.         
  26.         self.dialog_pending_changes.realize()
  27.         self.dialog_pending_changes.set_transient_for(parent)
  28.         self.init_treeview(self.treeview_pending_add)
  29.         self.init_treeview(self.treeview_pending_remove)
  30.         self.treeview_pending_add.set_model(self.add_store)
  31.         self.treeview_pending_remove.set_model(self.remove_store)
  32.         self.button_confirm_changes.grab_default()
  33.         self.dialog_pending_changes.window.set_functions(gtk.gdk.FUNC_MOVE)
  34.  
  35.     
  36.     def init_treeview(self, view):
  37.         
  38.         def package_view_func(cell_layout, renderer, model, iter):
  39.             (name, item) = model.get(iter, 0, 1)
  40.             renderer.set_property('markup', '%s\n<small>%s</small>' % (item.name, item.description))
  41.  
  42.         
  43.         def icon_cell_func(column, cell, model, iter):
  44.             menuitem = model.get_value(iter, 1)
  45.             if menuitem.iconname != None:
  46.                 icon = menuitem.icontheme._getIcon(menuitem.iconname, 24)
  47.                 cell.set_property('pixbuf', icon)
  48.             else:
  49.                 cell.set_property('pixbuf', None)
  50.             cell.set_property('visible', True)
  51.  
  52.         view.set_search_column(COL_NAME)
  53.         view.get_selection().set_mode(gtk.SELECTION_NONE)
  54.         column = gtk.TreeViewColumn('')
  55.         render = gtk.CellRendererPixbuf()
  56.         column.pack_start(render, False)
  57.         column.set_cell_data_func(render, icon_cell_func)
  58.         render = gtk.CellRendererText()
  59.         render.set_property('xpad', 4)
  60.         column.pack_start(render, True)
  61.         column.set_cell_data_func(render, package_view_func)
  62.         view.append_column(column)
  63.  
  64.     
  65.     def run(self):
  66.         if len(self.add_store) == 0:
  67.             self.vbox_add.hide()
  68.         
  69.         if len(self.remove_store) == 0:
  70.             self.vbox_remove.hide()
  71.         
  72.         return self.dialog_pending_changes.run()
  73.  
  74.     
  75.     def hide(self):
  76.         self.dialog_pending_changes.hide()
  77.  
  78.  
  79.