Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #MenuTitle: Compare SetsFranco
- # -*- coding: utf-8 -*-
- __doc__="""
- Shows diffrences between glyph sets and allows to add glyphs to fonts.
- """
- from GlyphsApp import *
- from vanilla import *
- class ListDemo(object):
- font1 = Glyphs.fonts[0]
- font2 = Glyphs.fonts[1]
- masterName1 = font1.masters[0].name
- masterName2 = font2.masters[0].name
- # acá están como atributos del objeto
- lista1 = []
- lista2 = []
- def __init__(self):
- self.createLists()
- #User interface elements
- self.w = Window((320, 300))
- self.w.textBox = TextBox((10, 10, -10, 34), "Missing on \n" + font2.familyName + " " + masterName2)
- self.w.myList = List((10, 55, 140, -40), self.lista1)
- self.w.button = Button((10, -30, 140, 20), "Add to font",
- callback=self.button1Callback)
- self.w.textBox2 = TextBox((170, 10, -10, 34), "Missing on \n" + font1.familyName + " " + masterName1)
- self.w.myList2 = List((170, 55, 140, -40), self.lista2)
- self.w.button2 = Button((170, -30, 140, 20), "Add to font",callback=self.button2Callback1)
- self.w.open()
- #Respuestas de los botones
- def button1Callback(self, sender):
- seleccion = self.w.myList.getSelection()
- for i in seleccion:
- name = self.w.myList[i]
- font2.glyphs.append(GSGlyph(name))
- self.createLists()
- print self.lista1
- print self.lista2
- for layer in font2.glyphs[name].layers:
- layer.makeComponents()
- def button2Callback1(self, sender):
- #Variable que recoge la Lista de la selección hecha.
- seleccion = self.w.myList2.getSelection()
- #iteracion sobre la lista para vincularla con su nombre de glifo
- for i in seleccion:
- name = self.w.myList2[i]
- #Agrega el elemento de la lista (glifo) a la fuente
- font1.glyphs.append(GSGlyph(name))
- self.createLists()
- print self.lista1
- print self.lista2
- #funcion de Glyphs para crear componentes
- for layer in font1.glyphs[name].layers:
- layer.makeComponents()
- def createLists(self):
- for a in font1.glyphs:
- b = str(a).split('"')
- self.lista1.append(b[1]) #A, B, C, D, etc.
- for a in font2.glyphs:
- b = str(a).split('"')
- self.lista2.append(b[1])
- #Hago sets de las listas
- font1Set = set(self.lista1)
- font2Set = set(self.lista2)
- #Hace sets con las difrencias
- OneDiff = font1Set.difference(font2Set)
- TwoDiff = font2Set.difference(font1Set)
- #Transforma los sets en listas de nuevo
- self.lista1 = list(OneDiff)
- self.lista2 = list(TwoDiff)
- Glyphs.clearLog()
- Glyphs.showMacroWindow()
- ListDemo()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement