home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.4)
-
- import pygtk
- pygtk.require('2.0')
- from SimpleGladeApp import SimpleGladeApp
- import gtk
- import gobject
- import os
- from gettext import gettext as _
- from Util import *
-
- class DialogNewlyInstalled(SimpleGladeApp):
-
- def __init__(self, datadir, parent, to_add, cache):
- SimpleGladeApp.__init__(self, path = datadir + '/gnome-app-install.glade', root = 'dialog_newly_installed', domain = 'gnome-app-install')
- self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_PYOBJECT)
- for elm in to_add:
- if cache.has_key(elm.pkgname) and cache[elm.pkgname].isInstalled and elm.execCmd:
- self.store.append([
- elm.name,
- elm])
- continue
-
- self.treeview_newly_installed.set_model(self.store)
- self.dialog_newly_installed.set_transient_for(parent)
- self.init_treeview(self.treeview_newly_installed)
-
-
- def run(self):
- if len(self.store):
- return self.dialog_newly_installed.run()
-
-
-
- def init_treeview(self, view):
-
- def package_view_func(cell_layout, renderer, model, iter):
- (name, item) = model.get(iter, 0, 1)
- menupath = '</b> > <b>'.join(item.menupath)
- menupath = '<b>' + menupath + '</b>'
- renderer.set_property('markup', '%s\n<small>%s %s</small>' % (item.name, _('Menu:'), menupath))
-
-
- def icon_cell_func(column, cell, model, iter):
- item = model.get_value(iter, 1)
- if item.iconname != None:
- icon = item.icontheme._getIcon(item.iconname, 24)
- cell.set_property('pixbuf', icon)
- else:
- cell.set_property('pixbuf', None)
- cell.set_property('visible', True)
-
- view.set_search_column(COL_NAME)
- view.get_selection().set_mode(gtk.SELECTION_NONE)
- column = gtk.TreeViewColumn('')
- render = gtk.CellRendererPixbuf()
- column.pack_start(render, False)
- column.set_cell_data_func(render, icon_cell_func)
- render = gtk.CellRendererText()
- render.set_property('xpad', 4)
- column.pack_start(render, True)
- column.add_attribute(render, 'markup', COL_NAME)
- column.set_cell_data_func(render, package_view_func)
- view.append_column(column)
-
-
- def on_treeview_newly_installed_row_activated(self, treeview_packages, path, view_column):
- if os.getuid() == 0:
- return False
-
- treeiter = self.store.get_iter(path)
- (name, item) = self.store[treeiter]
- cmd_parts = []
- command = item.execCmd
- terminal = item.needsTerminal
- if command == '':
- return None
-
- for part in command.split():
- while True:
- if len(part) >= 2 and part[:2] == '%%':
- cmd_parts.append('%')
- part = part[2:]
- continue
-
- if part[0] == '%':
- break
-
- if cmd_parts[-1:] == '%':
- part = '%' + part
- cmd_parts[-1:] = part
- break
-
- cmd_parts.append(part)
- break
-
- if terminal:
- command = ' '.join(cmd_parts)
- command = 'gnome-terminal --command="' + command + '"'
- cmd_parts = command.split()
-
- os.spawnvp(os.P_NOWAIT, cmd_parts[0], cmd_parts)
-
-
- def hide(self):
- self.dialog_newly_installed.hide()
-
-
- if __name__ == '__main__':
- from Menu import ApplicationMenu
- cache = apt.Cache()
- datadir = '/usr/share/gnome-app-install/'
- progress = apt.progress.OpTextProgress()
- to_add = []
- treeview_categories = gtk.TreeView()
- treeview_packages = gtk.TreeView()
- menu = ApplicationMenu(datadir, cache, treeview_categories, treeview_packages, progress)
- to_add = set()
- for type, name, item in menu.store:
- for type, name, item in item.real_applications_store:
- to_add.add(item)
-
-
- print to_add
- dia = DialogNewlyInstalled(datadir, None, to_add, cache)
- dia.run()
- dia.hide()
-
-