diff --git a/release/datafiles/icons_svg/mod_brightness_contrast.svg b/release/datafiles/icons_svg/mod_brightness_contrast.svg
new file mode 100644
index 00000000000..8ef9da7334c
--- /dev/null
+++ b/release/datafiles/icons_svg/mod_brightness_contrast.svg
@@ -0,0 +1,21 @@
+
+
diff --git a/release/datafiles/icons_svg/mod_color_balance.svg b/release/datafiles/icons_svg/mod_color_balance.svg
new file mode 100644
index 00000000000..155fb5599ad
--- /dev/null
+++ b/release/datafiles/icons_svg/mod_color_balance.svg
@@ -0,0 +1,28 @@
+
+
diff --git a/release/datafiles/icons_svg/mod_curves.svg b/release/datafiles/icons_svg/mod_curves.svg
new file mode 100644
index 00000000000..821fb20cebe
--- /dev/null
+++ b/release/datafiles/icons_svg/mod_curves.svg
@@ -0,0 +1,33 @@
+
+
diff --git a/release/datafiles/icons_svg/mod_hue_correct.svg b/release/datafiles/icons_svg/mod_hue_correct.svg
new file mode 100644
index 00000000000..bf6e590929b
--- /dev/null
+++ b/release/datafiles/icons_svg/mod_hue_correct.svg
@@ -0,0 +1,46 @@
+
+
diff --git a/release/datafiles/icons_svg/mod_tonemap.svg b/release/datafiles/icons_svg/mod_tonemap.svg
new file mode 100644
index 00000000000..02f87800d9f
--- /dev/null
+++ b/release/datafiles/icons_svg/mod_tonemap.svg
@@ -0,0 +1,31 @@
+
+
diff --git a/release/datafiles/icons_svg/mod_white_balance.svg b/release/datafiles/icons_svg/mod_white_balance.svg
new file mode 100644
index 00000000000..2096186bf28
--- /dev/null
+++ b/release/datafiles/icons_svg/mod_white_balance.svg
@@ -0,0 +1,23 @@
+
+
diff --git a/scripts/startup/bl_ui/space_sequencer.py b/scripts/startup/bl_ui/space_sequencer.py
index dcedeac2d3f..183c09c5e0e 100644
--- a/scripts/startup/bl_ui/space_sequencer.py
+++ b/scripts/startup/bl_ui/space_sequencer.py
@@ -1546,6 +1546,10 @@ class SEQUENCER_MT_modifier_add(Menu):
bl_label = "Add Modifier"
bl_options = {'SEARCH_ON_KEY_PRESS'}
+ MODIFIER_TYPES_TO_ICONS = {
+ enum_it.identifier: enum_it.icon
+ for enum_it in bpy.types.StripModifier.bl_rna.properties["type"].enum_items_static
+ }
MODIFIER_TYPES_TO_LABELS = {
enum_it.identifier: enum_it.name
for enum_it in bpy.types.StripModifier.bl_rna.properties["type"].enum_items_static
@@ -1560,7 +1564,7 @@ class SEQUENCER_MT_modifier_add(Menu):
# Although these are operators, the label actually comes from an (enum) property,
# so the property's translation context must be used here.
text_ctxt=cls.MODIFIER_TYPES_I18N_CONTEXT,
- icon='NONE',
+ icon=cls.MODIFIER_TYPES_TO_ICONS[mod_type],
).type = mod_type
def draw(self, context):
diff --git a/source/blender/editors/datafiles/CMakeLists.txt b/source/blender/editors/datafiles/CMakeLists.txt
index c15ec57bddd..f4456b77b76 100644
--- a/source/blender/editors/datafiles/CMakeLists.txt
+++ b/source/blender/editors/datafiles/CMakeLists.txt
@@ -566,10 +566,13 @@ if(WITH_BLENDER)
mod_array
mod_bevel
mod_boolean
+ mod_brightness_contrast
mod_build
mod_cast
mod_cloth
+ mod_color_balance
mod_curve
+ mod_curves
mod_dash
mod_data_transfer
mod_decim
@@ -580,6 +583,7 @@ if(WITH_BLENDER)
mod_explode
mod_fluid
mod_fluidsim
+ mod_hue_correct
mod_hue_saturation
mod_instance
mod_lattice
@@ -611,11 +615,13 @@ if(WITH_BLENDER)
mod_thickness
mod_time
mod_tint
+ mod_tonemap
mod_triangulate
mod_uvproject
mod_vertex_weight
mod_warp
mod_wave
+ mod_white_balance
mod_wireframe
monkey
mouse_lmb
diff --git a/source/blender/editors/include/UI_icons.hh b/source/blender/editors/include/UI_icons.hh
index 69f08bd8aab..20cd08bc25e 100644
--- a/source/blender/editors/include/UI_icons.hh
+++ b/source/blender/editors/include/UI_icons.hh
@@ -807,6 +807,14 @@ DEF_ICON(SEQ_SPLITVIEW)
DEF_ICON(SEQ_STRIP_DUPLICATE)
DEF_ICON(SEQ_STRIP_META)
+/* Modifiers. */
+DEF_ICON_MODIFIER(MOD_BRIGHTNESS_CONTRAST)
+DEF_ICON_MODIFIER(MOD_COLOR_BALANCE)
+DEF_ICON_MODIFIER(MOD_CURVES)
+DEF_ICON_MODIFIER(MOD_HUE_CORRECT)
+DEF_ICON_MODIFIER(MOD_TONEMAP)
+DEF_ICON_MODIFIER(MOD_WHITE_BALANCE)
+
/* IMAGE EDITOR */
DEF_ICON(IMAGE_ALPHA)
DEF_ICON(IMAGE_RGB_ALPHA)
diff --git a/source/blender/makesrna/intern/rna_sequencer.cc b/source/blender/makesrna/intern/rna_sequencer.cc
index f3a83bd30d6..142aa511e81 100644
--- a/source/blender/makesrna/intern/rna_sequencer.cc
+++ b/source/blender/makesrna/intern/rna_sequencer.cc
@@ -42,13 +42,13 @@ struct EffectInfo {
/* These wrap strangely, disable formatting for fixed indentation and wrapping. */
/* clang-format off */
#define RNA_ENUM_SEQUENCER_VIDEO_MODIFIER_TYPE_ITEMS \
- {eSeqModifierType_BrightContrast, "BRIGHT_CONTRAST", ICON_NONE, "Brightness/Contrast", ""}, \
- {eSeqModifierType_ColorBalance, "COLOR_BALANCE", ICON_NONE, "Color Balance", ""}, \
- {eSeqModifierType_Curves, "CURVES", ICON_NONE, "Curves", ""}, \
- {eSeqModifierType_HueCorrect, "HUE_CORRECT", ICON_NONE, "Hue Correct", ""}, \
- {eSeqModifierType_Mask, "MASK", ICON_NONE, "Mask", ""}, \
- {eSeqModifierType_Tonemap, "TONEMAP", ICON_NONE, "Tone Map", ""}, \
- {eSeqModifierType_WhiteBalance, "WHITE_BALANCE", ICON_NONE, "White Balance", ""}
+ {eSeqModifierType_BrightContrast, "BRIGHT_CONTRAST", ICON_MOD_BRIGHTNESS_CONTRAST, "Brightness/Contrast", ""}, \
+ {eSeqModifierType_ColorBalance, "COLOR_BALANCE", ICON_MOD_COLOR_BALANCE, "Color Balance", ""}, \
+ {eSeqModifierType_Curves, "CURVES", ICON_MOD_CURVES, "Curves", ""}, \
+ {eSeqModifierType_HueCorrect, "HUE_CORRECT", ICON_MOD_HUE_CORRECT, "Hue Correct", ""}, \
+ {eSeqModifierType_Mask, "MASK", ICON_MOD_MASK, "Mask", ""}, \
+ {eSeqModifierType_Tonemap, "TONEMAP", ICON_MOD_TONEMAP, "Tone Map", ""}, \
+ {eSeqModifierType_WhiteBalance, "WHITE_BALANCE", ICON_MOD_WHITE_BALANCE, "White Balance", ""}
#define RNA_ENUM_SEQUENCER_AUDIO_MODIFIER_TYPE_ITEMS \
{eSeqModifierType_SoundEqualizer, "SOUND_EQUALIZER", ICON_NONE, "Sound Equalizer", ""}
@@ -3887,6 +3887,7 @@ static void rna_def_colorbalance_modifier(BlenderRNA *brna)
PropertyRNA *prop;
srna = RNA_def_struct(brna, "ColorBalanceModifier", "StripModifier");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_COLOR_BALANCE);
RNA_def_struct_sdna(srna, "ColorBalanceModifierData");
RNA_def_struct_ui_text(
srna, "ColorBalanceModifier", "Color balance modifier for sequence strip");
@@ -3911,6 +3912,7 @@ static void rna_def_whitebalance_modifier(BlenderRNA *brna)
srna = RNA_def_struct(brna, "WhiteBalanceModifier", "StripModifier");
RNA_def_struct_sdna(srna, "WhiteBalanceModifierData");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_WHITE_BALANCE);
RNA_def_struct_ui_text(
srna, "WhiteBalanceModifier", "White balance modifier for sequence strip");
@@ -3930,6 +3932,7 @@ static void rna_def_curves_modifier(BlenderRNA *brna)
srna = RNA_def_struct(brna, "CurvesModifier", "StripModifier");
RNA_def_struct_sdna(srna, "CurvesModifierData");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_CURVES);
RNA_def_struct_ui_text(srna, "CurvesModifier", "RGB curves modifier for sequence strip");
prop = RNA_def_property(srna, "curve_mapping", PROP_POINTER, PROP_NONE);
@@ -3948,6 +3951,7 @@ static void rna_def_hue_modifier(BlenderRNA *brna)
srna = RNA_def_struct(brna, "HueCorrectModifier", "StripModifier");
RNA_def_struct_sdna(srna, "HueCorrectModifierData");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_HUE_CORRECT);
RNA_def_struct_ui_text(srna, "HueCorrectModifier", "Hue correction modifier for sequence strip");
prop = RNA_def_property(srna, "curve_mapping", PROP_POINTER, PROP_NONE);
@@ -3963,6 +3967,7 @@ static void rna_def_mask_modifier(BlenderRNA *brna)
{
StructRNA *srna;
srna = RNA_def_struct(brna, "MaskStripModifier", "StripModifier");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_MASK);
RNA_def_struct_ui_text(srna, "Mask Modifier", "Mask modifier for sequence strip");
/* Mask properties are part of #rna_def_modifier. */
@@ -3974,6 +3979,7 @@ static void rna_def_brightcontrast_modifier(BlenderRNA *brna)
PropertyRNA *prop;
srna = RNA_def_struct(brna, "BrightContrastModifier", "StripModifier");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_BRIGHTNESS_CONTRAST);
RNA_def_struct_sdna(srna, "BrightContrastModifierData");
RNA_def_struct_ui_text(
srna, "BrightContrastModifier", "Bright/contrast modifier data for sequence strip");
@@ -4006,6 +4012,7 @@ static void rna_def_tonemap_modifier(BlenderRNA *brna)
srna = RNA_def_struct(brna, "SequencerTonemapModifierData", "StripModifier");
RNA_def_struct_sdna(srna, "SequencerTonemapModifierData");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_TONEMAP);
RNA_def_struct_ui_text(srna, "SequencerTonemapModifierData", "Tone mapping modifier");
prop = RNA_def_property(srna, "tonemap_type", PROP_ENUM, PROP_NONE);