[Bf-blender-cvs] [913b71bb8be] master: VSE: Add bold and italic option for text strip

Peter Fog noreply at git.blender.org
Sat Mar 20 01:42:03 CET 2021


Commit: 913b71bb8be9b40da9c0f0cd21016c784a56dc18
Author: Peter Fog
Date:   Sat Mar 20 00:29:22 2021 +0100
Branches: master
https://developer.blender.org/rB913b71bb8be9b40da9c0f0cd21016c784a56dc18

VSE: Add bold and italic option for text strip

Bold and italic fonts can be switched quickly by presing corresponding
button.

Reviewed By: ISS

Differential Revision: https://developer.blender.org/D10542

===================================================================

M	release/scripts/startup/bl_ui/space_sequencer.py
M	source/blender/makesdna/DNA_sequence_types.h
M	source/blender/makesrna/intern/rna_sequencer.c
M	source/blender/sequencer/intern/effects.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index a4c2ed68a91..f7abbeca0b1 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -1271,7 +1271,13 @@ class SEQUENCER_PT_effect_text_style(SequencerButtonsPanel, Panel):
         layout = self.layout
         layout.use_property_split = True
         col = layout.column()
-        col.template_ID(strip, "font", open="font.open", unlink="font.unlink")
+
+        row = col.row(align=True)
+        row.use_property_decorate = False
+        row.template_ID(strip, "font", open="font.open", unlink="font.unlink")
+        row.prop(strip, "use_bold", text="", icon="BOLD")
+        row.prop(strip, "use_italic", text="", icon="ITALIC")
+
         col.prop(strip, "font_size")
         col.prop(strip, "color")
 
@@ -1294,7 +1300,6 @@ class SEQUENCER_PT_effect_text_style(SequencerButtonsPanel, Panel):
         row.prop_decorator(strip, "box_color")
 
         row = layout.row(align=True, heading="Box Margin")
-        row.use_property_decorate = False
         sub = row.row(align=True)
         sub.prop(strip, "box_margin")
         sub.active = strip.use_box and (not strip.mute)
diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h
index ef14a5c52d4..4211c913a0c 100644
--- a/source/blender/makesdna/DNA_sequence_types.h
+++ b/source/blender/makesdna/DNA_sequence_types.h
@@ -354,6 +354,8 @@ typedef struct TextVars {
 enum {
   SEQ_TEXT_SHADOW = (1 << 0),
   SEQ_TEXT_BOX = (1 << 1),
+  SEQ_TEXT_BOLD = (1 << 2),
+  SEQ_TEXT_ITALIC = (1 << 3),
 };
 
 /* TextVars.align */
diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c
index 01b083dc3c8..54ac7860108 100644
--- a/source/blender/makesrna/intern/rna_sequencer.c
+++ b/source/blender/makesrna/intern/rna_sequencer.c
@@ -2932,6 +2932,16 @@ static void rna_def_text(StructRNA *srna)
   RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_TEXT_BOX);
   RNA_def_property_ui_text(prop, "Shadow", "Display colored box behind text");
   RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_invalidate_raw_update");
+
+  prop = RNA_def_property(srna, "use_bold", PROP_BOOLEAN, PROP_NONE);
+  RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_TEXT_BOLD);
+  RNA_def_property_ui_text(prop, "Bold", "Display text as bold");
+  RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_invalidate_raw_update");
+
+  prop = RNA_def_property(srna, "use_italic", PROP_BOOLEAN, PROP_NONE);
+  RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_TEXT_ITALIC);
+  RNA_def_property_ui_text(prop, "Italic", "Display text as italic");
+  RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_invalidate_raw_update");
 }
 
 static void rna_def_color_mix(StructRNA *srna)
diff --git a/source/blender/sequencer/intern/effects.c b/source/blender/sequencer/intern/effects.c
index fc8a5c62744..017c2ec8ec5 100644
--- a/source/blender/sequencer/intern/effects.c
+++ b/source/blender/sequencer/intern/effects.c
@@ -3938,6 +3938,14 @@ static ImBuf *do_text_effect(const SeqRenderData *context,
     proxy_size_comp = SEQ_rendersize_to_scale_factor(context->preview_render_size);
   }
 
+  BLF_disable(font, BLF_ITALIC | BLF_BOLD);
+  if (data->flag & SEQ_TEXT_BOLD) { 
+    BLF_enable(font, BLF_BOLD);
+  }
+  if (data->flag & SEQ_TEXT_ITALIC) { 
+    BLF_enable(font, BLF_ITALIC);
+  }
+
   /* set before return */
   BLF_size(font, proxy_size_comp * data->text_size, 72);



More information about the Bf-blender-cvs mailing list