-Fixed changes to default input actions not working, closes #10502
-Added Array.duplicate() method, needed to fix above
This commit is contained in:
parent
0b8fa1e010
commit
c771e03ee2
@ -210,6 +210,17 @@ const Variant &Array::get(int p_idx) const {
|
||||
return operator[](p_idx);
|
||||
}
|
||||
|
||||
Array Array::duplicate() const {
|
||||
|
||||
Array new_arr;
|
||||
int element_count = size();
|
||||
new_arr.resize(element_count);
|
||||
for (int i = 0; i < element_count; i++) {
|
||||
new_arr[i] = get(i);
|
||||
}
|
||||
|
||||
return new_arr;
|
||||
}
|
||||
struct _ArrayVariantSort {
|
||||
|
||||
_FORCE_INLINE_ bool operator()(const Variant &p_l, const Variant &p_r) const {
|
||||
|
@ -84,6 +84,8 @@ public:
|
||||
Variant pop_back();
|
||||
Variant pop_front();
|
||||
|
||||
Array duplicate() const;
|
||||
|
||||
Array(const Array &p_from);
|
||||
Array();
|
||||
~Array();
|
||||
|
@ -481,6 +481,7 @@ struct _VariantCall {
|
||||
VCALL_LOCALMEM1(Array, erase);
|
||||
VCALL_LOCALMEM0(Array, sort);
|
||||
VCALL_LOCALMEM2(Array, sort_custom);
|
||||
VCALL_LOCALMEM0R(Array, duplicate);
|
||||
VCALL_LOCALMEM0(Array, invert);
|
||||
|
||||
static void _call_PoolByteArray_get_string_from_ascii(Variant &r_ret, Variant &p_self, const Variant **p_args) {
|
||||
@ -1575,6 +1576,7 @@ void register_variant_methods() {
|
||||
ADDFUNC0(ARRAY, NIL, Array, sort, varray());
|
||||
ADDFUNC2(ARRAY, NIL, Array, sort_custom, OBJECT, "obj", STRING, "func", varray());
|
||||
ADDFUNC0(ARRAY, NIL, Array, invert, varray());
|
||||
ADDFUNC0(ARRAY, ARRAY, Array, duplicate, varray());
|
||||
|
||||
ADDFUNC0(POOL_BYTE_ARRAY, INT, PoolByteArray, size, varray());
|
||||
ADDFUNC2(POOL_BYTE_ARRAY, NIL, PoolByteArray, set, INT, "idx", INT, "byte", varray());
|
||||
|
@ -182,8 +182,8 @@ void ProjectSettingsEditor::_device_input_add() {
|
||||
Ref<InputEvent> ie;
|
||||
String name = add_at;
|
||||
int idx = edit_idx;
|
||||
Variant old_val = ProjectSettings::get_singleton()->get(name);
|
||||
Array arr = old_val;
|
||||
Array old_val = ProjectSettings::get_singleton()->get(name);
|
||||
Array arr = old_val.duplicate();
|
||||
|
||||
switch (add_type) {
|
||||
|
||||
@ -285,8 +285,8 @@ void ProjectSettingsEditor::_press_a_key_confirm() {
|
||||
String name = add_at;
|
||||
int idx = edit_idx;
|
||||
|
||||
Variant old_val = ProjectSettings::get_singleton()->get(name);
|
||||
Array arr = old_val;
|
||||
Array old_val = ProjectSettings::get_singleton()->get(name);
|
||||
Array arr = old_val.duplicate();
|
||||
|
||||
for (int i = 0; i < arr.size(); i++) {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user