def __get_category(self): s = self.combo_category.get_active_text() from install_remove_pane import Category for c in Category.all(): if c.text == s: return c.category return 'Other'
def __init__(self,dict={}): gtk.Dialog.__init__(self,title = _('Your Custom Application'), flags = gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, ) self.dict = dict self.set_position(gtk.WIN_POS_CENTER) label_name = gtk.Label(_('Name') + ': ') label_name.set_alignment(0,0.5) label_pkgs_to_install = gtk.Label(_('Packages to install') + ': ') label_pkgs_to_install.set_alignment(0,0.5) label_add_pkg_to_list = gtk.Label(_('Add package to list') + ': ') label_add_pkg_to_list.set_alignment(0,0.5) self.entry_pkgs = entry_pkgs = gtk.Entry() if dict.has_key(get_desktop_environment()): entry_pkgs.set_text(dict[get_desktop_environment()] + ' ') label_detail = gtk.Label(_('Detail') + ': ') label_detail.set_alignment(0,0.5) label_category = gtk.Label(_('Category') + ': ') label_category.set_alignment(0,0.5) self.entry_name = entry_name = gtk.Entry() if dict.has_key('__doc__'): entry_name.set_text(dict['__doc__']) entry_name.set_max_length(50) self.entry_pkg = entry_pkg = gtk.Entry() pkg_completion = gtk.EntryCompletion() entry_pkg.set_completion(pkg_completion) if len(self.liststore_all_pkg) == 0: for pkg in BACKEND.get_existing_pkgs_set(): self.liststore_all_pkg.append([pkg]) liststore_pkgs = self.liststore_all_pkg pkg_completion.set_model(liststore_pkgs) pkg_completion.set_text_column(0) pkg_completion.set_minimum_key_length(3) entry_pkg.connect("activate",self.__pkgname_callback) button_add_pkg = stock_image_only_button(gtk.STOCK_ADD) button_add_pkg.connect("clicked",self.__add_pkg,self.entry_pkgs,entry_pkg) self.entry_detail = entry_detail = gtk.Entry() entry_detail.set_max_length(50) if dict.has_key('detail'): entry_detail.set_text(dict['detail']) button_submit = image_stock_button(gtk.STOCK_APPLY, _('Submit')) button_submit.connect('clicked', self.__submit) button_cancel = image_stock_button(gtk.STOCK_CANCEL, _('Cancel')) button_cancel.connect('clicked', self.__cancel) table = gtk.Table(5,2,False) table.attach(label_name, 0, 1, 0, 1, xoptions = gtk.FILL, yoptions = 0) table.attach(label_detail, 0, 1, 1, 2, xoptions = gtk.FILL, yoptions = 0) table.attach(entry_name, 1, 2, 0, 1, xoptions = gtk.FILL, yoptions = 0) table.attach(entry_detail, 1, 2, 1, 2, xoptions = gtk.FILL, yoptions = 0) hbox_bottom = gtk.HBox() hbox_bottom.pack_end(button_cancel, False, False, 0) hbox_bottom.pack_end(button_submit, False, False, 0) self.combo_category = combo_category = gtk.combo_box_entry_new_text() from install_remove_pane import Category index = 0 target = '' if dict.has_key('category'): target = dict['category'] for i in range(0,len(Category.all())): c = Category.all()[i] if len(target.split()) == 1: if c.category == target: index = i else: if c.category in target.split() and not c.category in ['favourite','dustbin']: index = i combo_category.append_text(c.text) combo_category.set_active(index) hbox_add_pkg = gtk.HBox() hbox_add_pkg.set_homogeneous(False) hbox_add_pkg.pack_start(entry_pkg, False, False, 0) hbox_add_pkg.pack_start(button_add_pkg, False, False, 0) table.attach(label_pkgs_to_install, 0, 1, 2, 3, xoptions = gtk.FILL, yoptions = 0) table.attach(entry_pkgs, 1, 2, 2, 3, xoptions = gtk.FILL, yoptions = 0) table.attach(label_category, 0, 1, 4, 5, xoptions = gtk.FILL, yoptions = 0) table.attach(combo_category, 1, 2, 4, 5, xoptions = gtk.FILL, yoptions = 0) table.attach(label_add_pkg_to_list, 0, 1, 3, 4, xoptions = gtk.FILL, yoptions = 0) table.attach(hbox_add_pkg, 1, 2, 3, 4, xoptions = gtk.FILL, yoptions = 0) table.set_homogeneous(False) from libsetting import ImageChooser self.icon_chooser = icon_chooser = ImageChooser('/usr/share/pixmaps/', 48, 48) icon_chooser.connect('changed',self.__choose_icon) if self.dict.has_key('appname'): pixbuf = self.dict['appobj'].logo_pixbuf else: pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(D + 'sora_icons/default_application_icon.png', 48, 48) icon_chooser.display_pixbuf(pixbuf) hbox_icon_and_table = gtk.HBox() tmp_vbox = gtk.VBox() tmp_vbox.pack_start(icon_chooser, False, False, 0) hbox_icon_and_table.set_homogeneous(False) hbox_icon_and_table.pack_start(tmp_vbox, False, False, 0) hbox_icon_and_table.pack_start(table, False, False, 0) self.vbox.pack_start(hbox_icon_and_table, False, False, 0) self.vbox.pack_end(hbox_bottom, False, False, 0) self.origin_category = self.__get_category()