Edit forms: current selection is no longer cleared when the edit is canceled.

Updated documentation.
This commit is contained in:
MaxED 2013-11-29 12:24:47 +00:00
parent 898c8e6166
commit c4130499fc
16 changed files with 52 additions and 88 deletions

View file

@ -931,12 +931,6 @@
<td>Repeats the action(s) performed before Undo was used.</td>
</tr>
<tr>
<td><a name="setdefaulttextures" id="setdefaulttextures"></a>Set Default Textures</td>
<td><div align="center"></div></td>
<td><div align="center"></div></td>
<td>Opens the window, which lets user to change textures, which will be used in drawing operations.</td>
</tr>
<tr>
<td><a href="features/classic_modes/mode_snapelements.html">Snap Selected Map Elements to Grid</a></td>
<td><div align="center"></div></td>
<td><div align="center"></div></td>

View file

@ -23,8 +23,8 @@
<div id="contents">
<p><strong>Q:</strong> I'm getting a ton of &quot;<strong>Unable to find the DECORATE class '[some actor]' to inherit from, while parsing '[some other actor]:[DoomEdNum]'</strong>&quot; warnings. What's wrong?<br />
<strong>A:</strong> This happens when a DECORATE actor is inherited from another actor, which is not defined in game configuration and is not defined in any included resources. To fix this, add "<strong>(g)zdoom.pk3</strong>" as a map resource. Don't forget to check "Exclude from testing parameters" chekbox while adding it, otherwise (G)ZDoom won't load your map. &quot;<strong>(g)zdoom.pk3</strong>&quot; can be found in (G)ZDoom folder. </p>
<p><strong>Q:</strong> I'm getting a ton of &quot;<strong>Light declaration not found for light '[light name]' ('[source]', line [n])</strong>&quot; warnings. What's wrong?<br />
<strong>A:</strong> GZDoom Builder doesn't include GZDoom's GLDEFS lights definitions. To get rid of these errors, add &quot;<strong>lights.pk3</strong>&quot; as a map resource. Don't forget to check &quot;Exclude from testing parameters&quot; chekbox while adding it, otherwise GZDoom won't load your map. &quot;<strong>lights.pk3</strong>&quot; can be found in GZDoom folder. </p>
<p><strong>Q: </strong>Dynamic lights defined in GLDEFS are not rendered in Visual mode / I'm getting a ton of &quot;<strong>Light declaration not found for light '[light name]' ('[source]', line [n])</strong>&quot; warnings. What's wrong?<br />
<strong>A:</strong> GZDoom Builder doesn't include GZDoom's GLDEFS lights definitions. To get rid of these errors, add &quot;<strong>lights.pk3</strong>&quot; as a map resource. Don't forget to check &quot;<strong>Exclude from testing parameters</strong>&quot; chekbox while adding it, otherwise GZDoom won't load your map. &quot;<strong>lights.pk3</strong>&quot; can be found in GZDoom folder. </p>
<p><strong>Q:</strong> When I create a new map, I see only Doom-related game configurations. Where are configurations for other games?<br />
<strong>A:</strong> Copy &quot;<span class="style1">[EngineName]_[Game][MapType].cfg</span>&quot; and &quot;<span class="style1">Includes</span>&quot; folder from &quot;<span class="style1">[GZDB]\Configurations\Configs for other games\[Game]</span>&quot; to &quot;<span class="style1">[GZDB]\Configurations\</span>&quot;.<br />
If you are using Zandronum, you'll also need to copy all files from &quot;<span class="style1">[GZDB]\Configurations\Configs for other games\Zandronum Includes\</span>&quot; to the main &quot;<span class="style1">Includes</span>&quot; folder (&quot;<span class="style1">[GZDB]\Configurations\Includes\</span>&quot;) .</p>

View file

@ -15,7 +15,7 @@
<div id="contents">
<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td valign="top">The Image browser can display the directory structure of a Folder, PK3 and PK7 resource, allowing you to group and find textures easier.<br />
<td valign="top">The Image browser displays the directory structure of a Folder, PK3 and PK7 resource, allowing you to group and find textures easier.<br />
You can filter textures by texture size. If the current game configuration supports mixed textures and flats, you can filter textures by image type using this drop down:<br />
<img src="texture_types.jpg" alt=""/><br />
<br />

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View file

@ -103,10 +103,11 @@
<li><a href="classic_modes/mode_drawbridge.html">Bridge mode</a>.</li>
<li><a href="classic_modes/mode_snapelements.html">Snap map elements mode</a>.</li>
<li><span class="style5">[new]</span> You can place things on top of selected vertices in Vertices and Linedefs modes and inside of selected sectors in Sectors mode useing &quot;<a href="../actions.html#placethings">Place Things</a>&quot; action.</li>
<li><span class="style5">[new]</span> You can set, which textures to use when drawing new geometry using &quot;<strong><a href="../actions.html#setdefaulttextures">Set Default Textures</a></strong>&quot; action, available in <strong>Edit</strong> menu (by default, the editor uses textures from closest sector when drawing a new one).
<li><span class="style5">[new]</span> You can override default sector properties, which are used to create new geometry, using &quot;<strong>Draw Settings</strong>&quot; panel (by default, when the new sector overlaps or touches existing sector, the editor uses textures, brighntess and floor/ceiling heights from that sector when drawing the new one).
<input class="spoilerbutton" type="button" onclick="ToggleSpoiler(this);" href="javascript:void(0);" value="Show image"/>
<div style="display: none; margin: 0px; padding: 6px; border: 1px inset;"> <img src="classic_modes/setdefaulttextures.jpg" alt="" /></div>
<div style="display: none; margin: 0px; padding: 6px; border: 1px inset;"> <img src="classic_modes/draw_settings.jpg" alt="" /></div>
</li>
<li><span class="style5">[new]</span> You can change default sector brightness and floor/ceiling height (<strong>Preferences -&gt; Editing -&gt; Default sector settings</strong>). These settings are used when the new sector doesn't touch or overlap already existing sectors.</li>
<li><span class="style5">[new]</span> 3D floor indication (color can be changed in <strong>Preferences -&gt; Appearance -&gt; 3D Floors</strong>, the setting can be disabled in <a href="../preferences.html#markextrafloors">Preferences</a>).
<input class="spoilerbutton" type="button" onclick="ToggleSpoiler(this);" href="javascript:void(0);" value="Show image"/>
<div style="display: none; margin: 0px; padding: 6px; border: 1px inset;"> <img src="classic_modes/3dfloor_marks.jpg" alt="" /></div>

View file

@ -27,7 +27,7 @@
<p><strong>MODELDEF support:</strong> all relevant MODELDEF properties and flags are supported. Sprite translations are not supported.<br />
<strong>GLDEFS support:</strong>
only dynamic light definitions are currently supported. Brightmaps and glowing flats support may be added in the future.<br />
You can reload GLDEFS and MODELDEF by using &quot;<a href="actions.html#gldefs"><strong>Reload GLDEFS</strong></a>&quot; and &quot;<a href="actions.html#modeldef"><strong>Reload MODELDEF</strong></a>&quot; actions.
You can reload GLDEFS and MODELDEF by using &quot;<a href="actions.html#gldefs"><strong>Reload GLDEFS</strong></a>&quot; and &quot;<a href="actions.html#modeldef"><strong>Reload MODELDEF</strong></a>&quot; actions.<br />To enable GZDoom's built-in GLDEFS dynamic light definitions, you need to add "<strong>lights.pk3</strong>" as a map resource. Don't forget to check "<strong>Exclude from testing parameters</strong>" chekbox while adding it, otherwise GZDoom won't load your map. "<strong>lights.pk3</strong>" can be found in GZDoom folder.
<p><b>If you are creating maps for Doom or Doom 2, you probably don't need to read this, since required information is already added for those games.</b><br />
<br />
<b>To load models or dynamic lights defined in GLDEFS for things defined in configuration files:</b><br />

View file

@ -40,6 +40,7 @@ namespace CodeImp.DoomBuilder
#region ================== Properties
public bool HasErrors { get { return (errors.Count > 0); } }
public int ErrorsCount { get { return errors.Count; } } //mxd
public bool HasChanged { get { return changed; } set { changed = value; } }
public bool IsErrorAdded { get { return erroradded; } set { erroradded = value; } }
public bool IsWarningAdded { get { return warningadded; } set { warningadded = value; } }

View file

@ -1854,7 +1854,7 @@ namespace CodeImp.DoomBuilder.Windows
this.statuslabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.statuslabel.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.statuslabel.Name = "statuslabel";
this.statuslabel.Size = new System.Drawing.Size(340, 18);
this.statuslabel.Size = new System.Drawing.Size(309, 18);
this.statuslabel.Spring = true;
this.statuslabel.Text = "Initializing user interface...";
this.statuslabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -2094,6 +2094,7 @@ namespace CodeImp.DoomBuilder.Windows
this.xposlabel.Name = "xposlabel";
this.xposlabel.Size = new System.Drawing.Size(50, 18);
this.xposlabel.Text = "0";
this.xposlabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.xposlabel.ToolTipText = "Current X, Y coordinates on map";
//
// yposlabel
@ -2102,6 +2103,7 @@ namespace CodeImp.DoomBuilder.Windows
this.yposlabel.Name = "yposlabel";
this.yposlabel.Size = new System.Drawing.Size(50, 18);
this.yposlabel.Text = "0";
this.yposlabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.yposlabel.ToolTipText = "Current X, Y coordinates on map";
//
// warnsLabel

View file

@ -166,7 +166,6 @@ namespace CodeImp.DoomBuilder.Windows
private int lockupdatecount;
//mxd
private int warningsCount;
private System.Timers.Timer blinkTimer;
#endregion
@ -244,6 +243,11 @@ namespace CodeImp.DoomBuilder.Windows
// Keep last position and size
lastposition = this.Location;
lastsize = this.Size;
//mxd
blinkTimer = new System.Timers.Timer();
blinkTimer.Interval = 500;
blinkTimer.Elapsed += blinkTimer_Elapsed;
}
#endregion
@ -572,6 +576,7 @@ namespace CodeImp.DoomBuilder.Windows
// Stop timers
statusflasher.Stop();
statusresetter.Stop();
blinkTimer.Stop(); //mxd
// Stop exclusive mode, if any is active
StopExclusiveMouseInput();
@ -2592,7 +2597,7 @@ namespace CodeImp.DoomBuilder.Windows
errform.ShowDialog(this);
errform.Dispose();
//mxd
SetWarningsCount(0, false);
SetWarningsCount(General.ErrorLogger.ErrorsCount, false);
}
// Game Configuration action
@ -3088,41 +3093,27 @@ namespace CodeImp.DoomBuilder.Windows
//mxd. Warnings panel
internal void SetWarningsCount(int count, bool blink) {
warningsCount = count;
if(warningsCount > 0) {
if(!warnsLabel.Font.Bold){
warnsLabel.Font = new Font(warnsLabel.Font, FontStyle.Bold);
warnsLabel.Image = Resources.Warning;
}
if(count > 0) {
if (warnsLabel.Image != Resources.Warning) warnsLabel.Image = Resources.Warning;
} else {
warnsLabel.Font = new Font(warnsLabel.Font, FontStyle.Regular);
warnsLabel.Image = Resources.WarningOff;
warnsLabel.BackColor = SystemColors.Control;
}
warnsLabel.Text = warningsCount.ToString();
warnsLabel.Text = count.ToString();
//start annoying blinking!
if(blink && blinkTimer == null) {
blinkTimer = new System.Timers.Timer();
blinkTimer.Interval = 500;
blinkTimer.Elapsed += new System.Timers.ElapsedEventHandler(blinkTimer_Elapsed);
blinkTimer.Enabled = true;
if (blink) {
if(!blinkTimer.Enabled) blinkTimer.Start();
} else {
blinkTimer.Stop();
warnsLabel.BackColor = SystemColors.Control;
}
}
//mxd. Bliks warnings indicator
private void blink() {
if(warnsLabel.BackColor == Color.Red) {
warnsLabel.Font = new Font(warnsLabel.Font, FontStyle.Regular);
warnsLabel.Image = Resources.WarningOff;
warnsLabel.BackColor = SystemColors.Control;
} else {
warnsLabel.Font = new Font(warnsLabel.Font, FontStyle.Bold);
warnsLabel.Image = Resources.Warning;
warnsLabel.BackColor = Color.Red;
}
warnsLabel.BackColor = (warnsLabel.BackColor == Color.Red ? SystemColors.Control : Color.Red);
}
//mxd
@ -3132,20 +3123,10 @@ namespace CodeImp.DoomBuilder.Windows
//mxd
private void blinkTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
if(warningsCount > 0) {
if (!this.Disposing && blinkTimer != null) {
try {
this.Invoke(new CallBlink(blink));
} catch(ObjectDisposedException) { } //la-la-la. We don't care.
}
} else {
//get rid of timer
blinkTimer.Stop();
blinkTimer.Elapsed -= blinkTimer_Elapsed;
blinkTimer.Dispose();
blinkTimer = null;
}
}
#endregion

View file

@ -201,30 +201,6 @@
<metadata name="sectorinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="heightpanel1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="vertexinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="labelcollapsedinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="buttontoggleinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="modename.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="linedefinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="thinginfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="sectorinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="redrawtimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>433, 17</value>
</metadata>

View file

@ -468,11 +468,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
if(General.Interface.IsActiveWindow)
{
// Show line edit dialog
General.Interface.ShowEditLinedefs(selected);
DialogResult result = General.Interface.ShowEditLinedefs(selected);
General.Map.Map.Update();
// When a single line was selected, deselect it now
if(selected.Count == 1) General.Map.Map.ClearSelectedLinedefs();
if (selected.Count == 1) {
General.Map.Map.ClearSelectedLinedefs();
} else if(result == DialogResult.Cancel) { //mxd. Restore selection...
foreach (Linedef l in selected) l.Selected = true;
}
// Update entire display
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd

View file

@ -717,18 +717,19 @@ namespace CodeImp.DoomBuilder.BuilderModes
{
//mxd. Show realtime vertex edit dialog
General.Interface.OnEditFormValuesChanged += new EventHandler(sectorEditForm_OnValuesChanged);
General.Interface.ShowEditSectors(selected);
DialogResult result = General.Interface.ShowEditSectors(selected);
General.Interface.OnEditFormValuesChanged -= sectorEditForm_OnValuesChanged;
General.Map.Renderer2D.UpdateExtraFloorFlag(); //mxd
// When a single sector was selected, deselect it now
if(selected.Count == 1)
{
if (selected.Count == 1) {
General.Map.Map.ClearSelectedSectors();
General.Map.Map.ClearSelectedLinedefs();
General.Interface.RedrawDisplay();
} else if(result == DialogResult.Cancel) { //mxd. Restore selection...
foreach (Sector s in selected) SelectSector(s, true, true);
}
General.Interface.RedrawDisplay();
}
}

View file

@ -411,14 +411,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
{
//mxd. Show realtime thing edit dialog
General.Interface.OnEditFormValuesChanged += new EventHandler(thingEditForm_OnValuesChanged);
General.Interface.ShowEditThings(selected);
DialogResult result = General.Interface.ShowEditThings(selected);
General.Interface.OnEditFormValuesChanged -= thingEditForm_OnValuesChanged;
// When a single thing was selected, deselect it now
if (selected.Count == 1) {
General.Map.Map.ClearSelectedThings();
General.Interface.RedrawDisplay();
} else if(result == DialogResult.Cancel) { //mxd. Restore selection...
foreach (Thing t in selected) t.Selected = true;
}
General.Interface.RedrawDisplay();
}
}
}

View file

@ -406,14 +406,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
{
//mxd. Show realtime vertex edit dialog
General.Interface.OnEditFormValuesChanged += new EventHandler(vertexEditForm_OnValuesChanged);
General.Interface.ShowEditVertices(selected);
DialogResult result = General.Interface.ShowEditVertices(selected);
General.Interface.OnEditFormValuesChanged -= vertexEditForm_OnValuesChanged;
// When a single vertex was selected, deselect it now
if (selected.Count == 1) {
General.Map.Map.ClearSelectedVertices();
General.Interface.RedrawDisplay();
} else if(result == DialogResult.Cancel) { //mxd. Restore selection...
foreach (Vertex v in selected) v.Selected = true;
}
General.Interface.RedrawDisplay();
}
}

View file

@ -119,7 +119,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
this.groupBox4.Size = new System.Drawing.Size(272, 130);
this.groupBox4.TabIndex = 19;
this.groupBox4.TabStop = false;
this.groupBox4.Text = " Default sector values";
this.groupBox4.Text = " Default sector settings";
//
// label15
//