Merge pull request #42939 from Chaosus/fix_custom_property_editor2

Fix custom property editor to correctly show Basis
This commit is contained in:
Rémi Verschelde 2020-10-22 09:51:49 +02:00 committed by GitHub
commit 3b85f22a6f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1697,13 +1697,18 @@ void CustomPropertyEditor::config_value_editors(int p_amount, int p_columns, int
int cell_width = 95; int cell_width = 95;
int cell_height = 25; int cell_height = 25;
int cell_margin = 5; int cell_margin = 5;
int hor_spacing = 5; // Spacing between labels and their values
int rows = ((p_amount - 1) / p_columns) + 1; int rows = ((p_amount - 1) / p_columns) + 1;
set_size(Size2(cell_margin + p_label_w + (cell_width + cell_margin + p_label_w) * p_columns, cell_margin + (cell_height + cell_margin) * rows) * EDSCALE); set_size(Size2(cell_margin + p_label_w + (cell_width + cell_margin + p_label_w) * p_columns, cell_margin + (cell_height + cell_margin) * rows) * EDSCALE);
for (int i = 0; i < MAX_VALUE_EDITORS; i++) { for (int i = 0; i < MAX_VALUE_EDITORS; i++) {
value_label[i]->get_parent()->remove_child(value_label[i]);
value_editor[i]->get_parent()->remove_child(value_editor[i]);
int box_id = i / p_columns;
value_hboxes[box_id]->add_child(value_label[i]);
value_hboxes[box_id]->add_child(value_editor[i]);
if (i < MAX_VALUE_EDITORS / 4) { if (i < MAX_VALUE_EDITORS / 4) {
if (i <= p_amount / 4) { if (i <= p_amount / 4) {
value_hboxes[i]->show(); value_hboxes[i]->show();
@ -1712,16 +1717,10 @@ void CustomPropertyEditor::config_value_editors(int p_amount, int p_columns, int
} }
} }
int c = i % p_columns;
int r = i / p_columns;
if (i < p_amount) { if (i < p_amount) {
value_editor[i]->show(); value_editor[i]->show();
value_label[i]->show(); value_label[i]->show();
value_label[i]->set_text(i < p_strings.size() ? p_strings[i] : String("")); value_label[i]->set_text(i < p_strings.size() ? p_strings[i] : String(""));
value_editor[i]->set_position(Point2(cell_margin + p_label_w + hor_spacing + (cell_width + cell_margin + p_label_w + hor_spacing) * c, cell_margin + (cell_height + cell_margin) * r) * EDSCALE);
value_editor[i]->set_size(Size2(cell_width, cell_height));
value_label[i]->set_position(Point2(cell_margin + (cell_width + cell_margin + p_label_w + hor_spacing) * c, cell_margin + (cell_height + cell_margin) * r) * EDSCALE);
value_editor[i]->set_editable(!read_only); value_editor[i]->set_editable(!read_only);
} else { } else {
value_editor[i]->hide(); value_editor[i]->hide();