Пример #1
0
 def apply_callback(self, sender):
     font = CurrentFont()
     _layer_name = self.w._layer_name.get()
     if _layer_name in font.layerOrder:
         print 'deleting layer %s...' % _layer_name
         font.removeLayer(_layer_name)
         print '...done.\n'
         font.update()
     else:
         print 'font does not have layer %s.' % _layer_name
Пример #2
0
class deleteLayerDialog(hDialog):
    """A dialog to delete a layer in a font.

    .. image:: imgs/font/delete-layer.png

    """

    # attributes

    #: The font which is currently selected.
    font = None

    #: A list of all layers in the current font.
    layers = []

    # methods

    def __init__(self):
        self.get_font()
        # window
        self.title = 'delete layers'
        self.height = self.button_height + (self.padding_y *
                                            3) + (self.text_height * 8)
        self.w = FloatingWindow((self.width * 1.5, self.height), self.title)
        x = self.padding_x
        y = self.padding_y
        self.w.layers = List((x, y, -self.padding_x, self.text_height * 8),
                             self.layers)
        y += self.padding_y + self.text_height * 8
        self.w.button_apply = SquareButton(
            (x, y, -self.padding_x, self.button_height),
            "delete",
            sizeStyle=self.size_style,
            callback=self.apply_callback)
        # bind
        self.w.bind("became key", self.update_callback)
        self.w.bind("close", self.on_close_window)
        # observers
        addObserver(self, "update_callback", "fontBecameCurrent")
        # open
        self.w.open()

    # callbacks

    def get_font(self):
        self.font = CurrentFont()
        if self.font is not None:
            self.layers = self.font.layerOrder
        else:
            self.layers = []

    def update_ui(self):
        self.layers = self.font.layerOrder
        self.w.layers.set(self.layers)

    def update_callback(self, sender):
        self.get_font()
        self.update_ui()

    def apply_callback(self, sender):
        # no font open
        if self.font is None:
            print(no_font_open)
        # delete layer
        else:
            layers_index = self.w.layers.getSelection()
            layers = [self.layers[i] for i in layers_index]
            if len(layers):
                print('deleting layers...\n')
                for layer in layers:
                    if layer in self.font.layerOrder:
                        print('\tdeleting %s...' % layer)
                        self.font.removeLayer(layer)
                self.font.update()
                print()
                print('...done.\n')
                # update UI
                self.get_font()
                self.update_ui()
            else:
                print('no layer selected.')

    def on_close_window(self, sender):
        removeObserver(self, "fontBecameCurrent")
Пример #3
0
class deleteLayerDialog(hDialog):

    '''A dialog to delete a layer in a font.

    .. image:: imgs/font/delete-layer.png

    '''

    #: The font which is currently selected.
    font = None

    #: A list of all layers in the current font.
    layers = []

    def __init__(self):
        self.get_font()
        # window
        self.title = 'layers'
        self.height = self.button_height + (self.padding_y*3) + (self.text_height*8)
        self.w = HUDFloatingWindow((self.width, self.height), self.title)
        x = self.padding_x
        y = self.padding_y
        self.w.layers = List(
                    (x, y,
                    -self.padding_x,
                    self.text_height*8),
                    self.layers)
        y += self.padding_y + self.text_height*8
        self.w.button_apply = SquareButton(
                    (x, y,
                    -self.padding_x,
                    self.button_height),
                    "delete",
                    sizeStyle=self.size_style,
                    callback=self.apply_callback)
        # bind
        self.w.bind("became key", self.update_callback)
        self.w.bind("close", self.on_close_window)
        # observers
        addObserver(self, "update_callback", "fontBecameCurrent")
        # open
        self.w.open()

    # callbacks

    def get_font(self):
        self.font = CurrentFont()
        if self.font is not None:
            self.layers = self.font.layerOrder
        else:
            self.layers = []

    def update_ui(self):
        self.layers = self.font.layerOrder
        self.w.layers.set(self.layers)

    def update_callback(self, sender):
        self.get_font()
        self.update_ui()

    def apply_callback(self, sender):
        # no font open
        if self.font is None:
            print no_font_open
        # delete layer
        else:
            layers_index = self.w.layers.getSelection()
            layers = [self.layers[i] for i in layers_index]
            if len(layers):
                print 'deleting layers...\n'
                for layer in layers:
                    if layer in self.font.layerOrder:
                        print '\tdeleting %s...' % layer
                        self.font.removeLayer(layer)
                self.font.changed()
                print
                print '...done.\n'
                # update UI
                self.get_font()
                self.update_ui()
            else:
                print 'no layer selected.'

    def on_close_window(self, sender):
        removeObserver(self, "fontBecameCurrent")
class deleteLayerDialog(hDialog):

    """A dialog to delete a layer in a font.

    .. image:: imgs/font/delete-layer.png

    """

    # attributes

    #: The font which is currently selected.
    font = None

    #: A list of all layers in the current font.
    layers = []

    # methods

    def __init__(self):
        self.get_font()
        # window
        self.title = 'layers'
        self.column_1 = 50
        self.column_2 = 140
        self.height = self.button_height + (self.padding_y * 3) + (self.text_height * 1) #+ 2
        self.w = FloatingWindow((self.width, self.height), self.title)
        x = self.padding_x
        y = self.padding_y
        # self.w.layer_name_label = TextBox(
        #             (x, y - 2,
        #             -self.padding_x,
        #             self.text_height),
        #             "name",
        #             sizeStyle=self.size_style)
        # y += self.text_height
        self.w.layers = PopUpButton(
                    (x, y,
                    -self.padding_x,
                    self.text_height),
                    self.layers,
                    sizeStyle=self.size_style)
        x = self.padding_x
        y += self.padding_y + self.text_height
        self.w.button_apply = SquareButton(
                    (x, y,
                    -self.padding_x,
                    self.button_height),
                    "delete",
                    sizeStyle=self.size_style,
                    callback=self.apply_callback)
        # bind
        self.w.bind("became key", self.update_callback)
        self.w.bind("close", self.on_close_window)
        # observers
        addObserver(self, "update_callback", "fontBecameCurrent")
        # open
        self.w.open()

    # callbacks

    def get_font(self):
        self.font = CurrentFont()
        if self.font is not None:
            self.layers = self.font.layerOrder
        else:
            self.layers = []

    def update_ui(self):
        self.w.layers.setItems(self.layers)

    def update_callback(self, sender):
        self.get_font()
        self.update_ui()

    def apply_callback(self, sender):
        # no font open
        if self.font is None:
            print no_font_open
        # delete layer
        else:
            layer_index = self.w.layers.get()
            layer_name = self.layers[layer_index]
            if layer_name in self.font.layerOrder:
                print 'deleting layer...\n'
                print '\t%s' % layer_name
                self.font.removeLayer(layer_name)
                print
                print '...done.\n'
                self.font.update()
                self.get_font()
                self.update_ui()
            else:
                print 'Font does not have layer %s.' % layer_name

    def on_close_window(self, sender):
        removeObserver(self, "fontBecameCurrent")
Пример #5
0
# [h] delete all layers

'''Delete all layers in the current font.'''

try:
    from mojo.roboFont import CurrentFont
except ImportError:
    from robofab.world import CurrentFont

f = CurrentFont()

while len(f.layerOrder) > 0:
    f.removeLayer(f.layerOrder[0])
    f.update()