FIX: select base printer preset when deleting custom preset

Change-Id: If69a58d486fc7a98ae4a0242dd9d345e8d3cf940
Jira: STUDIO-11013
This commit is contained in:
chunmao.guo 2025-03-23 13:39:38 +08:00 committed by lane.wei
parent 8f5205a34c
commit f7ca47c2b3
1 changed files with 13 additions and 8 deletions

View File

@ -4838,14 +4838,19 @@ bool Tab::select_preset(
const std::deque<Preset> &presets = m_presets->get_presets();
size_t idx_current = m_presets->get_idx_selected();
// Find the next visible preset.
size_t idx_new = idx_current + 1;
if (idx_new < presets.size())
for (; idx_new < presets.size() && ! presets[idx_new].is_visible; ++ idx_new) ;
if (idx_new == presets.size())
for (idx_new = idx_current - 1; idx_new > 0 && ! presets[idx_new].is_visible; -- idx_new);
preset_name = presets[idx_new].name;
BOOST_LOG_TRIVIAL(info) << boost::format("cause by delete current ,choose the next visible, idx %1%, name %2%")
%idx_new %preset_name;
preset_name = presets[idx_current].inherits();
if (preset_name.empty()) {
size_t idx_new = idx_current + 1;
if (idx_new < presets.size())
for (; idx_new < presets.size() && ! presets[idx_new].is_visible; ++ idx_new) ;
if (idx_new == presets.size())
for (idx_new = idx_current - 1; idx_new > 0 && ! presets[idx_new].is_visible; -- idx_new);
preset_name = presets[idx_new].name;
BOOST_LOG_TRIVIAL(info) << boost::format("cause by delete current ,choose the next visible, idx %1%, name %2%")
%idx_new %preset_name;
} else {
BOOST_LOG_TRIVIAL(info) << boost::format("cause by delete current ,choose base, name %1%") % preset_name;
}
} else {
//BBS select first visible item first
const std::deque<Preset> &presets = this->m_presets->get_presets();