diff options
Diffstat (limited to 'editor/plugins')
| -rw-r--r-- | editor/plugins/audio_stream_editor_plugin.cpp | 17 | ||||
| -rw-r--r-- | editor/plugins/canvas_item_editor_plugin.cpp | 2 | ||||
| -rw-r--r-- | editor/plugins/editor_preview_plugins.cpp | 52 | ||||
| -rw-r--r-- | editor/plugins/tile_map_editor_plugin.cpp | 12 | 
4 files changed, 54 insertions, 29 deletions
| diff --git a/editor/plugins/audio_stream_editor_plugin.cpp b/editor/plugins/audio_stream_editor_plugin.cpp index 3553450672..3b54b30b54 100644 --- a/editor/plugins/audio_stream_editor_plugin.cpp +++ b/editor/plugins/audio_stream_editor_plugin.cpp @@ -32,6 +32,7 @@  #include "core/config/project_settings.h"  #include "core/io/resource_loader.h" +#include "core/os/keyboard.h"  #include "editor/audio_stream_preview.h"  #include "editor/editor_scale.h"  #include "editor/editor_settings.h" @@ -144,23 +145,26 @@ void AudioStreamEditor::_draw_indicator() {  	Rect2 rect = _preview->get_rect();  	float len = stream->get_length();  	float ofs_x = _current / len * rect.size.width; -	_indicator->draw_line(Point2(ofs_x, 0), Point2(ofs_x, rect.size.height), get_theme_color("accent_color", "Editor"), 1); +	const Color color = get_theme_color("accent_color", "Editor"); +	_indicator->draw_line(Point2(ofs_x, 0), Point2(ofs_x, rect.size.height), color, Math::round(2 * EDSCALE)); +	_indicator->draw_texture( +			get_theme_icon("TimelineIndicator", "EditorIcons"), +			Point2(ofs_x - get_theme_icon("TimelineIndicator", "EditorIcons")->get_width() * 0.5, 0), +			color);  	_current_label->set_text(String::num(_current, 2).pad_decimals(2) + " /");  }  void AudioStreamEditor::_on_input_indicator(Ref<InputEvent> p_event) { -	Ref<InputEventMouseButton> mb = p_event; - -	if (mb.is_valid()) { +	const Ref<InputEventMouseButton> mb = p_event; +	if (mb.is_valid() && mb->get_button_index() == MOUSE_BUTTON_LEFT) {  		if (mb->is_pressed()) {  			_seek_to(mb->get_position().x);  		}  		_dragging = mb->is_pressed();  	} -	Ref<InputEventMouseMotion> mm = p_event; - +	const Ref<InputEventMouseMotion> mm = p_event;  	if (mm.is_valid()) {  		if (_dragging) {  			_seek_to(mm->get_position().x); @@ -228,6 +232,7 @@ AudioStreamEditor::AudioStreamEditor() {  	hbox->add_child(_play_button);  	_play_button->set_focus_mode(Control::FOCUS_NONE);  	_play_button->connect("pressed", callable_mp(this, &AudioStreamEditor::_play)); +	_play_button->set_shortcut(ED_SHORTCUT("inspector/audio_preview_play_pause", TTR("Audio Preview Play/Pause"), KEY_SPACE));  	_stop_button = memnew(Button);  	_stop_button->set_flat(true); diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index 6ac47595dc..261621e10a 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -1654,7 +1654,7 @@ bool CanvasItemEditor::_gui_input_open_scene_on_double_click(const Ref<InputEven  	Ref<InputEventMouseButton> b = p_event;  	// Open a sub-scene on double-click -	if (b.is_valid() && b->get_button_index() == MOUSE_BUTTON_LEFT && b->is_pressed() && b->is_doubleclick() && tool == TOOL_SELECT) { +	if (b.is_valid() && b->get_button_index() == MOUSE_BUTTON_LEFT && b->is_pressed() && b->is_double_click() && tool == TOOL_SELECT) {  		List<CanvasItem *> selection = _get_edited_canvas_items();  		if (selection.size() == 1) {  			CanvasItem *canvas_item = selection[0]; diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp index 87eeb82101..a319a595c7 100644 --- a/editor/plugins/editor_preview_plugins.cpp +++ b/editor/plugins/editor_preview_plugins.cpp @@ -504,6 +504,7 @@ Ref<Texture2D> EditorScriptPreviewPlugin::generate(const RES &p_from, const Size  	Color keyword_color = EditorSettings::get_singleton()->get("text_editor/highlighting/keyword_color");  	Color text_color = EditorSettings::get_singleton()->get("text_editor/highlighting/text_color");  	Color symbol_color = EditorSettings::get_singleton()->get("text_editor/highlighting/symbol_color"); +	Color comment_color = EditorSettings::get_singleton()->get("text_editor/highlighting/comment_color");  	if (bg_color.a == 0) {  		bg_color = Color(0, 0, 0, 0); @@ -523,33 +524,42 @@ Ref<Texture2D> EditorScriptPreviewPlugin::generate(const RES &p_from, const Size  	bool prev_is_text = false;  	bool in_keyword = false; +	bool in_comment = false;  	for (int i = 0; i < code.length(); i++) {  		char32_t c = code[i];  		if (c > 32) {  			if (col < thumbnail_size) {  				Color color = text_color; -				if (c != '_' && ((c >= '!' && c <= '/') || (c >= ':' && c <= '@') || (c >= '[' && c <= '`') || (c >= '{' && c <= '~') || c == '\t')) { -					//make symbol a little visible -					color = symbol_color; -					in_keyword = false; -				} else if (!prev_is_text && _is_text_char(c)) { -					int pos = i; +				if (c == '#') { +					in_comment = true; +				} -					while (_is_text_char(code[pos])) { -						pos++; -					} -					String word = code.substr(i, pos - i); -					if (keywords.has(word)) { -						in_keyword = true; +				if (in_comment) { +					color = comment_color; +				} else { +					if (c != '_' && ((c >= '!' && c <= '/') || (c >= ':' && c <= '@') || (c >= '[' && c <= '`') || (c >= '{' && c <= '~') || c == '\t')) { +						//make symbol a little visible +						color = symbol_color; +						in_keyword = false; +					} else if (!prev_is_text && _is_text_char(c)) { +						int pos = i; + +						while (_is_text_char(code[pos])) { +							pos++; +						} +						String word = code.substr(i, pos - i); +						if (keywords.has(word)) { +							in_keyword = true; +						} + +					} else if (!_is_text_char(c)) { +						in_keyword = false;  					} -				} else if (!_is_text_char(c)) { -					in_keyword = false; -				} - -				if (in_keyword) { -					color = keyword_color; +					if (in_keyword) { +						color = keyword_color; +					}  				}  				Color ul = color; @@ -559,11 +569,14 @@ Ref<Texture2D> EditorScriptPreviewPlugin::generate(const RES &p_from, const Size  				prev_is_text = _is_text_char(c);  			} +			col++;  		} else {  			prev_is_text = false;  			in_keyword = false;  			if (c == '\n') { +				in_comment = false; +  				col = x0;  				line++;  				if (line >= available_height / 2) { @@ -571,9 +584,10 @@ Ref<Texture2D> EditorScriptPreviewPlugin::generate(const RES &p_from, const Size  				}  			} else if (c == '\t') {  				col += 3; +			} else { +				col++;  			}  		} -		col++;  	}  	post_process_preview(img); diff --git a/editor/plugins/tile_map_editor_plugin.cpp b/editor/plugins/tile_map_editor_plugin.cpp index bd721244ea..1d6ff92e0c 100644 --- a/editor/plugins/tile_map_editor_plugin.cpp +++ b/editor/plugins/tile_map_editor_plugin.cpp @@ -573,6 +573,7 @@ void TileMapEditor::_update_palette() {  		entries2.sort_custom<SwapComparator>();  		Ref<Texture2D> tex = tileset->tile_get_texture(sel_tile); +		Color modulate = tileset->tile_get_modulate(sel_tile);  		for (int i = 0; i < entries2.size(); i++) {  			manual_palette->add_item(String()); @@ -588,6 +589,7 @@ void TileMapEditor::_update_palette() {  				}  				manual_palette->set_item_icon(manual_palette->get_item_count() - 1, tex); +				manual_palette->set_item_icon_modulate(manual_palette->get_item_count() - 1, modulate);  			}  			manual_palette->set_item_metadata(manual_palette->get_item_count() - 1, entries2[i]); @@ -658,11 +660,15 @@ Vector<Vector2> TileMapEditor::_bucket_fill(const Point2i &p_start, bool erase,  	}  	// Check if the tile variation is the same -	Vector2 prev_position = node->get_cell_autotile_coord(p_start.x, p_start.y);  	if (ids.size() == 1 && ids[0] == prev_id) {  		int current = manual_palette->get_current(); -		Vector2 position = manual_palette->get_item_metadata(current); -		if (prev_position == position) { +		if (current == -1) { +			// Same ID, no variation selected, nothing to change +			return Vector<Vector2>(); +		} +		Vector2 prev_autotile_coord = node->get_cell_autotile_coord(p_start.x, p_start.y); +		Vector2 autotile_coord = manual_palette->get_item_metadata(current); +		if (autotile_coord == prev_autotile_coord) {  			// Same ID and variation, nothing to change  			return Vector<Vector2>();  		} |