Ver código fonte

Merge pull request #5702 from Paulb23/zoom_shortcuts

Added code editor zoom shortcuts
Rémi Verschelde 9 anos atrás
pai
commit
4c4ab140b4
2 arquivos alterados com 39 adições e 21 exclusões
  1. 36 21
      tools/editor/code_editor.cpp
  2. 3 0
      tools/editor/code_editor.h

+ 36 - 21
tools/editor/code_editor.cpp

@@ -985,36 +985,47 @@ void CodeTextEditor::_text_editor_input_event(const InputEvent& p_event) {
 		if (mb.pressed && mb.mod.command) {
 
 			if (mb.button_index==BUTTON_WHEEL_UP) {
-
-				font_resize_val+=1;
-
-				if (font_resize_timer->get_time_left()==0)
-					font_resize_timer->start();
-
+				_zoom_in();
 			} else if (mb.button_index==BUTTON_WHEEL_DOWN) {
-
-				font_resize_val-=1;
-
-				if (font_resize_timer->get_time_left()==0)
-					font_resize_timer->start();
+				_zoom_out();
 			}
 		}
 	} else if (p_event.type==InputEvent::KEY) {
 
-		const InputEventKey& k=p_event.key;
+		if (p_event.key.pressed) {
+			if (ED_IS_SHORTCUT("script_editor/zoom_in", p_event)) {
+				_zoom_in();
+			}
+			if (ED_IS_SHORTCUT("script_editor/zoom_out", p_event)) {
+				_zoom_out();
+			}
+			if (ED_IS_SHORTCUT("script_editor/reset_zoom", p_event)) {
+				_reset_zoom();
+			}
+		}
+	}
+}
 
-		if (k.pressed && k.mod.command) {
+void CodeTextEditor::_zoom_in() {
+	font_resize_val+=1;
 
-			if (k.scancode==KEY_0) { // reset source font size to default
+	if (font_resize_timer->get_time_left()==0)
+		font_resize_timer->start();
+}
 
-				Ref<DynamicFont> font = text_editor->get_font("font");
+void CodeTextEditor::_zoom_out() {
+	font_resize_val-=1;
 
-				if (font.is_valid()) {
-					EditorSettings::get_singleton()->set("global/source_font_size",14);
-					font->set_size(14);
-				}
-			}
-		}
+	if (font_resize_timer->get_time_left()==0)
+		font_resize_timer->start();
+}
+
+void CodeTextEditor::_reset_zoom() {
+	Ref<DynamicFont> font = text_editor->get_font("font"); // reset source font size to default
+
+	if (font.is_valid()) {
+		EditorSettings::get_singleton()->set("global/source_font_size",14);
+		font->set_size(14);
 	}
 }
 
@@ -1150,6 +1161,10 @@ void CodeTextEditor::_bind_methods() {
 
 CodeTextEditor::CodeTextEditor() {
 
+	ED_SHORTCUT("script_editor/zoom_in", TTR("Zoom In"), KEY_MASK_CMD|KEY_EQUAL);
+	ED_SHORTCUT("script_editor/zoom_out", TTR("Zoom Out"), KEY_MASK_CMD|KEY_MINUS);
+	ED_SHORTCUT("script_editor/reset_zoom", TTR("Reset Zoom"), KEY_MASK_CMD|KEY_0);
+
 	find_replace_bar = memnew( FindReplaceBar );
 	add_child(find_replace_bar);
 	find_replace_bar->set_h_size_flags(SIZE_EXPAND_FILL);

+ 3 - 0
tools/editor/code_editor.h

@@ -214,6 +214,9 @@ class CodeTextEditor : public VBoxContainer {
 	void _font_resize_timeout();
 
 	void _text_editor_input_event(const InputEvent& p_event);
+	void _zoom_in();
+	void _zoom_out();
+	void _reset_zoom();
 
 protected: