Merge pull request #52082 from williamd67/fix-custom-effects-dropdown-menu

RichTextLabel returns member (Array) for custom effects  for Editor
This commit is contained in:
Max Hilbrunner
2021-09-07 21:52:05 +02:00
committed by GitHub
2 changed files with 11 additions and 19 deletions

View File

@ -3946,24 +3946,15 @@ float RichTextLabel::get_percent_visible() const {
return percent_visible; return percent_visible;
} }
void RichTextLabel::set_effects(const Vector<Variant> &effects) { void RichTextLabel::set_effects(Array p_effects) {
custom_effects.clear(); custom_effects = p_effects;
for (int i = 0; i < effects.size(); i++) {
Ref<RichTextEffect> effect = Ref<RichTextEffect>(effects[i]);
custom_effects.push_back(effect);
}
if ((bbcode != "") && use_bbcode) { if ((bbcode != "") && use_bbcode) {
parse_bbcode(bbcode); parse_bbcode(bbcode);
} }
} }
Vector<Variant> RichTextLabel::get_effects() { Array RichTextLabel::get_effects() {
Vector<Variant> r; return custom_effects;
for (int i = 0; i < custom_effects.size(); i++) {
r.push_back(custom_effects[i]);
}
return r;
} }
void RichTextLabel::install_effect(const Variant effect) { void RichTextLabel::install_effect(const Variant effect) {
@ -4279,12 +4270,13 @@ void RichTextLabel::_draw_fbg_boxes(RID p_ci, RID p_rid, Vector2 line_off, Item
Ref<RichTextEffect> RichTextLabel::_get_custom_effect_by_code(String p_bbcode_identifier) { Ref<RichTextEffect> RichTextLabel::_get_custom_effect_by_code(String p_bbcode_identifier) {
for (int i = 0; i < custom_effects.size(); i++) { for (int i = 0; i < custom_effects.size(); i++) {
if (!custom_effects[i].is_valid()) { Ref<RichTextEffect> effect = custom_effects[i];
if (!effect.is_valid()) {
continue; continue;
} }
if (custom_effects[i]->get_bbcode() == p_bbcode_identifier) { if (effect->get_bbcode() == p_bbcode_identifier) {
return custom_effects[i]; return effect;
} }
} }

View File

@ -363,7 +363,7 @@ private:
ItemMeta *meta_hovering = nullptr; ItemMeta *meta_hovering = nullptr;
Variant current_meta; Variant current_meta;
Vector<Ref<RichTextEffect>> custom_effects; Array custom_effects;
void _invalidate_current_line(ItemFrame *p_frame); void _invalidate_current_line(ItemFrame *p_frame);
void _validate_line_caches(ItemFrame *p_frame); void _validate_line_caches(ItemFrame *p_frame);
@ -577,8 +577,8 @@ public:
void set_percent_visible(float p_percent); void set_percent_visible(float p_percent);
float get_percent_visible() const; float get_percent_visible() const;
void set_effects(const Vector<Variant> &effects); void set_effects(Array p_effects);
Vector<Variant> get_effects(); Array get_effects();
void install_effect(const Variant effect); void install_effect(const Variant effect);