Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Goudey <h.goudey@me.com>2021-02-17 08:39:58 +0300
committerHans Goudey <h.goudey@me.com>2021-02-17 08:39:58 +0300
commit47a269745ef2a6181fd139dca4d6975d6a8e1038 (patch)
tree83922ca355ff56cf7381f89c26bb0f61533b125f /source/blender/editors
parentc48360c2559acbe1cb8014ca0e81152f2febf199 (diff)
Fix T85716: "Applied Modifier:" report hides more important message
Since "Applied Modifier" was always added last, it obscured more important messages when using the shortcut to delete modifiers. The purpose of the report when using the shortcut was to make it clear that something happened. Since another report does that anyway, only display the "Applied Modifier" report if the report list length hasn't changed.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/object/object_gpencil_modifier.c16
-rw-r--r--source/blender/editors/object/object_modifier.c16
2 files changed, 24 insertions, 8 deletions
diff --git a/source/blender/editors/object/object_gpencil_modifier.c b/source/blender/editors/object/object_gpencil_modifier.c
index a869a4c2583..3995728c428 100644
--- a/source/blender/editors/object/object_gpencil_modifier.c
+++ b/source/blender/editors/object/object_gpencil_modifier.c
@@ -730,14 +730,18 @@ static int gpencil_modifier_apply_exec(bContext *C, wmOperator *op)
Object *ob = ED_object_active_context(C);
GpencilModifierData *md = gpencil_edit_modifier_property_get(op, ob, 0);
int apply_as = RNA_enum_get(op->ptr, "apply_as");
+ const bool do_report = RNA_boolean_get(op->ptr, "report");
if (md == NULL) {
return OPERATOR_CANCELLED;
}
- /* Store name temporarily for report. */
+ int reports_len;
char name[MAX_NAME];
- strcpy(name, md->name);
+ if (do_report) {
+ reports_len = BLI_listbase_count(&op->reports->list);
+ strcpy(name, md->name); /* Store name temporarily since the modifier is removed. */
+ }
if (!ED_object_gpencil_modifier_apply(bmain, op->reports, depsgraph, ob, md, apply_as)) {
return OPERATOR_CANCELLED;
@@ -746,8 +750,12 @@ static int gpencil_modifier_apply_exec(bContext *C, wmOperator *op)
DEG_id_tag_update(&ob->id, ID_RECALC_GEOMETRY);
WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
- if (RNA_boolean_get(op->ptr, "report")) {
- BKE_reportf(op->reports, RPT_INFO, "Applied modifier: %s", name);
+ if (do_report) {
+ /* Only add this report if the operator didn't cause another one. The purpose here is
+ * to alert that something happened, and the previous report will do that anyway. */
+ if (BLI_listbase_count(&op->reports->list) == reports_len) {
+ BKE_reportf(op->reports, RPT_INFO, "Applied modifier: %s", name);
+ }
}
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 7e0e52d3874..7673649c261 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -1383,14 +1383,18 @@ static int modifier_apply_exec_ex(bContext *C, wmOperator *op, int apply_as, boo
Scene *scene = CTX_data_scene(C);
Object *ob = ED_object_active_context(C);
ModifierData *md = edit_modifier_property_get(op, ob, 0);
+ const bool do_report = RNA_boolean_get(op->ptr, "report");
if (md == NULL) {
return OPERATOR_CANCELLED;
}
- /* Store name temporarily for report. */
+ int reports_len;
char name[MAX_NAME];
- strcpy(name, md->name);
+ if (do_report) {
+ reports_len = BLI_listbase_count(&op->reports->list);
+ strcpy(name, md->name); /* Store name temporarily since the modifier is removed. */
+ }
if (!ED_object_modifier_apply(
bmain, op->reports, depsgraph, scene, ob, md, apply_as, keep_modifier)) {
@@ -1401,8 +1405,12 @@ static int modifier_apply_exec_ex(bContext *C, wmOperator *op, int apply_as, boo
DEG_relations_tag_update(bmain);
WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
- if (RNA_boolean_get(op->ptr, "report")) {
- BKE_reportf(op->reports, RPT_INFO, "Applied modifier: %s", name);
+ if (do_report) {
+ /* Only add this report if the operator didn't cause another one. The purpose here is
+ * to alert that something happened, and the previous report will do that anyway. */
+ if (BLI_listbase_count(&op->reports->list) == reports_len) {
+ BKE_reportf(op->reports, RPT_INFO, "Applied modifier: %s", name);
+ }
}
return OPERATOR_FINISHED;