summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editor/editor_log.cpp7
-rw-r--r--scene/gui/rich_text_label.cpp7
-rw-r--r--scene/gui/rich_text_label.h2
3 files changed, 10 insertions, 6 deletions
diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp
index 858ef92502..3957f981be 100644
--- a/editor/editor_log.cpp
+++ b/editor/editor_log.cpp
@@ -122,12 +122,7 @@ void EditorLog::_process_message(const String &p_msg, MessageType p_type) {
LogMessage &previous = messages.write[messages.size() - 1];
previous.count++;
- if (collapse) {
- // Remove last line if collapsing, as it will be replace by the next added line with an updated count.
- log->remove_line(log->get_line_count() - 1);
- }
-
- _add_log_line(previous);
+ _add_log_line(previous, collapse);
} else {
// Different message to the previous one received.
LogMessage message(p_msg, p_type);
diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp
index c763ae6bd6..843e7ef6e2 100644
--- a/scene/gui/rich_text_label.cpp
+++ b/scene/gui/rich_text_label.cpp
@@ -2612,6 +2612,13 @@ void RichTextLabel::pop() {
current = current->parent;
}
+// Creates a new line without adding an ItemNewline to the previous line.
+// Useful when wanting to calling remove_line and add a new line immediately after.
+void RichTextLabel::increment_line_count() {
+ current_frame->lines.resize(current_frame->lines.size() + 1);
+ _invalidate_current_line(current_frame);
+}
+
void RichTextLabel::clear() {
main->_clear_children();
current = main;
diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h
index e3e457d1f2..afc88e070a 100644
--- a/scene/gui/rich_text_label.h
+++ b/scene/gui/rich_text_label.h
@@ -483,6 +483,8 @@ public:
void push_cell();
void pop();
+ void increment_line_count();
+
void clear();
void set_offset(int p_pixel);