When saving textures, update the filename if type changes and vice-versa

This commit is contained in:
baldurk
2016-04-27 22:51:59 +02:00
parent 31b892b2b7
commit 32114f947f
3 changed files with 112 additions and 18 deletions
@@ -28,6 +28,7 @@
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
System.Windows.Forms.GroupBox groupBox1;
System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
@@ -71,6 +72,7 @@
this.filename = new System.Windows.Forms.TextBox();
this.colorDialog = new System.Windows.Forms.ColorDialog();
this.saveTexDialog = new System.Windows.Forms.SaveFileDialog();
this.typingTimer = new System.Windows.Forms.Timer(this.components);
tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
groupBox1 = new System.Windows.Forms.GroupBox();
flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
@@ -603,6 +605,7 @@
this.filename.Name = "filename";
this.filename.Size = new System.Drawing.Size(322, 20);
this.filename.TabIndex = 1;
this.filename.KeyUp += new System.Windows.Forms.KeyEventHandler(this.filename_KeyUp);
//
// browse
//
@@ -625,6 +628,11 @@
this.saveTexDialog.OverwritePrompt = false;
this.saveTexDialog.Title = "Save Texture As";
//
// typingTimer
//
this.typingTimer.Interval = 200;
this.typingTimer.Tick += new System.EventHandler(this.typingTimer_Tick);
//
// TextureSaveDialog
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -704,5 +712,6 @@
private System.Windows.Forms.CheckBox resolveSamples;
private System.Windows.Forms.TextBox filename;
private System.Windows.Forms.SaveFileDialog saveTexDialog;
private System.Windows.Forms.Timer typingTimer;
}
}
@@ -184,6 +184,7 @@ namespace renderdocui.Windows.Dialogs
exportAllMips.Enabled = false;
oneMip.Checked = oneSlice.Checked = true;
}
SetFilenameFromFiletype();
}
private void jpegCompression_ValueChanged(object sender, EventArgs e)
@@ -231,6 +232,49 @@ namespace renderdocui.Windows.Dialogs
}
}
private void SetFiletypeFromFilename()
{
try
{
string ext = Path.GetExtension(filename.Text).ToUpperInvariant().Substring(1); // trim . from extension
foreach (var ft in (FileType[])Enum.GetValues(typeof(FileType)))
{
if (ft.ToString().ToUpperInvariant() == ext)
{
fileFormat.SelectedIndex = (int)ft;
break;
}
}
}
catch (ArgumentException)
{
// invalid path or similar
}
}
private void SetFilenameFromFiletype()
{
try
{
string filenameExt = Path.GetExtension(filename.Text).ToLowerInvariant().Substring(1); // trim . from extension
FileType[] types = (FileType[])Enum.GetValues(typeof(FileType));
string selectedExt = types[fileFormat.SelectedIndex].ToString().ToLowerInvariant();
if (selectedExt != filenameExt)
{
filename.Text = filename.Text.Substring(0, filename.Text.Length - filenameExt.Length);
filename.Text += selectedExt;
}
}
catch (ArgumentException)
{
// invalid path or similar
}
}
private void browse_Click(object sender, EventArgs e)
{
saveTexDialog.FilterIndex = fileFormat.SelectedIndex + 1;
@@ -238,24 +282,7 @@ namespace renderdocui.Windows.Dialogs
if (res == DialogResult.OK || res == DialogResult.Yes)
{
filename.Text = saveTexDialog.FileName;
try
{
string ext = Path.GetExtension(filename.Text).ToUpperInvariant().Substring(1); // trim . from extension
foreach (var ft in (FileType[])Enum.GetValues(typeof(FileType)))
{
if (ft.ToString().ToUpperInvariant() == ext)
{
fileFormat.SelectedIndex = (int)ft;
break;
}
}
}
catch (ArgumentException)
{
// invalid path or similar
}
SetFiletypeFromFilename();
}
}
@@ -525,5 +552,18 @@ namespace renderdocui.Windows.Dialogs
sliceSelect.Enabled = oneSlice.Checked;
recurse = false;
}
private void filename_KeyUp(object sender, KeyEventArgs e)
{
typingTimer.Enabled = true;
typingTimer.Stop();
typingTimer.Start();
}
private void typingTimer_Tick(object sender, EventArgs e)
{
SetFiletypeFromFilename();
typingTimer.Enabled = false;
}
}
}
@@ -123,9 +123,27 @@
<metadata name="groupBox1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="flowLayoutPanel2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="groupBox2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="groupBox1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="flowLayoutPanel1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="flowLayoutPanel1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
@@ -138,6 +156,18 @@
<metadata name="flowLayoutPanel3.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="flowLayoutPanel3.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label4.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label5.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
@@ -150,9 +180,18 @@
<metadata name="flowLayoutPanel6.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="flowLayoutPanel6.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="flowLayoutPanel4.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="flowLayoutPanel4.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="flowLayoutPanel5.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="flowLayoutPanel5.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
@@ -162,10 +201,16 @@
<metadata name="browse.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="browse.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="colorDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="saveTexDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>124, 17</value>
</metadata>
<metadata name="typingTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>247, 17</value>
</metadata>
</root>