fixes 27543, adds a copy button for the editor log

This commit is contained in:
kbake 2019-04-14 04:55:31 -04:00
parent dd2cd06165
commit aa4e27084f
2 changed files with 20 additions and 0 deletions

View File

@ -78,10 +78,19 @@ void EditorLog::_clear_request() {
tool_button->set_icon(Ref<Texture>()); tool_button->set_icon(Ref<Texture>());
} }
void EditorLog::_copy_request() {
log->selection_copy();
}
void EditorLog::clear() { void EditorLog::clear() {
_clear_request(); _clear_request();
} }
void EditorLog::copy() {
_copy_request();
}
void EditorLog::add_message(const String &p_msg, MessageType p_type) { void EditorLog::add_message(const String &p_msg, MessageType p_type) {
log->add_newline(); log->add_newline();
@ -125,7 +134,9 @@ void EditorLog::_undo_redo_cbk(void *p_self, const String &p_name) {
void EditorLog::_bind_methods() { void EditorLog::_bind_methods() {
ClassDB::bind_method(D_METHOD("_clear_request"), &EditorLog::_clear_request); ClassDB::bind_method(D_METHOD("_clear_request"), &EditorLog::_clear_request);
ClassDB::bind_method(D_METHOD("_copy_request"), &EditorLog::_copy_request);
ADD_SIGNAL(MethodInfo("clear_request")); ADD_SIGNAL(MethodInfo("clear_request"));
ADD_SIGNAL(MethodInfo("copy_request"));
} }
EditorLog::EditorLog() { EditorLog::EditorLog() {
@ -139,6 +150,12 @@ EditorLog::EditorLog() {
title->set_h_size_flags(SIZE_EXPAND_FILL); title->set_h_size_flags(SIZE_EXPAND_FILL);
hb->add_child(title); hb->add_child(title);
copybutton = memnew(Button);
hb->add_child(copybutton);
copybutton->set_text(TTR("Copy"));
copybutton->set_shortcut(ED_SHORTCUT("editor/copy_output", TTR("Copy Selection"), KEY_MASK_CMD | KEY_C));
copybutton->connect("pressed", this, "_copy_request");
clearbutton = memnew(Button); clearbutton = memnew(Button);
hb->add_child(clearbutton); hb->add_child(clearbutton);
clearbutton->set_text(TTR("Clear")); clearbutton->set_text(TTR("Clear"));

View File

@ -48,6 +48,7 @@ class EditorLog : public VBoxContainer {
GDCLASS(EditorLog, VBoxContainer); GDCLASS(EditorLog, VBoxContainer);
Button *clearbutton; Button *clearbutton;
Button *copybutton;
Label *title; Label *title;
RichTextLabel *log; RichTextLabel *log;
HBoxContainer *title_hb; HBoxContainer *title_hb;
@ -62,6 +63,7 @@ class EditorLog : public VBoxContainer {
//void _dragged(const Point2& p_ofs); //void _dragged(const Point2& p_ofs);
void _clear_request(); void _clear_request();
void _copy_request();
static void _undo_redo_cbk(void *p_self, const String &p_name); static void _undo_redo_cbk(void *p_self, const String &p_name);
protected: protected:
@ -80,6 +82,7 @@ public:
void deinit(); void deinit();
void clear(); void clear();
void copy();
EditorLog(); EditorLog();
~EditorLog(); ~EditorLog();
}; };