Index: src/Common/DelftTools.Shell.Core/Project.cs =================================================================== diff -u -r5238d4a7956b8d24318d37d9974d50b039fd95e7 -r5f9327caaaca2d654839bcdcdcf70529e8263d17 --- src/Common/DelftTools.Shell.Core/Project.cs (.../Project.cs) (revision 5238d4a7956b8d24318d37d9974d50b039fd95e7) +++ src/Common/DelftTools.Shell.Core/Project.cs (.../Project.cs) (revision 5f9327caaaca2d654839bcdcdcf70529e8263d17) @@ -1,15 +1,14 @@ using System.Collections.Generic; using DelftTools.Utils.Aop; using DelftTools.Utils.Collections.Generic; -using DelftTools.Utils.Data; namespace DelftTools.Shell.Core { /// /// Container of all data and tasks. /// [Entity(FireOnCollectionChange = false)] - public class Project : EditableObjectUnique, IObservable + public class Project : IObservable { private string name; private string description; Fisheye: Tag 5f9327caaaca2d654839bcdcdcf70529e8263d17 refers to a dead (removed) revision in file `src/Common/DelftTools.Utils/Data/EditableObjectUnique.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: src/Common/DelftTools.Utils/DelftTools.Utils.csproj =================================================================== diff -u -r8edbe5e2130c81b456385607891c6ef98928f88e -r5f9327caaaca2d654839bcdcdcf70529e8263d17 --- src/Common/DelftTools.Utils/DelftTools.Utils.csproj (.../DelftTools.Utils.csproj) (revision 8edbe5e2130c81b456385607891c6ef98928f88e) +++ src/Common/DelftTools.Utils/DelftTools.Utils.csproj (.../DelftTools.Utils.csproj) (revision 5f9327caaaca2d654839bcdcdcf70529e8263d17) @@ -182,7 +182,6 @@ - Index: src/Common/DelftTools.Utils/Editing/EditableObjectExtensions.cs =================================================================== diff -u -r8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9 -r5f9327caaaca2d654839bcdcdcf70529e8263d17 --- src/Common/DelftTools.Utils/Editing/EditableObjectExtensions.cs (.../EditableObjectExtensions.cs) (revision 8f6ae890fed8e8eae3a32f9c0498a10f82e0ddf9) +++ src/Common/DelftTools.Utils/Editing/EditableObjectExtensions.cs (.../EditableObjectExtensions.cs) (revision 5f9327caaaca2d654839bcdcdcf70529e8263d17) @@ -1,27 +1,10 @@ -using DelftTools.Utils.Data; - -namespace DelftTools.Utils.Editing +namespace DelftTools.Utils.Editing { public static class EditableObjectExtensions { public static void BeginEdit(this IEditableObject obj, string actionName) { obj.BeginEdit(new DefaultEditAction(actionName)); } - - /// - /// HACK: fix this someday! - /// For legacy reasons IsEditing can be false, even though there are nested edit actions waiting - /// on the stack. This method is to determine if all nested edit actions are actually finished. - /// - /// - /// - public static bool IsNestedEditingDone(this IEditableObject obj) - { - if (obj.IsEditing) - return false; - var editableObjectUnique = obj as EditableObjectUnique; - return editableObjectUnique == null || editableObjectUnique.IsNestedEditingDone(); - } } } \ No newline at end of file Index: src/DeltaShell/DeltaShell.Gui/DeltaShellGui.cs =================================================================== diff -u -r8edbe5e2130c81b456385607891c6ef98928f88e -r5f9327caaaca2d654839bcdcdcf70529e8263d17 --- src/DeltaShell/DeltaShell.Gui/DeltaShellGui.cs (.../DeltaShellGui.cs) (revision 8edbe5e2130c81b456385607891c6ef98928f88e) +++ src/DeltaShell/DeltaShell.Gui/DeltaShellGui.cs (.../DeltaShellGui.cs) (revision 5f9327caaaca2d654839bcdcdcf70529e8263d17) @@ -116,7 +116,6 @@ { if (application != null) { - UnsubscribeProjectEvents(); Application.ProjectClosing -= ApplicationProjectClosing; Application.ProjectOpened -= ApplicationProjectOpened; Application.ProjectOpening -= ApplicationProjectOpening; @@ -656,75 +655,16 @@ { Application.Project.IsChanged = false; - SubscribeProjectEvents(); ResumeUI(); } private void ApplicationProjectClosing(Project project) { - UnsubscribeProjectEvents(); SuspendUI(); ClonableToolStripMenuItem.ClearCache(); } - private void SubscribeProjectEvents() - { - var propertyChanged = (INotifyPropertyChanged)Application.Project; - propertyChanged.PropertyChanged += ApplicationProjectPropertyChanged; - - var collectionChanged = (INotifyCollectionChange)Application.Project; - } - - private void UnsubscribeProjectEvents() - { - if(Application.Project == null) - { - return; - } - - var propertyChanged = (INotifyPropertyChanged) Application.Project; - propertyChanged.PropertyChanged -= ApplicationProjectPropertyChanged; - - var collectionChanged = (INotifyCollectionChange)Application.Project; - } - - private bool viewNamesDirty = false; - - private void ApplicationProjectPropertyChanged(object sender, PropertyChangedEventArgs e) - { - if (viewNamesDirty && sender is Project && e.PropertyName == "IsEditing" && !Application.Project.IsEditing) - { - OnProjectItemNameChanged(null); //sender is ignored anyway - viewNamesDirty = false; - return; - } - - if (e.PropertyName != "Name") - { - return; - } - - if (!Application.IsActivityRunning()) // avoid calls to Windows.Forms thread - { - if (Application.Project != null && Application.Project.IsEditing) - { - viewNamesDirty = true; - return; - } - OnProjectItemNameChanged(sender); - } - } - - [InvokeRequired] - private void OnProjectItemNameChanged(object sender) - { - foreach (var documentView in DocumentViews.AllViews) - { - UpdateViewName(documentView); - } - } - // Sets the tooltip for given view, assuming that ProjectExplorer is not null. private void SetToolTipForView(IView view) {