From c14314fd33bc9ea532d969a6bd408abda9250a45 Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Thu, 25 Dec 2025 10:06:03 -0800 Subject: [PATCH 1/4] Fix LT-22340 by displaying list as flat string --- .../Configuration/Parts/MorphologyParts.xml | 7 +++-- .../Controls/XMLViews/XmlVcDisplayVec.cs | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml b/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml index 4919ad077e..2bd5c3e163 100644 --- a/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml +++ b/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml @@ -359,9 +359,12 @@ - + - + + n/a + + diff --git a/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs b/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs index c987c096c4..505a94f1ba 100644 --- a/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs +++ b/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs @@ -102,6 +102,14 @@ internal void Display(ref ITsString tssDelayedNumber) return; } + var flat = XmlUtils.GetOptionalBooleanAttributeValue(dispInfo.MainNode, "flat", false); + if (flat) + { + DisplayFlat(dispInfo); + return; + } + + XmlNode listDelimitNode; // has the list seps attrs like 'sep' XmlNode specialAttrsNode; // has the more exotic ones like 'excludeHvo' listDelimitNode = specialAttrsNode = dispInfo.MainNode; @@ -304,6 +312,25 @@ internal void Display(ref ITsString tssDelayedNumber) // end of Display method } + private void DisplayFlat(MainCallerDisplayCommand dispInfo) + { + var chvo = m_sda.get_VecSize(m_hvo, m_flid); + int[] rghvo = GetVector(m_sda, m_hvo, m_flid); + var xattrSeparator = dispInfo.MainNode.Attributes["sep"]; + string sSep = !string.IsNullOrEmpty(xattrSeparator.Value) ? xattrSeparator.Value : " "; + var bldr = TsStringUtils.MakeIncStrBldr(); + for (var ihvo = 0; ihvo < chvo; ++ihvo) + { + var obj = m_cache.ServiceLocator.GetObject(rghvo[ihvo]); + bldr.Append(obj.ShortName); + if (ihvo + 1 < chvo) + { + bldr.Append(sSep); + } + } + m_vwEnv.AddString(bldr.GetString()); + } + private void AddItemEmbellishments(XmlNode listDelimitNode, bool fNumber, int hvo, int ihvo, XmlAttribute xaNum, ITsTextProps ttpNum, bool fDelayNumber, ref ITsString tssDelayedNumber) { // add the numbering if needed. From e8cf6bceb11cb5c31a905def008cfba3c2035c1b Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Fri, 26 Dec 2025 09:47:28 -0800 Subject: [PATCH 2/4] Fix layout of required features and inflection classes --- .../Configuration/Parts/LexEntryParts.xml | 2 +- .../Configuration/Parts/MorphologyParts.xml | 30 ++++++++++++++----- Src/Common/Controls/XMLViews/XmlVc.cs | 4 ++- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/DistFiles/Language Explorer/Configuration/Parts/LexEntryParts.xml b/DistFiles/Language Explorer/Configuration/Parts/LexEntryParts.xml index acf75f25e3..288da031b1 100644 --- a/DistFiles/Language Explorer/Configuration/Parts/LexEntryParts.xml +++ b/DistFiles/Language Explorer/Configuration/Parts/LexEntryParts.xml @@ -371,7 +371,7 @@ - + diff --git a/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml b/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml index 2bd5c3e163..6f2f8c80c8 100644 --- a/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml +++ b/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml @@ -366,25 +366,39 @@ + - + n/a + - + - + + n/a + + + - - - - - + + + + + + + + + + + n/a + + diff --git a/Src/Common/Controls/XMLViews/XmlVc.cs b/Src/Common/Controls/XMLViews/XmlVc.cs index f1a7ace8aa..6d8701d7db 100644 --- a/Src/Common/Controls/XMLViews/XmlVc.cs +++ b/Src/Common/Controls/XMLViews/XmlVc.cs @@ -27,6 +27,7 @@ using SIL.ObjectModel; using SIL.LCModel.Utils; using SIL.Utils; +using System.Xml.Schema; namespace SIL.FieldWorks.Common.Controls { @@ -3541,7 +3542,8 @@ static private bool HvoEqualsConditionPasses(IVwEnv vwenv, XmlNode frag, int hvo if (val == hvoParent) return true; } - return false; + // e.g. sHvo = "0" + return sHvo.Equals(val.ToString()); } /// From 4af6f1a8b990f709ffaa2ea2728f147f12d0b4d0 Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Fri, 26 Dec 2025 16:51:13 -0800 Subject: [PATCH 3/4] Clean up code --- .../Configuration/Parts/MorphologyParts.xml | 7 ++++--- Src/Common/Controls/XMLViews/XmlVc.cs | 1 - Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml b/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml index 6f2f8c80c8..339f639418 100644 --- a/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml +++ b/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml @@ -358,11 +358,12 @@ - - + + + - n/a + n/a diff --git a/Src/Common/Controls/XMLViews/XmlVc.cs b/Src/Common/Controls/XMLViews/XmlVc.cs index 6d8701d7db..2a7ddb3f02 100644 --- a/Src/Common/Controls/XMLViews/XmlVc.cs +++ b/Src/Common/Controls/XMLViews/XmlVc.cs @@ -27,7 +27,6 @@ using SIL.ObjectModel; using SIL.LCModel.Utils; using SIL.Utils; -using System.Xml.Schema; namespace SIL.FieldWorks.Common.Controls { diff --git a/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs b/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs index 505a94f1ba..bcb6aaffa6 100644 --- a/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs +++ b/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs @@ -109,7 +109,6 @@ internal void Display(ref ITsString tssDelayedNumber) return; } - XmlNode listDelimitNode; // has the list seps attrs like 'sep' XmlNode specialAttrsNode; // has the more exotic ones like 'excludeHvo' listDelimitNode = specialAttrsNode = dispInfo.MainNode; From 177b03f9dd26bb7c8113e76d4bf858d691b9e065 Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Fri, 2 Jan 2026 09:03:45 -0800 Subject: [PATCH 4/4] Replace flat="true" with pattern --- .../Configuration/Parts/LexEntryParts.xml | 3 +-- .../Configuration/Parts/MorphologyParts.xml | 14 +++++++--- .../Controls/XMLViews/XmlVcDisplayVec.cs | 26 ------------------- 3 files changed, 11 insertions(+), 32 deletions(-) diff --git a/DistFiles/Language Explorer/Configuration/Parts/LexEntryParts.xml b/DistFiles/Language Explorer/Configuration/Parts/LexEntryParts.xml index 288da031b1..e530a012d3 100644 --- a/DistFiles/Language Explorer/Configuration/Parts/LexEntryParts.xml +++ b/DistFiles/Language Explorer/Configuration/Parts/LexEntryParts.xml @@ -364,8 +364,7 @@ - - + diff --git a/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml b/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml index 339f639418..6e79c63fe0 100644 --- a/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml +++ b/DistFiles/Language Explorer/Configuration/Parts/MorphologyParts.xml @@ -360,8 +360,10 @@ - - + + + + n/a @@ -369,7 +371,9 @@ - + + + n/a @@ -378,7 +382,9 @@ - + + + n/a diff --git a/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs b/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs index bcb6aaffa6..c987c096c4 100644 --- a/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs +++ b/Src/Common/Controls/XMLViews/XmlVcDisplayVec.cs @@ -102,13 +102,6 @@ internal void Display(ref ITsString tssDelayedNumber) return; } - var flat = XmlUtils.GetOptionalBooleanAttributeValue(dispInfo.MainNode, "flat", false); - if (flat) - { - DisplayFlat(dispInfo); - return; - } - XmlNode listDelimitNode; // has the list seps attrs like 'sep' XmlNode specialAttrsNode; // has the more exotic ones like 'excludeHvo' listDelimitNode = specialAttrsNode = dispInfo.MainNode; @@ -311,25 +304,6 @@ internal void Display(ref ITsString tssDelayedNumber) // end of Display method } - private void DisplayFlat(MainCallerDisplayCommand dispInfo) - { - var chvo = m_sda.get_VecSize(m_hvo, m_flid); - int[] rghvo = GetVector(m_sda, m_hvo, m_flid); - var xattrSeparator = dispInfo.MainNode.Attributes["sep"]; - string sSep = !string.IsNullOrEmpty(xattrSeparator.Value) ? xattrSeparator.Value : " "; - var bldr = TsStringUtils.MakeIncStrBldr(); - for (var ihvo = 0; ihvo < chvo; ++ihvo) - { - var obj = m_cache.ServiceLocator.GetObject(rghvo[ihvo]); - bldr.Append(obj.ShortName); - if (ihvo + 1 < chvo) - { - bldr.Append(sSep); - } - } - m_vwEnv.AddString(bldr.GetString()); - } - private void AddItemEmbellishments(XmlNode listDelimitNode, bool fNumber, int hvo, int ihvo, XmlAttribute xaNum, ITsTextProps ttpNum, bool fDelayNumber, ref ITsString tssDelayedNumber) { // add the numbering if needed.