From ed6e7d7be8e040c0b15474c05e74f0b2a680d54c Mon Sep 17 00:00:00 2001 From: Jaex Date: Mon, 4 Feb 2019 20:09:48 +0300 Subject: [PATCH] Don't check for duplicates in Regex DataGridView, don't let adding syntax for new rows --- .../CustomUploaderSettingsForm.Designer.cs | 98 ++++++++++--------- .../Forms/CustomUploaderSettingsForm.cs | 14 +-- .../Forms/CustomUploaderSettingsForm.resx | 47 +++++++-- 3 files changed, 98 insertions(+), 61 deletions(-) diff --git a/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.Designer.cs b/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.Designer.cs index cae21ae11..75e0d8801 100644 --- a/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.Designer.cs +++ b/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.Designer.cs @@ -121,6 +121,8 @@ private void InitializeComponent() this.lblXPath = new System.Windows.Forms.Label(); this.txtXPath = new System.Windows.Forms.TextBox(); this.tpRegexParse = new System.Windows.Forms.TabPage(); + this.dgvRegex = new System.Windows.Forms.DataGridView(); + this.cRegex = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.btnRegexAddSyntax = new System.Windows.Forms.Button(); this.tpTest = new System.Windows.Forms.TabPage(); this.tcTest = new System.Windows.Forms.TabControl(); @@ -137,8 +139,7 @@ private void InitializeComponent() this.cbURLSharingService = new System.Windows.Forms.ComboBox(); this.btnURLSharingServiceTest = new System.Windows.Forms.Button(); this.ttHelpTip = new System.Windows.Forms.ToolTip(this.components); - this.dgvRegex = new System.Windows.Forms.DataGridView(); - this.cRegex = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.lblRegex = new System.Windows.Forms.Label(); this.tscResponseText.ContentPanel.SuspendLayout(); this.tscResponseText.TopToolStripPanel.SuspendLayout(); this.tscResponseText.SuspendLayout(); @@ -162,12 +163,12 @@ private void InitializeComponent() this.tpJsonParse.SuspendLayout(); this.tpXmlParse.SuspendLayout(); this.tpRegexParse.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvRegex)).BeginInit(); this.tpTest.SuspendLayout(); this.tcTest.SuspendLayout(); this.tpResult.SuspendLayout(); this.pResult.SuspendLayout(); this.tpResponseText.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgvRegex)).BeginInit(); this.SuspendLayout(); // // tscResponseText @@ -862,12 +863,56 @@ private void InitializeComponent() // // tpRegexParse // + this.tpRegexParse.Controls.Add(this.lblRegex); this.tpRegexParse.Controls.Add(this.dgvRegex); this.tpRegexParse.Controls.Add(this.btnRegexAddSyntax); resources.ApplyResources(this.tpRegexParse, "tpRegexParse"); this.tpRegexParse.Name = "tpRegexParse"; this.tpRegexParse.UseVisualStyleBackColor = true; // + // dgvRegex + // + this.dgvRegex.AllowUserToResizeRows = false; + this.dgvRegex.BackgroundColor = System.Drawing.SystemColors.Window; + this.dgvRegex.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle7.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle7.Padding = new System.Windows.Forms.Padding(0, 2, 0, 2); + dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvRegex.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7; + this.dgvRegex.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvRegex.ColumnHeadersVisible = false; + this.dgvRegex.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.cRegex}); + dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle8.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle8.Padding = new System.Windows.Forms.Padding(1, 0, 0, 0); + dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvRegex.DefaultCellStyle = dataGridViewCellStyle8; + this.dgvRegex.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter; + this.dgvRegex.GridColor = System.Drawing.SystemColors.ControlLight; + resources.ApplyResources(this.dgvRegex, "dgvRegex"); + this.dgvRegex.MultiSelect = false; + this.dgvRegex.Name = "dgvRegex"; + this.dgvRegex.RowHeadersVisible = false; + this.dgvRegex.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvRegex_CellValueChanged); + this.dgvRegex.SelectionChanged += new System.EventHandler(this.dgvRegex_SelectionChanged); + // + // cRegex + // + this.cRegex.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + resources.ApplyResources(this.cRegex, "cRegex"); + this.cRegex.Name = "cRegex"; + this.cRegex.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // // btnRegexAddSyntax // resources.ApplyResources(this.btnRegexAddSyntax, "btnRegexAddSyntax"); @@ -981,47 +1026,10 @@ private void InitializeComponent() this.ttHelpTip.UseAnimation = false; this.ttHelpTip.UseFading = false; // - // dgvRegex + // lblRegex // - this.dgvRegex.AllowUserToResizeRows = false; - this.dgvRegex.BackgroundColor = System.Drawing.SystemColors.Window; - this.dgvRegex.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle7.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle7.Padding = new System.Windows.Forms.Padding(0, 2, 0, 2); - dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dgvRegex.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7; - this.dgvRegex.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvRegex.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.cRegex}); - dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle8.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle8.Padding = new System.Windows.Forms.Padding(1, 0, 0, 0); - dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvRegex.DefaultCellStyle = dataGridViewCellStyle8; - this.dgvRegex.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter; - this.dgvRegex.GridColor = System.Drawing.SystemColors.ControlLight; - resources.ApplyResources(this.dgvRegex, "dgvRegex"); - this.dgvRegex.MultiSelect = false; - this.dgvRegex.Name = "dgvRegex"; - this.dgvRegex.RowHeadersVisible = false; - this.dgvRegex.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvRegex_CellValueChanged); - this.dgvRegex.SelectionChanged += new System.EventHandler(this.dgvRegex_SelectionChanged); - // - // cRegex - // - this.cRegex.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - resources.ApplyResources(this.cRegex, "cRegex"); - this.cRegex.Name = "cRegex"; - this.cRegex.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + resources.ApplyResources(this.lblRegex, "lblRegex"); + this.lblRegex.Name = "lblRegex"; // // CustomUploaderSettingsForm // @@ -1086,12 +1094,13 @@ private void InitializeComponent() this.tpXmlParse.ResumeLayout(false); this.tpXmlParse.PerformLayout(); this.tpRegexParse.ResumeLayout(false); + this.tpRegexParse.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvRegex)).EndInit(); this.tpTest.ResumeLayout(false); this.tcTest.ResumeLayout(false); this.tpResult.ResumeLayout(false); this.pResult.ResumeLayout(false); this.tpResponseText.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dgvRegex)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -1200,5 +1209,6 @@ private void InitializeComponent() private System.Windows.Forms.DataGridViewTextBoxColumn cArgumentsValue; private System.Windows.Forms.DataGridView dgvRegex; private System.Windows.Forms.DataGridViewTextBoxColumn cRegex; + private System.Windows.Forms.Label lblRegex; } } \ No newline at end of file diff --git a/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.cs b/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.cs index 0ddfd5939..2a59c11d4 100644 --- a/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.cs +++ b/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.cs @@ -264,7 +264,7 @@ private void CustomUploaderUpdateResponseState() { btnJsonAddSyntax.Enabled = !string.IsNullOrEmpty(txtJsonPath.Text); btnXmlAddSyntax.Enabled = !string.IsNullOrEmpty(txtXPath.Text); - btnRegexAddSyntax.Enabled = dgvRegex.SelectedCells.Count > 0; + btnRegexAddSyntax.Enabled = dgvRegex.SelectedCells.OfType().Any(x => !x.OwningRow.IsNewRow); } private void CustomUploaderRefreshNames() @@ -422,7 +422,7 @@ private CustomUploaderDestinationType CustomUploaderGetDestinationType() return destinationType; } - private void CheckDataGridView(DataGridView dgv) + private void CheckDataGridView(DataGridView dgv, bool checkDuplicate) { for (int i = dgv.Rows.Count - 1; i > -1; i--) { @@ -436,7 +436,7 @@ private void CheckDataGridView(DataGridView dgv) dgv.Rows.RemoveAt(i); } } - else + else if (checkDuplicate) { bool isDuplicate = false; @@ -1021,7 +1021,7 @@ private void dgv_EditingControlShowing(object sender, DataGridViewEditingControl private void dgvParameters_CellValueChanged(object sender, DataGridViewCellEventArgs e) { - CheckDataGridView(dgvParameters); + CheckDataGridView(dgvParameters, true); CustomUploaderItem uploader = CustomUploaderGetSelected(); if (uploader != null) uploader.Parameters = DataGridViewToDictionary(dgvParameters); @@ -1029,7 +1029,7 @@ private void dgvParameters_CellValueChanged(object sender, DataGridViewCellEvent private void dgvHeaders_CellValueChanged(object sender, DataGridViewCellEventArgs e) { - CheckDataGridView(dgvHeaders); + CheckDataGridView(dgvHeaders, true); CustomUploaderItem uploader = CustomUploaderGetSelected(); if (uploader != null) uploader.Headers = DataGridViewToDictionary(dgvHeaders); @@ -1037,7 +1037,7 @@ private void dgvHeaders_CellValueChanged(object sender, DataGridViewCellEventArg private void dgvArguments_CellValueChanged(object sender, DataGridViewCellEventArgs e) { - CheckDataGridView(dgvArguments); + CheckDataGridView(dgvArguments, true); CustomUploaderItem uploader = CustomUploaderGetSelected(); if (uploader != null) uploader.Arguments = DataGridViewToDictionary(dgvArguments); @@ -1130,7 +1130,7 @@ private void dgvRegex_SelectionChanged(object sender, EventArgs e) private void dgvRegex_CellValueChanged(object sender, DataGridViewCellEventArgs e) { - CheckDataGridView(dgvRegex); + CheckDataGridView(dgvRegex, false); CustomUploaderItem uploader = CustomUploaderGetSelected(); if (uploader != null) uploader.RegexList = DataGridViewToList(dgvRegex); diff --git a/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.resx b/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.resx index b276ea56f..cd133e13e 100644 --- a/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.resx +++ b/ShareX.UploadersLib/Forms/CustomUploaderSettingsForm.resx @@ -2031,6 +2031,33 @@ store.book[0].title 1 + + True + + + 5, 8 + + + 56, 13 + + + 8 + + + Regex list: + + + lblRegex + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tpRegexParse + + + 0 + True @@ -2038,10 +2065,10 @@ store.book[0].title Regex - 8, 8 + 8, 24 - 232, 112 + 232, 96 7 @@ -2056,7 +2083,7 @@ store.book[0].title tpRegexParse - 0 + 1 NoControl @@ -2083,7 +2110,7 @@ store.book[0].title tpRegexParse - 1 + 2 4, 22 @@ -2637,18 +2664,18 @@ store.book[0].title System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ttHelpTip - - - System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - cRegex System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ttHelpTip + + + System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + CustomUploaderSettingsForm