summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Marques <george@gmarqu.es>2017-11-14 20:02:31 -0200
committerGeorge Marques <george@gmarqu.es>2017-11-16 21:57:02 -0200
commitb96ee28acd80230ee56000fad2a3ca15e461d5e2 (patch)
treedf273a9f53e1738eaca97a904895e96296d6d140
parent1d12470a78d31a054aefc7f7c9a863db24b09986 (diff)
Add a print handler for the editor output panel
-rw-r--r--editor/editor_node.cpp10
-rw-r--r--editor/editor_node.h4
2 files changed, 14 insertions, 0 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index b3a8490fe9..777aedefd2 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -4552,6 +4552,11 @@ static Node *_resource_get_edited_scene() {
return EditorNode::get_singleton()->get_edited_scene();
}
+void EditorNode::_print_handler(void *p_this, const String &p_string, bool p_error) {
+ EditorNode *en = (EditorNode *)p_this;
+ en->log->add_message(p_string, p_error);
+}
+
EditorNode::EditorNode() {
Resource::_get_local_scene_func = _resource_get_edited_scene;
@@ -5652,6 +5657,10 @@ EditorNode::EditorNode() {
_dim_timer->connect("timeout", this, "_dim_timeout");
add_child(_dim_timer);
+ print_handler.printfunc = _print_handler;
+ print_handler.userdata = this;
+ add_print_handler(&print_handler);
+
ED_SHORTCUT("editor/editor_2d", TTR("Open 2D Editor"), KEY_F1);
ED_SHORTCUT("editor/editor_3d", TTR("Open 3D Editor"), KEY_F2);
ED_SHORTCUT("editor/editor_script", TTR("Open Script Editor"), KEY_F3); //hack neded for script editor F3 search to work :) Assign like this or don't use F3
@@ -5663,6 +5672,7 @@ EditorNode::EditorNode() {
EditorNode::~EditorNode() {
+ remove_print_handler(&print_handler);
memdelete(EditorHelp::get_doc_data());
memdelete(editor_selection);
memdelete(editor_plugins_over);
diff --git a/editor/editor_node.h b/editor/editor_node.h
index 81ff886228..54cb414835 100644
--- a/editor/editor_node.h
+++ b/editor/editor_node.h
@@ -30,6 +30,7 @@
#ifndef EDITOR_NODE_H
#define EDITOR_NODE_H
+#include "core/print_string.h"
#include "editor/connections_dialog.h"
#include "editor/create_dialog.h"
#include "editor/editor_about.h"
@@ -610,6 +611,9 @@ private:
Vector<Ref<EditorResourceConversionPlugin> > resource_conversion_plugins;
+ PrintHandlerList print_handler;
+ static void _print_handler(void *p_this, const String &p_string, bool p_error);
+
protected:
void _notification(int p_what);
static void _bind_methods();