Restrict UDP SwitchConfiguration(14) to existing configurations

This commit is contained in:
Bill Somerville 2021-02-24 11:22:10 +00:00
parent 01dff71070
commit 63ef8412b9
No known key found for this signature in database
GPG Key ID: D864B06D1E81618F

View File

@ -576,20 +576,28 @@ void MultiSettings::impl::select_configuration (QString const& target_name)
{ {
if (main_window_ && target_name != current_) if (main_window_ && target_name != current_)
{ {
bool changed {false};
{ {
auto const& current_group = settings_.group (); auto const& current_group = settings_.group ();
if (current_group.size ()) settings_.endGroup (); if (current_group.size ()) settings_.endGroup ();
// position to the alternative settings // position to the alternative settings
SettingsGroup alternatives {&settings_, multi_settings_root_group}; SettingsGroup alternatives {&settings_, multi_settings_root_group};
// save the target settings if (settings_.childGroups ().contains (target_name))
SettingsGroup target_group {&settings_, target_name}; {
new_settings_ = get_settings (); changed = true;
// save the target settings
SettingsGroup target_group {&settings_, target_name};
new_settings_ = get_settings ();
}
if (current_group.size ()) settings_.beginGroup (current_group); if (current_group.size ()) settings_.beginGroup (current_group);
} }
// and set up the restart if (changed)
current_ = target_name; {
Q_EMIT parent_->configurationNameChanged (unescape_ampersands (current_)); // and set up the restart
restart (RepositionType::save_and_replace); current_ = target_name;
Q_EMIT parent_->configurationNameChanged (unescape_ampersands (current_));
restart (RepositionType::save_and_replace);
}
} }
} }