From a18a7409fb9d8e05967e267190aedcd442ed546b Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Sun, 14 Feb 2021 13:28:45 -0800 Subject: [PATCH] [glass] NTStringChooser: Clear value of deleted entries --- .../src/libnt/native/cpp/NTStringChooser.cpp | 35 +++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/glass/src/libnt/native/cpp/NTStringChooser.cpp b/glass/src/libnt/native/cpp/NTStringChooser.cpp index 33c8fa2d0b..e1c8d3bf18 100644 --- a/glass/src/libnt/native/cpp/NTStringChooser.cpp +++ b/glass/src/libnt/native/cpp/NTStringChooser.cpp @@ -39,17 +39,30 @@ void NTStringChooserModel::SetOptions(wpi::ArrayRef val) { void NTStringChooserModel::Update() { for (auto&& event : m_nt.PollListener()) { - if (event.entry == m_default && event.value && event.value->IsString()) { - m_defaultValue = event.value->GetString(); - } else if (event.entry == m_selected && event.value && - event.value->IsString()) { - m_selectedValue = event.value->GetString(); - } else if (event.entry == m_active && event.value && - event.value->IsString()) { - m_activeValue = event.value->GetString(); - } else if (event.entry == m_options && event.value && - event.value->IsStringArray()) { - m_optionsValue = event.value->GetStringArray(); + if (event.entry == m_default) { + if ((event.flags & NT_NOTIFY_DELETE) != 0) { + m_defaultValue.clear(); + } else if (event.value && event.value->IsString()) { + m_defaultValue = event.value->GetString(); + } + } else if (event.entry == m_selected) { + if ((event.flags & NT_NOTIFY_DELETE) != 0) { + m_selectedValue.clear(); + } else if (event.value && event.value->IsString()) { + m_selectedValue = event.value->GetString(); + } + } else if (event.entry == m_active) { + if ((event.flags & NT_NOTIFY_DELETE) != 0) { + m_activeValue.clear(); + } else if (event.value && event.value->IsString()) { + m_activeValue = event.value->GetString(); + } + } else if (event.entry == m_options) { + if ((event.flags & NT_NOTIFY_DELETE) != 0) { + m_optionsValue.clear(); + } else if (event.value && event.value->IsStringArray()) { + m_optionsValue = event.value->GetStringArray(); + } } } }