diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs index bad31cd0d2..4ade349c02 100644 --- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs +++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs @@ -110,6 +110,9 @@ namespace ResourceEditor public bool EnableCut { get { + if (resourceEditor.ResourceList.IsEditing || !resourceEditor.ResourceList.Focused) { + return false; + } return resourceEditor.ResourceList.SelectedItems.Count > 0; } } @@ -117,6 +120,9 @@ namespace ResourceEditor public bool EnableCopy { get { + if (resourceEditor.ResourceList.IsEditing || !resourceEditor.ResourceList.Focused) { + return false; + } return resourceEditor.ResourceList.SelectedItems.Count > 0; } } @@ -124,6 +130,9 @@ namespace ResourceEditor public bool EnablePaste { get { + if (resourceEditor.ResourceList.IsEditing || !resourceEditor.ResourceList.Focused) { + return false; + } return true; } } @@ -131,6 +140,9 @@ namespace ResourceEditor public bool EnableDelete { get { + if (resourceEditor.ResourceList.IsEditing || !resourceEditor.ResourceList.Focused) { + return false; + } return resourceEditor.ResourceList.SelectedItems.Count > 0; } } @@ -138,6 +150,9 @@ namespace ResourceEditor public bool EnableSelectAll { get { + if (resourceEditor.ResourceList.IsEditing || !resourceEditor.ResourceList.Focused) { + return false; + } return true; } } diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs index a858739e0d..05d3df2320 100644 --- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs +++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ResourceEdit/ResourceList.cs @@ -39,6 +39,7 @@ namespace ResourceEditor UndoStack undoStack = null; bool writeProtected = false; + int editListViewItemIndex = -1; public event EventHandler Changed; @@ -73,12 +74,16 @@ namespace ResourceEditor } } + public bool IsEditing { + get { + return editListViewItemIndex != -1; + } + } + public ResourceList(ResourceEditorControl editor) { undoStack = new UndoStack(); - - - + name.Text = ResourceService.GetString("Global.Name"); name.Width = 250; @@ -110,9 +115,6 @@ namespace ResourceEditor images.Images.Add(ResourceService.GetIcon("Icons.16x16.ResourceEditor.obj")); SmallImageList = images; - AfterLabelEdit += new LabelEditEventHandler(afterLabelEdit); - - ContextMenuStrip = MenuService.CreateContextMenu(editor, "/SharpDevelop/ResourceEditor/ResourceList/ContextMenu"); } @@ -197,8 +199,27 @@ namespace ResourceEditor } } - void afterLabelEdit(object sender, LabelEditEventArgs e) + public void InitializeListView() + { + BeginUpdate(); + Items.Clear(); + + foreach (KeyValuePair entry in resources) { + ResourceItem item = entry.Value; + + string tmp = item.ToString(); + string type = item.ResourceValue.GetType().FullName; + + ListViewItem lv = new ListViewItem(new String[] {item.Name, type, tmp}, item.ImageIndex); + Items.Add(lv); + } + EndUpdate(); + } + + protected override void OnAfterLabelEdit(LabelEditEventArgs e) { + editListViewItemIndex = -1; + if (writeProtected) { e.CancelEdit = true; return; @@ -226,21 +247,12 @@ namespace ResourceEditor OnChanged(); } - public void InitializeListView() + protected override void OnBeforeLabelEdit(LabelEditEventArgs e) { - BeginUpdate(); - Items.Clear(); - - foreach (KeyValuePair entry in resources) { - ResourceItem item = entry.Value; - - string tmp = item.ToString(); - string type = item.ResourceValue.GetType().FullName; - - ListViewItem lv = new ListViewItem(new String[] {item.Name, type, tmp}, item.ImageIndex); - Items.Add(lv); + base.OnBeforeLabelEdit(e); + if (!e.CancelEdit) { + editListViewItemIndex = e.Item; } - EndUpdate(); } } }