Merge pull request #62221 from ConteZero/drag_and_drop_option
Add an option to drag'n'drop selected text in ``TextEdit``
This commit is contained in:
commit
af694245f5
|
@ -956,6 +956,9 @@
|
||||||
<member name="deselect_on_focus_loss_enabled" type="bool" setter="set_deselect_on_focus_loss_enabled" getter="is_deselect_on_focus_loss_enabled" default="true">
|
<member name="deselect_on_focus_loss_enabled" type="bool" setter="set_deselect_on_focus_loss_enabled" getter="is_deselect_on_focus_loss_enabled" default="true">
|
||||||
If [code]true[/code], the selected text will be deselected when focus is lost.
|
If [code]true[/code], the selected text will be deselected when focus is lost.
|
||||||
</member>
|
</member>
|
||||||
|
<member name="drag_and_drop_selection_enabled" type="bool" setter="set_drag_and_drop_selection_enabled" getter="is_drag_and_drop_selection_enabled" default="true">
|
||||||
|
If [code]true[/code], allow drag and drop of selected text.
|
||||||
|
</member>
|
||||||
<member name="draw_control_chars" type="bool" setter="set_draw_control_chars" getter="get_draw_control_chars" default="false">
|
<member name="draw_control_chars" type="bool" setter="set_draw_control_chars" getter="get_draw_control_chars" default="false">
|
||||||
If [code]true[/code], control characters are displayed.
|
If [code]true[/code], control characters are displayed.
|
||||||
</member>
|
</member>
|
||||||
|
|
|
@ -1024,6 +1024,7 @@ void CodeTextEditor::update_editor_settings() {
|
||||||
text_editor->set_scroll_past_end_of_file_enabled(EditorSettings::get_singleton()->get("text_editor/behavior/navigation/scroll_past_end_of_file"));
|
text_editor->set_scroll_past_end_of_file_enabled(EditorSettings::get_singleton()->get("text_editor/behavior/navigation/scroll_past_end_of_file"));
|
||||||
text_editor->set_smooth_scroll_enabled(EditorSettings::get_singleton()->get("text_editor/behavior/navigation/smooth_scrolling"));
|
text_editor->set_smooth_scroll_enabled(EditorSettings::get_singleton()->get("text_editor/behavior/navigation/smooth_scrolling"));
|
||||||
text_editor->set_v_scroll_speed(EditorSettings::get_singleton()->get("text_editor/behavior/navigation/v_scroll_speed"));
|
text_editor->set_v_scroll_speed(EditorSettings::get_singleton()->get("text_editor/behavior/navigation/v_scroll_speed"));
|
||||||
|
text_editor->set_drag_and_drop_selection_enabled(EditorSettings::get_singleton()->get("text_editor/behavior/navigation/drag_and_drop_selection"));
|
||||||
|
|
||||||
// Behavior: indent
|
// Behavior: indent
|
||||||
text_editor->set_indent_using_spaces(EditorSettings::get_singleton()->get("text_editor/behavior/indent/type"));
|
text_editor->set_indent_using_spaces(EditorSettings::get_singleton()->get("text_editor/behavior/indent/type"));
|
||||||
|
|
|
@ -542,6 +542,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
|
||||||
_initial_set("text_editor/behavior/navigation/scroll_past_end_of_file", false);
|
_initial_set("text_editor/behavior/navigation/scroll_past_end_of_file", false);
|
||||||
_initial_set("text_editor/behavior/navigation/smooth_scrolling", true);
|
_initial_set("text_editor/behavior/navigation/smooth_scrolling", true);
|
||||||
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "text_editor/behavior/navigation/v_scroll_speed", 80, "1,10000,1")
|
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "text_editor/behavior/navigation/v_scroll_speed", 80, "1,10000,1")
|
||||||
|
_initial_set("text_editor/behavior/navigation/drag_and_drop_selection", true);
|
||||||
|
|
||||||
// Behavior: Indent
|
// Behavior: Indent
|
||||||
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "text_editor/behavior/indent/type", 0, "Tabs,Spaces")
|
EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "text_editor/behavior/indent/type", 0, "Tabs,Spaces")
|
||||||
|
|
|
@ -1723,7 +1723,7 @@ void TextEdit::gui_input(const Ref<InputEvent> &p_gui_input) {
|
||||||
|
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
} else if (is_mouse_over_selection()) {
|
} else if (drag_and_drop_selection_enabled && is_mouse_over_selection()) {
|
||||||
selection.selecting_mode = SelectionMode::SELECTION_MODE_NONE;
|
selection.selecting_mode = SelectionMode::SELECTION_MODE_NONE;
|
||||||
selection.drag_attempt = true;
|
selection.drag_attempt = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -4163,6 +4163,14 @@ bool TextEdit::is_deselect_on_focus_loss_enabled() const {
|
||||||
return deselect_on_focus_loss_enabled;
|
return deselect_on_focus_loss_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TextEdit::set_drag_and_drop_selection_enabled(const bool p_enabled) {
|
||||||
|
drag_and_drop_selection_enabled = p_enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TextEdit::is_drag_and_drop_selection_enabled() const {
|
||||||
|
return drag_and_drop_selection_enabled;
|
||||||
|
}
|
||||||
|
|
||||||
void TextEdit::set_override_selected_font_color(bool p_override_selected_font_color) {
|
void TextEdit::set_override_selected_font_color(bool p_override_selected_font_color) {
|
||||||
override_selected_font_color = p_override_selected_font_color;
|
override_selected_font_color = p_override_selected_font_color;
|
||||||
}
|
}
|
||||||
|
@ -5243,6 +5251,9 @@ void TextEdit::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("set_deselect_on_focus_loss_enabled", "enable"), &TextEdit::set_deselect_on_focus_loss_enabled);
|
ClassDB::bind_method(D_METHOD("set_deselect_on_focus_loss_enabled", "enable"), &TextEdit::set_deselect_on_focus_loss_enabled);
|
||||||
ClassDB::bind_method(D_METHOD("is_deselect_on_focus_loss_enabled"), &TextEdit::is_deselect_on_focus_loss_enabled);
|
ClassDB::bind_method(D_METHOD("is_deselect_on_focus_loss_enabled"), &TextEdit::is_deselect_on_focus_loss_enabled);
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("set_drag_and_drop_selection_enabled", "enable"), &TextEdit::set_drag_and_drop_selection_enabled);
|
||||||
|
ClassDB::bind_method(D_METHOD("is_drag_and_drop_selection_enabled"), &TextEdit::is_drag_and_drop_selection_enabled);
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("set_override_selected_font_color", "override"), &TextEdit::set_override_selected_font_color);
|
ClassDB::bind_method(D_METHOD("set_override_selected_font_color", "override"), &TextEdit::set_override_selected_font_color);
|
||||||
ClassDB::bind_method(D_METHOD("is_overriding_selected_font_color"), &TextEdit::is_overriding_selected_font_color);
|
ClassDB::bind_method(D_METHOD("is_overriding_selected_font_color"), &TextEdit::is_overriding_selected_font_color);
|
||||||
|
|
||||||
|
@ -5405,6 +5416,7 @@ void TextEdit::_bind_methods() {
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "shortcut_keys_enabled"), "set_shortcut_keys_enabled", "is_shortcut_keys_enabled");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "shortcut_keys_enabled"), "set_shortcut_keys_enabled", "is_shortcut_keys_enabled");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "selecting_enabled"), "set_selecting_enabled", "is_selecting_enabled");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "selecting_enabled"), "set_selecting_enabled", "is_selecting_enabled");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "deselect_on_focus_loss_enabled"), "set_deselect_on_focus_loss_enabled", "is_deselect_on_focus_loss_enabled");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "deselect_on_focus_loss_enabled"), "set_deselect_on_focus_loss_enabled", "is_deselect_on_focus_loss_enabled");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "drag_and_drop_selection_enabled"), "set_drag_and_drop_selection_enabled", "is_drag_and_drop_selection_enabled");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "virtual_keyboard_enabled"), "set_virtual_keyboard_enabled", "is_virtual_keyboard_enabled");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "virtual_keyboard_enabled"), "set_virtual_keyboard_enabled", "is_virtual_keyboard_enabled");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "middle_mouse_paste_enabled"), "set_middle_mouse_paste_enabled", "is_middle_mouse_paste_enabled");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "middle_mouse_paste_enabled"), "set_middle_mouse_paste_enabled", "is_middle_mouse_paste_enabled");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "wrap_mode", PROPERTY_HINT_ENUM, "None,Boundary"), "set_line_wrapping_mode", "get_line_wrapping_mode");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "wrap_mode", PROPERTY_HINT_ENUM, "None,Boundary"), "set_line_wrapping_mode", "get_line_wrapping_mode");
|
||||||
|
|
|
@ -422,6 +422,7 @@ private:
|
||||||
|
|
||||||
bool selecting_enabled = true;
|
bool selecting_enabled = true;
|
||||||
bool deselect_on_focus_loss_enabled = true;
|
bool deselect_on_focus_loss_enabled = true;
|
||||||
|
bool drag_and_drop_selection_enabled = true;
|
||||||
|
|
||||||
Color font_selected_color = Color(1, 1, 1);
|
Color font_selected_color = Color(1, 1, 1);
|
||||||
Color selection_color = Color(1, 1, 1);
|
Color selection_color = Color(1, 1, 1);
|
||||||
|
@ -795,6 +796,9 @@ public:
|
||||||
void set_deselect_on_focus_loss_enabled(const bool p_enabled);
|
void set_deselect_on_focus_loss_enabled(const bool p_enabled);
|
||||||
bool is_deselect_on_focus_loss_enabled() const;
|
bool is_deselect_on_focus_loss_enabled() const;
|
||||||
|
|
||||||
|
void set_drag_and_drop_selection_enabled(const bool p_enabled);
|
||||||
|
bool is_drag_and_drop_selection_enabled() const;
|
||||||
|
|
||||||
void set_override_selected_font_color(bool p_override_selected_font_color);
|
void set_override_selected_font_color(bool p_override_selected_font_color);
|
||||||
bool is_overriding_selected_font_color() const;
|
bool is_overriding_selected_font_color() const;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue