From c180a154f23cc4116144c285a547cb2c0899399c Mon Sep 17 00:00:00 2001 From: Eusebiu Marcu Date: Mon, 15 Aug 2011 21:31:30 +0200 Subject: [PATCH] fix deleting rows from settings designer --- .../Project/SettingsView.Designer.cs | 3 ++- .../SettingsEditor/Project/SettingsView.cs | 22 +++++++++++++------ .../Project/SettingsViewContent.cs | 3 ++- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.Designer.cs b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.Designer.cs index a316c1af5e..e1ad3b4d7c 100644 --- a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.Designer.cs +++ b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.Designer.cs @@ -53,13 +53,14 @@ namespace ICSharpCode.SettingsEditor this.ValueColumn}); this.grid.DataSource = this.bindingSource; this.grid.Dock = System.Windows.Forms.DockStyle.Fill; - this.grid.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter; + this.grid.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnKeystroke; this.grid.Location = new System.Drawing.Point(0, 0); this.grid.Name = "grid"; this.grid.Size = new System.Drawing.Size(486, 362); this.grid.TabIndex = 0; this.grid.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.GridDataError); this.grid.SelectionChanged += new System.EventHandler(this.GridSelectionChanged); + this.grid.UserDeletingRow += new System.Windows.Forms.DataGridViewRowCancelEventHandler(this.GridUserDeletingRow); // // NameColumn // diff --git a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.cs b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.cs index cbf76cffe6..c8bf483cca 100644 --- a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.cs +++ b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsView.cs @@ -49,12 +49,8 @@ namespace ICSharpCode.SettingsEditor public SettingsView() { - // - // The InitializeComponent() call is required for Windows Forms designer support. - // InitializeComponent(); - ambience = AmbienceService.GetCurrentAmbience(); foreach (Type type in defaultAvailableTypes) { types.Add(type); @@ -77,9 +73,7 @@ namespace ICSharpCode.SettingsEditor bindingSource.ListChanged += delegate(object sender, ListChangedEventArgs e) { if (e.NewIndex >= 0 && e.NewIndex < bindingSource.Count) { if (((SettingsEntry)bindingSource[e.NewIndex]).Name != null) { - if (SettingsChanged != null) { - SettingsChanged(this, e); - } + OnSettingsChanged(e); } } }; @@ -163,5 +157,19 @@ namespace ICSharpCode.SettingsEditor } return null; } + + void GridUserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) + { + if (e.Row != null && !e.Cancel) { + OnSettingsChanged(EventArgs.Empty); + } + } + + protected virtual void OnSettingsChanged(EventArgs e) + { + if (SettingsChanged != null) { + SettingsChanged(this, e); + } + } } } diff --git a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsViewContent.cs b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsViewContent.cs index 1504f6ef2e..1b46d34833 100644 --- a/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsViewContent.cs +++ b/src/AddIns/DisplayBindings/SettingsEditor/Project/SettingsViewContent.cs @@ -31,7 +31,8 @@ namespace ICSharpCode.SettingsEditor propertyContainer.SelectedObjects = view.GetSelectedEntriesForPropertyGrid().ToArray(); }; view.SettingsChanged += delegate { - this.PrimaryFile.MakeDirty(); + if (this.PrimaryFile != null) + this.PrimaryFile.MakeDirty(); if (appConfigFile != null) appConfigFile.MakeDirty(); };