예제 #1
0
    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])
예제 #2
0
    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
예제 #3
0
    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