- Added option to enable additive paint selecting without holding shift independently from regular additive selecting

This commit is contained in:
biwa 2019-06-20 15:38:41 +02:00 committed by sphere
parent 9f597a271c
commit f8fbcbcd1f
11 changed files with 122 additions and 99 deletions

View file

@ -621,7 +621,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
if(l != highlighted)
{
//toggle selected state
if(General.Interface.ShiftState ^ BuilderPlug.Me.AdditiveSelect)
if(General.Interface.ShiftState ^ BuilderPlug.Me.AdditivePaintSelect)
l.Selected = true;
else if(General.Interface.CtrlState)
l.Selected = false;

View file

@ -1000,7 +1000,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
{
//toggle selected state
highlighted = s;
if(General.Interface.ShiftState ^ BuilderPlug.Me.AdditiveSelect)
if(General.Interface.ShiftState ^ BuilderPlug.Me.AdditivePaintSelect)
SelectSector(highlighted, true, true);
else if(General.Interface.CtrlState)
SelectSector(highlighted, false, true);
@ -1095,7 +1095,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
{
if(highlighted != null)
{
if(General.Interface.ShiftState ^ BuilderPlug.Me.AdditiveSelect)
if(General.Interface.ShiftState ^ BuilderPlug.Me.AdditivePaintSelect)
SelectSector(highlighted, true, true);
else if(General.Interface.CtrlState)
SelectSector(highlighted, false, true);

View file

@ -512,7 +512,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
if(t != highlighted)
{
//toggle selected state
if(General.Interface.ShiftState ^ BuilderPlug.Me.AdditiveSelect)
if(General.Interface.ShiftState ^ BuilderPlug.Me.AdditivePaintSelect)
t.Selected = true;
else if(General.Interface.CtrlState)
t.Selected = false;

View file

@ -437,7 +437,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
if(v != highlighted)
{
//toggle selected state
if(General.Interface.ShiftState ^ BuilderPlug.Me.AdditiveSelect)
if(General.Interface.ShiftState ^ BuilderPlug.Me.AdditivePaintSelect)
v.Selected = true;
else if(General.Interface.CtrlState)
v.Selected = false;

View file

@ -104,8 +104,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
private bool editnewthing;
private bool editnewsector;
private bool additiveselect;
private bool additivepaintselect;
private bool autoclearselection;
private bool dontusenodes;
private bool autoclearselection;
private bool visualmodeclearselection;
private string copiedtexture;
private string copiedflat;
@ -155,8 +156,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
public bool EditNewThing { get { return editnewthing; } }
public bool EditNewSector { get { return editnewsector; } }
public bool AdditiveSelect { get { return additiveselect; } }
public bool AdditivePaintSelect { get { return additivepaintselect; } }
public bool AutoClearSelection { get { return autoclearselection; } }
public bool DontUseNodes { get { return dontusenodes; } }
public bool AutoClearSelection { get { return autoclearselection; } }
public bool VisualModeClearSelection { get { return visualmodeclearselection; } }
public string CopiedTexture { get { return copiedtexture; } set { copiedtexture = value; } }
public string CopiedFlat { get { return copiedflat; } set { copiedflat = value; } }
@ -281,8 +283,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
editnewthing = General.Settings.ReadPluginSetting("editnewthing", true);
editnewsector = General.Settings.ReadPluginSetting("editnewsector", false);
additiveselect = General.Settings.ReadPluginSetting("additiveselect", false);
additivepaintselect = General.Settings.ReadPluginSetting("additivepaintselect", additiveselect); // use the same value as additiveselect by default
autoclearselection = General.Settings.ReadPluginSetting("autoclearselection", false);
dontusenodes = General.Settings.ReadPluginSetting("dontusenodes", false);
autoclearselection = General.Settings.ReadPluginSetting("autoclearselection", false);
visualmodeclearselection = General.Settings.ReadPluginSetting("visualmodeclearselection", false);
stitchrange = General.Settings.ReadPluginSetting("stitchrange", 20);
highlightrange = General.Settings.ReadPluginSetting("highlightrange", 20);

View file

@ -28,58 +28,62 @@ namespace CodeImp.DoomBuilder.BuilderModes
/// </summary>
private void InitializeComponent()
{
this.tabs = new System.Windows.Forms.TabControl();
this.taboptions = new System.Windows.Forms.TabPage();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.label15 = new System.Windows.Forms.Label();
this.label14 = new System.Windows.Forms.Label();
this.defaultfloorheight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label13 = new System.Windows.Forms.Label();
this.defaultceilheight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label12 = new System.Windows.Forms.Label();
this.defaultbrightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label11 = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.autodrawonedit = new System.Windows.Forms.CheckBox();
this.syncSelection = new System.Windows.Forms.CheckBox();
this.dontMoveGeometryOutsideBounds = new System.Windows.Forms.CheckBox();
this.autoaligntexturesoncreate = new System.Windows.Forms.CheckBox();
this.autodragonpaste = new System.Windows.Forms.CheckBox();
this.visualmodeclearselection = new System.Windows.Forms.CheckBox();
this.autoclearselection = new System.Windows.Forms.CheckBox();
this.editnewthing = new System.Windows.Forms.CheckBox();
this.editnewsector = new System.Windows.Forms.CheckBox();
this.additiveselect = new System.Windows.Forms.CheckBox();
this.dontusenodes = new System.Windows.Forms.CheckBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.splitlinedefsrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.stitchrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.highlightthingsrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.highlightrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label8 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.splitbehavior = new System.Windows.Forms.ComboBox();
this.label10 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.heightbysidedef = new System.Windows.Forms.ComboBox();
this.tabs.SuspendLayout();
this.taboptions.SuspendLayout();
this.groupBox4.SuspendLayout();
this.groupBox3.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// tabs
//
this.tabs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.tabs = new System.Windows.Forms.TabControl();
this.taboptions = new System.Windows.Forms.TabPage();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.label15 = new System.Windows.Forms.Label();
this.label14 = new System.Windows.Forms.Label();
this.defaultfloorheight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label13 = new System.Windows.Forms.Label();
this.defaultceilheight = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label12 = new System.Windows.Forms.Label();
this.defaultbrightness = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label11 = new System.Windows.Forms.Label();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.switchviewmodes = new System.Windows.Forms.CheckBox();
this.autodrawonedit = new System.Windows.Forms.CheckBox();
this.syncSelection = new System.Windows.Forms.CheckBox();
this.dontMoveGeometryOutsideBounds = new System.Windows.Forms.CheckBox();
this.autoaligntexturesoncreate = new System.Windows.Forms.CheckBox();
this.autodragonpaste = new System.Windows.Forms.CheckBox();
this.visualmodeclearselection = new System.Windows.Forms.CheckBox();
this.autoclearselection = new System.Windows.Forms.CheckBox();
this.editnewthing = new System.Windows.Forms.CheckBox();
this.editnewsector = new System.Windows.Forms.CheckBox();
this.additiveselect = new System.Windows.Forms.CheckBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.mouseselectionthreshold = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label16 = new System.Windows.Forms.Label();
this.label17 = new System.Windows.Forms.Label();
this.splitlinedefsrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.stitchrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.highlightthingsrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.highlightrange = new CodeImp.DoomBuilder.Controls.ButtonsNumericTextbox();
this.label8 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.splitbehavior = new System.Windows.Forms.ComboBox();
this.label10 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.heightbysidedef = new System.Windows.Forms.ComboBox();
this.additivepaintselect = new System.Windows.Forms.CheckBox();
this.tabs.SuspendLayout();
this.taboptions.SuspendLayout();
this.groupBox4.SuspendLayout();
this.groupBox3.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// tabs
//
this.tabs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tabs.Controls.Add(this.taboptions);
@ -570,34 +574,43 @@ namespace CodeImp.DoomBuilder.BuilderModes
"Change the ceiling height",
"Change the floor height",
"Change both floor and ceiling height"});
this.heightbysidedef.Location = new System.Drawing.Point(342, 19);
this.heightbysidedef.Name = "heightbysidedef";
this.heightbysidedef.Size = new System.Drawing.Size(309, 21);
this.heightbysidedef.TabIndex = 0;
//
// PreferencesForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(701, 473);
this.Controls.Add(this.tabs);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "PreferencesForm";
this.Opacity = 1D;
this.ShowIcon = false;
this.Text = "PreferencesForm";
this.tabs.ResumeLayout(false);
this.taboptions.ResumeLayout(false);
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.heightbysidedef.Location = new System.Drawing.Point(342, 19);
this.heightbysidedef.Name = "heightbysidedef";
this.heightbysidedef.Size = new System.Drawing.Size(309, 21);
this.heightbysidedef.TabIndex = 0;
//
// additivepaintselect
//
this.additivepaintselect.AutoSize = true;
this.additivepaintselect.Location = new System.Drawing.Point(13, 135);
this.additivepaintselect.Name = "additivepaintselect";
this.additivepaintselect.Size = new System.Drawing.Size(233, 17);
this.additivepaintselect.TabIndex = 11;
this.additivepaintselect.Text = "Additive paint selecting without holding Shift";
this.additivepaintselect.UseVisualStyleBackColor = true;
//
// PreferencesForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(709, 585);
this.Controls.Add(this.tabs);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "PreferencesForm";
this.ShowIcon = false;
this.Text = "PreferencesForm";
this.tabs.ResumeLayout(false);
this.taboptions.ResumeLayout(false);
this.groupBox4.ResumeLayout(false);
this.groupBox4.PerformLayout();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
}
@ -644,5 +657,10 @@ namespace CodeImp.DoomBuilder.BuilderModes
private System.Windows.Forms.Label label15;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.CheckBox autodrawonedit;
private System.Windows.Forms.CheckBox switchviewmodes;
private Controls.ButtonsNumericTextbox mouseselectionthreshold;
private System.Windows.Forms.Label label16;
private System.Windows.Forms.Label label17;
private System.Windows.Forms.CheckBox additivepaintselect;
}
}

View file

@ -46,8 +46,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
editnewthing.Checked = General.Settings.ReadPluginSetting("editnewthing", true);
editnewsector.Checked = General.Settings.ReadPluginSetting("editnewsector", false);
additiveselect.Checked = General.Settings.ReadPluginSetting("additiveselect", false);
additivepaintselect.Checked = General.Settings.ReadPluginSetting("additivepaintselect", additiveselect.Checked); // Use the same settign as additive select by default
stitchrange.Text = General.Settings.ReadPluginSetting("stitchrange", 20).ToString();
dontusenodes.Checked = General.Settings.ReadPluginSetting("dontusenodes", false);
stitchrange.Text = General.Settings.ReadPluginSetting("stitchrange", 20).ToString();
highlightrange.Text = General.Settings.ReadPluginSetting("highlightrange", 20).ToString();
highlightthingsrange.Text = General.Settings.ReadPluginSetting("highlightthingsrange", 10).ToString();
splitlinedefsrange.Text = General.Settings.ReadPluginSetting("splitlinedefsrange", 10).ToString();
@ -76,8 +77,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
General.Settings.WritePluginSetting("editnewthing", editnewthing.Checked);
General.Settings.WritePluginSetting("editnewsector", editnewsector.Checked);
General.Settings.WritePluginSetting("additiveselect", additiveselect.Checked);
General.Settings.WritePluginSetting("additivepaintselect", additivepaintselect.Checked);
General.Settings.WritePluginSetting("stitchrange", stitchrange.GetResult(0));
General.Settings.WritePluginSetting("dontusenodes", dontusenodes.Checked);
General.Settings.WritePluginSetting("stitchrange", stitchrange.GetResult(0));
General.Settings.WritePluginSetting("highlightrange", highlightrange.GetResult(0));
General.Settings.WritePluginSetting("highlightthingsrange", highlightthingsrange.GetResult(0));
General.Settings.WritePluginSetting("splitlinedefsrange", splitlinedefsrange.GetResult(0));

View file

@ -112,12 +112,12 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="tabs.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<metadata name="tabs.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View file

@ -543,7 +543,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// toggle selected state
if (mode.PaintSelectType == this.GetType().BaseType && mode.Highlighted != this) // using BaseType so that both floor and ceiling can be selected in one go
{
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditiveSelect)
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditivePaintSelect)
{
this.selected = true;
mode.AddSelectedObject(this);
@ -1007,7 +1007,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
mode.PaintSelectType = this.GetType().BaseType; // using BaseType so that both floor and ceiling can be selected in one go
// toggle selected state
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditiveSelect)
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditivePaintSelect)
{
this.selected = true;
mode.AddSelectedObject(this);

View file

@ -1288,7 +1288,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
if (mode.PaintSelectType == this.GetType().BaseType && mode.Highlighted != this) // using BaseType so that middle, upper, lower, etc can be selecting in one go
{
// toggle selected state
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditiveSelect)
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditivePaintSelect)
{
this.selected = true;
mode.AddSelectedObject(this);
@ -1578,7 +1578,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
mode.PaintSelectType = this.GetType().BaseType; // using BaseType so that middle, upper, lower, etc can be selecting in one go
// toggle selected state
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditiveSelect)
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditivePaintSelect)
{
this.selected = true;
mode.AddSelectedObject(this);

View file

@ -899,7 +899,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
// toggle selected state
if (mode.PaintSelectType == this.GetType() && mode.Highlighted != this)
{
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditiveSelect)
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditivePaintSelect)
{
this.selected = true;
mode.AddSelectedObject(this);
@ -929,7 +929,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
mode.PaintSelectType = this.GetType();
// toggle selected state
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditiveSelect)
if (General.Interface.ShiftState ^ BuilderPlug.Me.AdditivePaintSelect)
{
this.selected = true;
mode.AddSelectedObject(this);