コード例 #1
0
ファイル: elements.py プロジェクト: RufaelDev/ttconv
        def process_set_style_properties(self, parent_ctx: TTMLElement,
                                         xml_elem):
            '''Processes style properties on `<set>` element
      '''
            if parent_ctx.model_element is None:
                LOGGER.error("Set parent does not exist")
                return

            if not issubclass(parent_ctx.ttml_class, ContentElement):
                LOGGER.error("Set parent is not a content element")
                return

            for attr in xml_elem.attrib:
                prop = StyleProperties.BY_QNAME.get(attr)
                if prop is not None:
                    try:
                        model_prop, model_value = prop.to_model(self, xml_elem)
                        parent_ctx.model_element.add_animation_step(
                            model.DiscreteAnimationStep(
                                model_prop, self.desired_begin,
                                self.desired_end, model_value))
                        break
                    except ValueError:
                        LOGGER.error("Error reading style property: %s",
                                     prop.__name__)
コード例 #2
0
    def test_copy_to(self):
        src = model.Region("hello")

        src.set_begin(Fraction(1, 2))
        src.set_end(Fraction(1, 3))
        src.set_lang("fr")
        src.set_space(model.WhiteSpaceHandling.PRESERVE)

        src.add_animation_step(
            model.DiscreteAnimationStep(styles.StyleProperties.Color, 0, 1,
                                        styles.NamedColors.aqua.value))
        src.set_style(styles.StyleProperties.Color,
                      styles.NamedColors.green.value)

        dest = model.Region("hello")

        src.copy_to(dest)

        self.assertEqual(dest.get_begin(), src.get_begin())
        self.assertEqual(dest.get_end(), src.get_end())
        self.assertEqual(dest.get_lang(), src.get_lang())
        self.assertEqual(dest.get_space(), src.get_space())

        self.assertSequenceEqual(list(dest.iter_animation_steps()),
                                 list(src.iter_animation_steps()))

        self.assertSequenceEqual(list(dest.iter_styles()),
                                 list(src.iter_styles()))
コード例 #3
0
    def test_animation_step_init(self):

        model.DiscreteAnimationStep(styles.StyleProperties.Color, 0, 1,
                                    styles.NamedColors.aqua.value)

        with self.assertRaises(ValueError):
            model.DiscreteAnimationStep(None, 0, 1,
                                        styles.NamedColors.aqua.value)

        with self.assertRaises(ValueError):
            model.DiscreteAnimationStep(styles.StyleProperties.Color, 0, 1,
                                        None)

        with self.assertRaises(ValueError):
            model.DiscreteAnimationStep(styles.StyleProperties.Color, 0, 1,
                                        "hello")
コード例 #4
0
    def test_add_remove_animation_step(self):
        p = model.ContentElement()

        s1 = model.DiscreteAnimationStep(styles.StyleProperties.Color, 0, 1,
                                         styles.NamedColors.aqua.value)

        s2 = model.DiscreteAnimationStep(styles.StyleProperties.Color, 2, None,
                                         styles.NamedColors.black.value)

        s3 = model.DiscreteAnimationStep(styles.StyleProperties.TextAlign, 1,
                                         None, styles.TextAlignType.center)

        p.add_animation_step(s1)

        p.add_animation_step(s2)

        p.add_animation_step(s3)

        self.assertListEqual([s1, s2, s3], list(p.iter_animation_steps()))

        p.remove_animation_step(s2)

        self.assertListEqual([s1, s3], list(p.iter_animation_steps()))
コード例 #5
0
ファイル: test_isd.py プロジェクト: RufaelDev/ttconv
  def setUp(self):
    self.doc = model.ContentDocument()

    a1 = model.DiscreteAnimationStep(
      style_property=styles.StyleProperties.Color,
      begin=None,
      end=None,
      value=styles.NamedColors.red.value
    )

    a2 = model.DiscreteAnimationStep(
      style_property=styles.StyleProperties.Color,
      begin=Fraction(1),
      end=None,
      value=styles.NamedColors.green.value
    )

    a3 = model.DiscreteAnimationStep(
      style_property=styles.StyleProperties.Color,
      begin=Fraction(2),
      end=None,
      value=styles.NamedColors.blue.value
    )

    r1 = model.Region("r1", self.doc)
    self.doc.put_region(r1)

    # r2: sig times = {2, 9}

    r2 = model.Region("r2", self.doc)
    r2.set_begin(Fraction(2))
    r2.set_end(Fraction(9))
    r2.add_animation_step(a1)
    self.doc.put_region(r2)

    # b: sig times = {1, 10}

    b = model.Body(self.doc)
    b.set_begin(Fraction(1))
    b.set_end(Fraction(10))
    self.doc.set_body(b)

    # div1: offset = 1, sig times = {2, 4}

    div1 = model.Div(self.doc)
    div1.add_animation_step(a2)
    div1.set_begin(Fraction(3))
    div1.set_region(r1)
    b.push_child(div1)

    # div2: offset = 1, sig times = {10}

    div2 = model.Div(self.doc)
    div2.set_end(Fraction(12))
    div2.set_region(r2)
    b.push_child(div2)

    # p1: offset = 1, sig times = {}

    p1 = model.P(self.doc)
    div2.push_child(p1)

    # span1: offset = 1, sig times = {3}
    span1 = model.Span(self.doc)
    span1.add_animation_step(a3)
    p1.push_child(span1)

    t1 = model.Text(self.doc, "hello")
    span1.push_child(t1)