mirror of
https://github.com/godotengine/godot.git
synced 2025-04-13 01:00:35 +08:00
Save queued ProjectSettings changes immediately when settings dialog is closed.
This commit is contained in:
parent
b5bdb88062
commit
9363433458
@ -76,9 +76,17 @@ void ProjectSettingsEditor::popup_project_settings(bool p_clear_filter) {
|
||||
}
|
||||
|
||||
void ProjectSettingsEditor::queue_save() {
|
||||
settings_changed = true;
|
||||
timer->start();
|
||||
}
|
||||
|
||||
void ProjectSettingsEditor::_save() {
|
||||
settings_changed = false;
|
||||
if (ps) {
|
||||
ps->save();
|
||||
}
|
||||
}
|
||||
|
||||
void ProjectSettingsEditor::set_plugins_page() {
|
||||
tab_container->set_current_tab(tab_container->get_tab_idx_from_control(plugin_settings));
|
||||
}
|
||||
@ -601,6 +609,10 @@ void ProjectSettingsEditor::_notification(int p_what) {
|
||||
case NOTIFICATION_VISIBILITY_CHANGED: {
|
||||
if (!is_visible()) {
|
||||
EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "project_settings", Rect2(get_position(), get_size()));
|
||||
if (settings_changed) {
|
||||
timer->stop();
|
||||
_save();
|
||||
}
|
||||
}
|
||||
} break;
|
||||
|
||||
@ -763,7 +775,7 @@ ProjectSettingsEditor::ProjectSettingsEditor(EditorData *p_data) {
|
||||
|
||||
timer = memnew(Timer);
|
||||
timer->set_wait_time(1.5);
|
||||
timer->connect("timeout", callable_mp(ps, &ProjectSettings::save));
|
||||
timer->connect("timeout", callable_mp(this, &ProjectSettingsEditor::_save));
|
||||
timer->set_one_shot(true);
|
||||
add_child(timer);
|
||||
|
||||
|
@ -81,6 +81,8 @@ class ProjectSettingsEditor : public AcceptDialog {
|
||||
ImportDefaultsEditor *import_defaults_editor = nullptr;
|
||||
EditorData *data = nullptr;
|
||||
|
||||
bool settings_changed = false;
|
||||
|
||||
void _advanced_toggled(bool p_button_pressed);
|
||||
void _update_advanced(bool p_is_advanced);
|
||||
void _property_box_changed(const String &p_text);
|
||||
@ -113,6 +115,7 @@ class ProjectSettingsEditor : public AcceptDialog {
|
||||
void _action_reordered(const String &p_action_name, const String &p_relative_to, bool p_before);
|
||||
void _update_action_map_editor();
|
||||
void _update_theme();
|
||||
void _save();
|
||||
|
||||
protected:
|
||||
void _notification(int p_what);
|
||||
|
Loading…
x
Reference in New Issue
Block a user