diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index e46cafb1..e153e7fa 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -839,7 +839,7 @@ namespace VEPROMS } private void tv_SectionShouldClose(object sender, vlnTreeSectionInfoEventArgs args) { - if (!args.MySectionInfo.IsStepSection) tc.CloseWordItem(args.MySectionInfo); + if (!args.MySectionInfo.IsStepSection) tc.CloseWordItem(args.MySectionInfo,args.IsDeleting); } private void tv_WordSectionDeleted(object sender, WordSectionEventArgs args) { diff --git a/PROMS/Volian.Controls.Library/DSOTabPanel.cs b/PROMS/Volian.Controls.Library/DSOTabPanel.cs index d377cfae..63d8f321 100644 --- a/PROMS/Volian.Controls.Library/DSOTabPanel.cs +++ b/PROMS/Volian.Controls.Library/DSOTabPanel.cs @@ -434,6 +434,12 @@ namespace Volian.Controls.Library } return true; } + private bool _IsBeingDeleted = false; + public bool IsBeingDeleted + { + get { return _IsBeingDeleted; } + set { _IsBeingDeleted = value; } + } /// /// Cleans-up the DSO Framer window /// @@ -455,7 +461,8 @@ namespace Volian.Controls.Library { if (_MyDSOFramer != null) { - SaveDirty(); + if(!IsBeingDeleted) + SaveDirty(); _MyDSOFramer.Close(); Controls.Remove(_MyDSOFramer); components.Remove(_MyDSOFramer); diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index 8c41c077..bae8886d 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -404,6 +404,10 @@ namespace Volian.Controls.Library } } public void CloseWordItem(ItemInfo myItemInfo) + { + CloseWordItem(myItemInfo, false); + } + public void CloseWordItem(ItemInfo myItemInfo, bool isBeingDeleted) { CleanUpClosedItems(); string key = "Doc - " + myItemInfo.MyContent.MyEntry.MyDocument.DocID.ToString(); @@ -413,6 +417,7 @@ namespace Volian.Controls.Library myTabItem = _MyDisplayTabItems[key]; if (myTabItem.MyDSOTabPanel != null) { + myTabItem.MyDSOTabPanel.IsBeingDeleted = isBeingDeleted; CloseTabItem(myTabItem); } } diff --git a/PROMS/Volian.Controls.Library/vlnTreeView.cs b/PROMS/Volian.Controls.Library/vlnTreeView.cs index 1f3d7d46..11709497 100644 --- a/PROMS/Volian.Controls.Library/vlnTreeView.cs +++ b/PROMS/Volian.Controls.Library/vlnTreeView.cs @@ -27,6 +27,12 @@ namespace Volian.Controls.Library public delegate void WordSectionDeletedEvent(object sender, WordSectionEventArgs args); public partial class vlnTreeSectionInfoEventArgs { + private bool _IsDeleting = false; + public bool IsDeleting + { + get { return _IsDeleting; } + set { _IsDeleting = value; } + } private SectionInfo _MySectionInfo; public SectionInfo MySectionInfo { @@ -37,6 +43,11 @@ namespace Volian.Controls.Library { _MySectionInfo = mySectionInfo; } + public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo,bool isDeleting) + { + _MySectionInfo = mySectionInfo; + _IsDeleting = isDeleting; + } } public partial class vlnTreeEventArgs { @@ -1064,7 +1075,7 @@ namespace Volian.Controls.Library } else if (_LastSectionInfo != null) { - OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo)); + OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo,true)); // always return false because an event gets fired to delete tree nodes. if (!DeleteItemInfoAndChildren(_LastSectionInfo)) {