def render_combobox(self, lang, alias): if self.fontslist.has_key(lang) == False: self.fontslist[lang] = {} if self.fontslist[lang].has_key(alias) == False: self.fontslist[lang][alias] = Easyfc.get_fonts_list(lang, alias) self.lists[alias].clear() self.lists[alias].append([alias]) for f in self.fontslist[lang][alias]: self.lists[alias].append([unicode(f, "utf8")]) fn = None for a in self.config.get_aliases(lang): if a.get_name() == alias: fn = a.get_font() break family = alias if fn != None: model = self.combobox[alias].get_model() iter = model.get_iter_first() while iter != None: f = model.get(iter, 0)[0] if f == unicode(fn, "utf8"): self.combobox[alias].set_active_iter(iter) family = f break iter = model.iter_next(iter) else: self.combobox[alias].set_active(0) self.render_label(self.combobox[alias])
def __init__(self, config, builder, parent): self.__initialized = False self.config = config self.parent_window = parent self.remove_button = builder.get_object('toolbutton-remove-alias-lang') self.pages = builder.get_object('notebook-aliases-pages') self.selector = builder.get_object('treeview-selection') self.view = builder.get_object('treeview-alias-lang-list') self.view.append_column(Gtk.TreeViewColumn(None, Gtk.CellRendererText(), text=0)) self.view_list = builder.get_object('alias-lang-list') self.filter = builder.get_object('checkbutton-filter') self.localized_name = builder.get_object('checkbutton-localized-name') self.classification_filter = builder.get_object('checkbutton-filter') # check if current icon theme supports the symbolic icons add_icon = builder.get_object('toolbutton-add-alias-lang') add_icon.set_icon_name(FontsTweakUtil.check_symbolic(add_icon.get_icon_name())) del_icon = builder.get_object('toolbutton-remove-alias-lang') del_icon.set_icon_name(FontsTweakUtil.check_symbolic(del_icon.get_icon_name())) try: Easyfc.version() if len(Easyfc.Font.get_list('en', 'sans-serif', False)) == 0: raise AttributeError except AttributeError: self.localized_name.set_active(True) self.localized_name.set_sensitive(False) self.comboboxes = {} self.labels = {} self.lists = {} self.fonts = {} for f in self.alias_names: self.comboboxes[f] = builder.get_object('combobox-' + f) self.lists[f] = builder.get_object(f + '-fonts-list') self.labels[f] = builder.get_object('label-sample-' + f) self.listobj = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING) self.langlist = FontsTweakUtil.get_language_list(True) for l in self.langlist.keys(): iter = self.listobj.append() self.listobj.set_value(iter, 0, l) self.listobj.set_value(iter, 1, self.langlist[l]) chooser_builder = FontsTweakUtil.create_builder('chooser.ui') chooser_builder.connect_signals(ChooserUI(chooser_builder, self.listobj, self.on_treemodel_filter)) self.chooser = chooser_builder.get_object('chooser-dialog') self.chooser.set_transient_for(self.parent_window) self.chooser_view = chooser_builder.get_object('treeview') self.chooser_selector = chooser_builder.get_object('treeview-selection') self.chooser_view.append_column(Gtk.TreeViewColumn(None, Gtk.CellRendererText(), text=1)) for l in self.config.get_language_list(): if not self.langlist.has_key(l): print "%s is an unknown language tag. ignoring." % l continue desc = self.langlist[l] self.add_language(desc, l) for a in self.config.get_aliases(l): an = a.get_name() self.__render_combobox(l, an) self.on_treeview_selection_changed(self.selector) self.__initialized = True
def __init__(self): self.__initialized = False builder = Gtk.Builder() path = os.path.dirname(os.path.realpath(__file__)) uifile = os.path.join(path, '..', 'data', 'fontstools.ui') if not os.path.isfile(uifile): # need to polish it with the better way uifile = "/usr/share/fonts-tweak-tool/fontstools.ui" builder.add_from_file(uifile) self.window = builder.get_object("dialog1") self.window.connect("destroy", Gtk.main_quit) self.window.set_title("fonts-tweak-tool") self.window.set_size_request(640, 480) self.scrollwindow = builder.get_object("scrolledwindow1") self.scrollwindow.set_min_content_width(200) self.lang_view = builder.get_object("treeview1") self.lang_list = builder.get_object("lang_list") column = Gtk.TreeViewColumn(None, Gtk.CellRendererText(), text=0) self.lang_view.append_column(column) self.note_book = builder.get_object("notebook1") self.note_book.set_current_page(1) self.fontslist = {} self.combobox = {} self.combobox['sans-serif'] = builder.get_object("sans_combobox") self.combobox['serif'] = builder.get_object("serif_combobox") self.combobox['monospace'] = builder.get_object("monospace_combobox") self.combobox['cursive'] = builder.get_object("cursive_combobox") self.combobox['fantasy'] = builder.get_object("fantasy_combobox") self.label = {} self.label['sans-serif'] = builder.get_object("sans_label") self.label['serif'] = builder.get_object("serif_label") self.label['monospace'] = builder.get_object("monospace_label") self.label['cursive'] = builder.get_object("cursive_label") self.label['fantasy'] = builder.get_object("fantasy_label") for f in alias_names: renderer_text = Gtk.CellRendererText() self.combobox[f].pack_start(renderer_text, True) self.combobox[f].add_attribute(renderer_text, "text", 0) self.combobox[f].connect('changed', self.fontChanged) self.lists = {} self.lists['sans-serif'] = builder.get_object("sans_fonts_list") self.lists['serif'] = builder.get_object("serif_fonts_list") self.lists['monospace'] = builder.get_object("monospace_fonts_list") self.lists['cursive'] = builder.get_object("cursive_fonts_list") self.lists['fantasy'] = builder.get_object("fantasy_fonts_list") self.close_button = builder.get_object("button2") self.close_button.connect("clicked", self.closeClicked) self.addlang_button = builder.get_object("add-lang") self.addlang_button.connect("clicked", self.addlangClicked) self.removelang_button = builder.get_object("remove-lang") self.removelang_button.connect("clicked", self.removelangClicked) self.removelang_button.set_sensitive(False) self.apply_button = builder.get_object("button1") self.apply_button.connect("clicked", self.applyClicked) selection = self.lang_view.get_selection() selection.connect("changed", self.selectionChanged) self.languages = LangList(self.window) self.data = {} Easyfc.init() self.config = Easyfc.Config() self.config.set_name("fontstweak") try: self.config.load() except gi._glib.GError, e: if e.domain != 'ezfc-error-quark' or e.code != 7: raise