From a13cbf5e22797d06f14c3e5969cab4c7c416f510 Mon Sep 17 00:00:00 2001 From: mark-sil <83427558+mark-sil@users.noreply.github.com> Date: Tue, 27 Jan 2026 15:05:06 -0500 Subject: [PATCH] LT-21492: Remove WritingSystemUpdated & WritingSystemDeleted Cherry-pick from the PubSub branch to the main branch using the following command: git cherry-pick --no-commit 492707b6 Removed the unused code (LT-21492 and LT-21493). Only test code was passing a mediator in to the FwWritingSystemSetupModel constructor, so only test code was calling SendMessage for both of these events. The two delete tests that were failing an assert when I removed the mediator, both contain other asserts that still fail if the writing system is not deleted. --- .../FwWritingSystemSetupModelTests.cs | 52 +++---------------- Src/FwCoreDlgs/FwWritingSystemSetupModel.cs | 13 +---- Src/xWorks/DictionaryConfigurationListener.cs | 29 ----------- 3 files changed, 7 insertions(+), 87 deletions(-) diff --git a/Src/FwCoreDlgs/FwCoreDlgsTests/FwWritingSystemSetupModelTests.cs b/Src/FwCoreDlgs/FwCoreDlgsTests/FwWritingSystemSetupModelTests.cs index 4160c2e2a9..c699b49aab 100644 --- a/Src/FwCoreDlgs/FwCoreDlgsTests/FwWritingSystemSetupModelTests.cs +++ b/Src/FwCoreDlgs/FwCoreDlgsTests/FwWritingSystemSetupModelTests.cs @@ -1462,12 +1462,11 @@ public void Save_HiddenWsDeleted_WsDeleted() { using (var mediator = new Mediator()) { - var deleteListener = new WSDeletedListener(mediator); var ws = GetOrSetWs("doa"); Cache.ServiceLocator.GetInstance().Create().CitationForm.set_String(ws.Handle, "some data"); Cache.ActionHandlerAccessor.EndUndoTask(); var testModel = new FwWritingSystemSetupModel(Cache.LangProject, FwWritingSystemSetupModel.ListType.Vernacular, - Cache.ServiceLocator.WritingSystemManager, Cache, mediator) + Cache.ServiceLocator.WritingSystemManager, Cache) { ViewHiddenWritingSystems = model => model.Items.Add(new HiddenWSListItemModel(ws, false) { WillDelete = true }) @@ -1477,7 +1476,6 @@ public void Save_HiddenWsDeleted_WsDeleted() testModel.GetAddMenuItems().First(item => item.MenuText.Contains("View hidden")).ClickHandler(this, EventArgs.Empty); testModel.Save(); - CollectionAssert.AreEqual(new[] {"doa"}, deleteListener.DeletedWSs); Assert.That(WritingSystemServices.FindAllWritingSystemsWithText(Cache), Is.Not.Contains(ws.Handle)); } } @@ -1488,11 +1486,10 @@ public void Save_DeletedWs_WsDeleted(FwWritingSystemSetupModel.ListType type, st { using (var mediator = new Mediator()) { - var deleteListener = new WSDeletedListener(mediator); SetUpProjectWithData(); Cache.ActionHandlerAccessor.EndUndoTask(); var wasDeleteConfirmed = false; - var testModel = new FwWritingSystemSetupModel(Cache.LangProject, type, Cache.ServiceLocator.WritingSystemManager, Cache, mediator) + var testModel = new FwWritingSystemSetupModel(Cache.LangProject, type, Cache.ServiceLocator.WritingSystemManager, Cache) { ConfirmDeleteWritingSystem = label => { @@ -1521,7 +1518,6 @@ public void Save_DeletedWs_WsDeleted(FwWritingSystemSetupModel.ListType type, st Assert.AreEqual("en", Cache.LangProject.AnalysisWss, "Only English should remain after save"); AssertFrenchDataIntact(); } - CollectionAssert.AreEqual(new[] {wsId}, deleteListener.DeletedWSs); Assert.That(WritingSystemServices.FindAllWritingSystemsWithText(Cache), Is.Not.Contains(GetOrSetWs(wsId).Handle)); } } @@ -1533,7 +1529,6 @@ public void Save_DeletedWs_ExistsInOtherList_WsHidden( { using (var mediator = new Mediator()) { - var deleteListener = new WSDeletedListener(mediator); SetupHomographLanguagesInCache(); var fr = GetOrSetWs("fr"); Cache.LangProject.AnalysisWritingSystems.Add(fr); @@ -1541,7 +1536,7 @@ public void Save_DeletedWs_ExistsInOtherList_WsHidden( entry.Comment.set_String(fr.Handle, "commentary"); Cache.ActionHandlerAccessor.EndUndoTask(); var wasDeleteConfirmed = false; - var testModel = new FwWritingSystemSetupModel(Cache.LangProject, type, Cache.ServiceLocator.WritingSystemManager, Cache, mediator) + var testModel = new FwWritingSystemSetupModel(Cache.LangProject, type, Cache.ServiceLocator.WritingSystemManager, Cache) { ConfirmDeleteWritingSystem = label => { @@ -1557,7 +1552,6 @@ public void Save_DeletedWs_ExistsInOtherList_WsHidden( Assert.False(wasDeleteConfirmed, "shouldn't confirm 'deleting' a WS that will only be hidden"); AssertOnlyEnglishInList(type); - CollectionAssert.IsEmpty(deleteListener.DeletedWSs); var comment = entry.Comment.get_String(fr.Handle); Assert.AreEqual(fr.Handle, comment.get_WritingSystemAt(0)); Assert.AreEqual("commentary", comment.Text); @@ -1570,10 +1564,9 @@ public void Save_HiddenWs_WsHidden(FwWritingSystemSetupModel.ListType type, stri { using (var mediator = new Mediator()) { - var deleteListener = new WSDeletedListener(mediator); SetUpProjectWithData(); Cache.ActionHandlerAccessor.EndUndoTask(); - var testModel = new FwWritingSystemSetupModel(Cache.LangProject, type, Cache.ServiceLocator.WritingSystemManager, Cache, mediator); + var testModel = new FwWritingSystemSetupModel(Cache.LangProject, type, Cache.ServiceLocator.WritingSystemManager, Cache); testModel.SelectWs(wsId); // SUT: click Hide, then save @@ -1581,7 +1574,6 @@ public void Save_HiddenWs_WsHidden(FwWritingSystemSetupModel.ListType type, stri testModel.Save(); AssertOnlyEnglishInList(type); - CollectionAssert.IsEmpty(deleteListener.DeletedWSs); AssertProjectDataIntact(); } } @@ -1592,10 +1584,9 @@ public void Save_WsDeletedRestoredAndHidden_WsHidden(FwWritingSystemSetupModel.L { using (var mediator = new Mediator()) { - var deleteListener = new WSDeletedListener(mediator); SetUpProjectWithData(); Cache.ActionHandlerAccessor.EndUndoTask(); - var testModel = new FwWritingSystemSetupModel(Cache.LangProject, type, Cache.ServiceLocator.WritingSystemManager, Cache, mediator) + var testModel = new FwWritingSystemSetupModel(Cache.LangProject, type, Cache.ServiceLocator.WritingSystemManager, Cache) { AddNewVernacularLanguageWarning = () => true, ConfirmDeleteWritingSystem = label => true, @@ -1617,7 +1608,6 @@ public void Save_WsDeletedRestoredAndHidden_WsHidden(FwWritingSystemSetupModel.L testModel.Save(); AssertOnlyEnglishInList(type); - CollectionAssert.IsEmpty(deleteListener.DeletedWSs); AssertProjectDataIntact(); } } @@ -1629,10 +1619,9 @@ public void Save_WsDeletedAndRestored_NoChange(FwWritingSystemSetupModel.ListTyp using (var mediator = new Mediator()) { var ws = GetOrSetWs(wsId); - var deleteListener = new WSDeletedListener(mediator); SetUpProjectWithData(); Cache.ActionHandlerAccessor.EndUndoTask(); - var testModel = new FwWritingSystemSetupModel(Cache.LangProject, type, Cache.ServiceLocator.WritingSystemManager, Cache, mediator) + var testModel = new FwWritingSystemSetupModel(Cache.LangProject, type, Cache.ServiceLocator.WritingSystemManager, Cache) { AddNewVernacularLanguageWarning = () => true, ConfirmDeleteWritingSystem = label => true, @@ -1656,7 +1645,6 @@ public void Save_WsDeletedAndRestored_NoChange(FwWritingSystemSetupModel.ListTyp Assert.AreEqual("en fr", Cache.LangProject.VernWss, "Both should remain after save"); Assert.AreEqual("en tpi", Cache.LangProject.CurAnalysisWss, "Both should remain selected after save"); Assert.AreEqual("en tpi", Cache.LangProject.AnalysisWss, "Both should remain after save"); - CollectionAssert.IsEmpty(deleteListener.DeletedWSs); AssertProjectDataIntact(); } } @@ -1907,33 +1895,5 @@ public void AddToCurrentVernacularWritingSystems(CoreWritingSystemDefinition ws) /// public IWritingSystemRepository Repo { get; set; } } - - private class WSDeletedListener : IxCoreColleague - { - public List DeletedWSs { get; } = new List(); - - public WSDeletedListener(Mediator mediator) - { - Init(mediator, null, null); - } - - public void OnWritingSystemDeleted(object param) - { - DeletedWSs.AddRange((string[])param); - } - - public void Init(Mediator mediator, PropertyTable propertyTable, XmlNode configurationParameters) - { - mediator.AddColleague(this); - } - - public IxCoreColleague[] GetMessageTargets() - { - return new IxCoreColleague[] { this }; - } - - public bool ShouldNotCall => false; - public int Priority => (int)ColleaguePriority.High; - } } } diff --git a/Src/FwCoreDlgs/FwWritingSystemSetupModel.cs b/Src/FwCoreDlgs/FwWritingSystemSetupModel.cs index 289d9bddf7..0b1eb495ae 100644 --- a/Src/FwCoreDlgs/FwWritingSystemSetupModel.cs +++ b/Src/FwCoreDlgs/FwWritingSystemSetupModel.cs @@ -76,8 +76,6 @@ public List WorkingList /// public readonly LcmCache Cache; - private readonly Mediator _mediator; - /// public event EventHandler WritingSystemListUpdated; @@ -178,7 +176,7 @@ public List WorkingList public event EventHandler OnCurrentWritingSystemChanged = delegate { }; /// - public FwWritingSystemSetupModel(IWritingSystemContainer container, ListType type, IWritingSystemManager wsManager = null, LcmCache cache = null, Mediator mediator = null) + public FwWritingSystemSetupModel(IWritingSystemContainer container, ListType type, IWritingSystemManager wsManager = null, LcmCache cache = null) { switch (type) { @@ -197,7 +195,6 @@ public FwWritingSystemSetupModel(IWritingSystemContainer container, ListType typ _wsManager = wsManager; SetCurrentWsSetupModel(_currentWs); Cache = cache; - _mediator = mediator; _wsContainer = container; _projectLexiconSettings = new ProjectLexiconSettings(); // ignore on disk settings if we are testing without a cache @@ -679,7 +676,6 @@ public void Save() { WritingSystemUpdated?.Invoke(this, EventArgs.Empty); } - _mediator?.SendMessage("WritingSystemUpdated", origWs.Id); } // whether or not the WS was created or changed, its list position may have changed (LT-19788) @@ -818,7 +814,6 @@ private void RemoveWritingSystems( return; } - var deletedWsIds = new List(); foreach (var deleteCandidateId in _wsIdsToDelete) { if (Cache.ServiceLocator.WritingSystemManager.TryGet(deleteCandidateId, out var deleteCandidate) @@ -826,14 +821,8 @@ private void RemoveWritingSystems( && !_mergedWritingSystems.Keys.Contains(deleteCandidate)) { WritingSystemServices.DeleteWritingSystem(Cache, deleteCandidate); - deletedWsIds.Add(deleteCandidateId); } } - - if (deletedWsIds.Count > 0) - { - _mediator?.SendMessage("WritingSystemDeleted", deletedWsIds.ToArray()); - } } private static bool IsNew(WSListItemModel tempWs) diff --git a/Src/xWorks/DictionaryConfigurationListener.cs b/Src/xWorks/DictionaryConfigurationListener.cs index eeab21cb0d..5cd37ce7e3 100644 --- a/Src/xWorks/DictionaryConfigurationListener.cs +++ b/Src/xWorks/DictionaryConfigurationListener.cs @@ -416,35 +416,6 @@ public static void SetCurrentConfiguration(PropertyTable propertyTable, string c propertyTable.SetProperty(pubLayoutPropName, currentConfig, fUpdate); } - public bool OnWritingSystemUpdated(object param) - { - if (param == null) - return false; - - var currentConfig = GetCurrentConfiguration(m_propertyTable, true, null); - var cache = m_propertyTable.GetValue("cache"); - var configuration = new DictionaryConfigurationModel(currentConfig, cache); - DictionaryConfigurationController.UpdateWritingSystemInModel(configuration, cache); - configuration.Save(); - - return true; - } - - public bool OnWritingSystemDeleted(object param) - { - var currentConfig = GetCurrentConfiguration(m_propertyTable, true, null); - var cache = m_propertyTable.GetValue("cache"); - var configuration = new DictionaryConfigurationModel(currentConfig, cache); - if (configuration.HomographConfiguration != null && ((string[])param).Any(x => x.ToString() == configuration.HomographConfiguration.HomographWritingSystem)) - { - configuration.HomographConfiguration.HomographWritingSystem = string.Empty; - configuration.HomographConfiguration.CustomHomographNumbers = string.Empty; - configuration.Save(); - m_mediator.SendMessage("MasterRefresh", null); - } - return true; - } - private static string GetInnerConfigDir(string configFilePath) { return Path.GetFileName(Path.GetDirectoryName(configFilePath));