User is now prompted to save, per case 268.

Signed-off-by: Melissa Avery-Weir <melissa.avery@wellsfargo.com>
This commit is contained in:
Melissa Avery-Weir
2011-09-27 12:28:03 -04:00
parent cd047b1085
commit 66cc12356a
3 changed files with 142 additions and 51 deletions

View File

@@ -1,4 +1,5 @@
namespace d20_SRD_Spell_Lists { using System.ComponentModel;
namespace d20_SRD_Spell_Lists {
partial class FrmMain { partial class FrmMain {
/// <summary> /// <summary>
/// Required designer variable. /// Required designer variable.
@@ -23,9 +24,9 @@
/// the contents of this method with the code editor. /// the contents of this method with the code editor.
/// </summary> /// </summary>
private void InitializeComponent() { private void InitializeComponent() {
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.lblExtra9 = new System.Windows.Forms.Label(); this.lblExtra9 = new System.Windows.Forms.Label();
this.lblExtra8 = new System.Windows.Forms.Label(); this.lblExtra8 = new System.Windows.Forms.Label();
@@ -622,6 +623,7 @@
this.newToolStripButton.Name = "newToolStripButton"; this.newToolStripButton.Name = "newToolStripButton";
this.newToolStripButton.Size = new System.Drawing.Size(23, 22); this.newToolStripButton.Size = new System.Drawing.Size(23, 22);
this.newToolStripButton.Text = "&New"; this.newToolStripButton.Text = "&New";
this.newToolStripButton.Click += new System.EventHandler(this.newToolStripButton_Click);
// //
// openToolStripButton // openToolStripButton
// //
@@ -780,10 +782,10 @@
// editColumn // editColumn
// //
this.editColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; this.editColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.White; dataGridViewCellStyle3.BackColor = System.Drawing.Color.White;
dataGridViewCellStyle1.NullValue = ((object)(resources.GetObject("dataGridViewCellStyle1.NullValue"))); dataGridViewCellStyle3.NullValue = ((object)(resources.GetObject("dataGridViewCellStyle3.NullValue")));
this.editColumn.DefaultCellStyle = dataGridViewCellStyle1; this.editColumn.DefaultCellStyle = dataGridViewCellStyle3;
this.editColumn.HeaderText = ""; this.editColumn.HeaderText = "";
this.editColumn.Image = global::d20_SRD_Spell_Lists.Properties.Resources.pencil; this.editColumn.Image = global::d20_SRD_Spell_Lists.Properties.Resources.pencil;
this.editColumn.Name = "editColumn"; this.editColumn.Name = "editColumn";
@@ -846,10 +848,10 @@
// dataGridViewImageColumn1 // dataGridViewImageColumn1
// //
this.dataGridViewImageColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; this.dataGridViewImageColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells;
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle2.BackColor = System.Drawing.Color.Gray; dataGridViewCellStyle4.BackColor = System.Drawing.Color.Gray;
dataGridViewCellStyle2.NullValue = ((object)(resources.GetObject("dataGridViewCellStyle2.NullValue"))); dataGridViewCellStyle4.NullValue = ((object)(resources.GetObject("dataGridViewCellStyle4.NullValue")));
this.dataGridViewImageColumn1.DefaultCellStyle = dataGridViewCellStyle2; this.dataGridViewImageColumn1.DefaultCellStyle = dataGridViewCellStyle4;
this.dataGridViewImageColumn1.HeaderText = ""; this.dataGridViewImageColumn1.HeaderText = "";
this.dataGridViewImageColumn1.Image = global::d20_SRD_Spell_Lists.Properties.Resources.edit_16; this.dataGridViewImageColumn1.Image = global::d20_SRD_Spell_Lists.Properties.Resources.edit_16;
this.dataGridViewImageColumn1.Name = "dataGridViewImageColumn1"; this.dataGridViewImageColumn1.Name = "dataGridViewImageColumn1";
@@ -875,6 +877,7 @@
this.Controls.Add(this.mainToolStrip); this.Controls.Add(this.mainToolStrip);
this.Name = "FrmMain"; this.Name = "FrmMain";
this.Text = "D&D 3.5 SRD Spell Lists"; this.Text = "D&D 3.5 SRD Spell Lists";
this.Closing += new CancelEventHandler(this.FrmMain_Closing);
this.tableLayoutPanel1.ResumeLayout(false); this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout(); this.tableLayoutPanel1.PerformLayout();
this.groupBox1.ResumeLayout(false); this.groupBox1.ResumeLayout(false);

View File

@@ -18,6 +18,7 @@ namespace d20_SRD_Spell_Lists {
private Character character; private Character character;
private string characterFile; private string characterFile;
private bool loadingCharacter; private bool loadingCharacter;
private bool dirtyCharacter;
private PrintingDataGridViewProvider printProvider; private PrintingDataGridViewProvider printProvider;
public FrmMain() { public FrmMain() {
@@ -27,6 +28,7 @@ namespace d20_SRD_Spell_Lists {
spells = new MasterSpellSet(); spells = new MasterSpellSet();
spellsDataGridView.AutoGenerateColumns = false; spellsDataGridView.AutoGenerateColumns = false;
loadingCharacter = false; loadingCharacter = false;
dirtyCharacter = false;
setupAttributes(); setupAttributes();
setupClassList(); setupClassList();
@@ -87,6 +89,8 @@ namespace d20_SRD_Spell_Lists {
offerNewSpells(); offerNewSpells();
} }
} }
dirtyCharacter = true;
} }
private void offerNewSpells() { private void offerNewSpells() {
@@ -169,14 +173,33 @@ namespace d20_SRD_Spell_Lists {
XmlSerializer serializer = new XmlSerializer(typeof(Character)); XmlSerializer serializer = new XmlSerializer(typeof(Character));
using (TextWriter writer = new StreamWriter(characterFile)) { using (TextWriter writer = new StreamWriter(characterFile)) {
serializer.Serialize(writer, character); serializer.Serialize(writer, character);
dirtyCharacter = false;
} }
} }
private void txtCharacter_TextChanged(object sender, EventArgs e) { private void txtCharacter_TextChanged(object sender, EventArgs e) {
character.Name = txtCharacter.Text; character.Name = txtCharacter.Text;
dirtyCharacter = true;
}
private bool promptSaveAndContinue() {
if (dirtyCharacter) {
string msg = "Do you want to save your current character?";
string title = "Save?";
var result = MessageBox.Show(msg, title, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == System.Windows.Forms.DialogResult.Yes) {
saveToolStripButton.PerformClick();
return true;
} else if (result == System.Windows.Forms.DialogResult.Cancel) {
return false;
}
}
return true;
} }
private void openToolStripButton_Click(object sender, EventArgs e) { private void openToolStripButton_Click(object sender, EventArgs e) {
if (promptSaveAndContinue()) {
OpenFileDialog ofd = new OpenFileDialog(); OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Character files (*.xml)|*.xml|All files (*.*)|*.*"; ofd.Filter = "Character files (*.xml)|*.xml|All files (*.*)|*.*";
ofd.FilterIndex = 1; ofd.FilterIndex = 1;
@@ -192,6 +215,8 @@ namespace d20_SRD_Spell_Lists {
MessageBox.Show("Error: Could not read the character file. Original error: " + ex.Message); MessageBox.Show("Error: Could not read the character file. Original error: " + ex.Message);
} finally { } finally {
loadingCharacter = false; loadingCharacter = false;
dirtyCharacter = false;
}
} }
} }
} }
@@ -217,6 +242,7 @@ namespace d20_SRD_Spell_Lists {
character.Spells.Add(addForm.spell); character.Spells.Add(addForm.spell);
character.Spells.Sort(new SpellInequalityComparer()); character.Spells.Sort(new SpellInequalityComparer());
refreshSpellList(); refreshSpellList();
dirtyCharacter = true;
} }
} }
@@ -228,6 +254,7 @@ namespace d20_SRD_Spell_Lists {
if (result == System.Windows.Forms.DialogResult.OK) { if (result == System.Windows.Forms.DialogResult.OK) {
character.Spells[character.Spells.IndexOf(editItem)] = editForm.spell; character.Spells[character.Spells.IndexOf(editItem)] = editForm.spell;
refreshSpellList(); refreshSpellList();
dirtyCharacter = true;
} }
} else if (isDeleteButtonCell(e)) { } else if (isDeleteButtonCell(e)) {
Spell deleteItem = (Spell)spellsDataGridView.Rows[e.RowIndex].DataBoundItem; Spell deleteItem = (Spell)spellsDataGridView.Rows[e.RowIndex].DataBoundItem;
@@ -237,6 +264,7 @@ namespace d20_SRD_Spell_Lists {
if (result == System.Windows.Forms.DialogResult.Yes) { if (result == System.Windows.Forms.DialogResult.Yes) {
character.Spells.Remove(deleteItem); character.Spells.Remove(deleteItem);
refreshSpellList(); refreshSpellList();
dirtyCharacter = true;
} }
} }
} }
@@ -281,5 +309,44 @@ namespace d20_SRD_Spell_Lists {
spellsDataGridView.Columns["editColumn"].Visible = true; spellsDataGridView.Columns["editColumn"].Visible = true;
spellsDataGridView.Columns["deleteColumn"].Visible = true; spellsDataGridView.Columns["deleteColumn"].Visible = true;
} }
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
switch (keyData) {
case (Keys.Control | Keys.O):
openToolStripButton.PerformClick();
return true;
case (Keys.Control | Keys.S):
saveToolStripButton.PerformClick();
return true;
case (Keys.Control | Keys.N):
newToolStripButton.PerformClick();
return true;
case (Keys.Control | Keys.P):
printToolStripButton.PerformClick();
return true;
case (Keys.Control | Keys.H):
helpToolStripButton.PerformClick();
return true;
default:
return base.ProcessCmdKey(ref msg, keyData);
}
}
private void newToolStripButton_Click(object sender, EventArgs e) {
if (promptSaveAndContinue()) {
loadingCharacter = true;
character = new Character();
character.SpellCastingAttribute = 10;
loadValues();
charClassComboBox.SelectedIndex = 0;
loadingCharacter = false;
}
}
private void FrmMain_Closing(object sender, CancelEventArgs e) {
if (sender != this || !promptSaveAndContinue()) {
e.Cancel = true;
}
}
} }
} }

View File

@@ -138,22 +138,43 @@
<metadata name="editColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="editColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="deleteColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="prepColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="levelColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="spellNameColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="componentColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="descColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="editColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="dataGridViewCellStyle1.NullValue" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="dataGridViewCellStyle3.NullValue" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
Qk32AgAAAAAAADYAAAAoAAAADgAAABAAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAA Qk32AgAAAAAAADYAAAAoAAAADgAAABAAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGEgoTGw8bGw8bGw8bGw8bGw8bGw8bG AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEgoTGw8bGw8bGw8bGw8bGw8bGw8bG
w8bGw8bGw8bGw8bGw8bGw8YAAAABgYSChP///////////////////////////////////////////8bD w8bGw8bGw8bGw8bGw8bGw8YAAAAAAISChP///////////////////////////////////////////8bD
xgAAAAGBhIKE////////////////////////////////////////////xsPGAAAAAYGEgoT///////// xgAAAAAAhIKE////////////////////////////////////////////xsPGAAAAAACEgoT/////////
///////////////////////////////////Gw8YAAAABgYSChP////////////////////////////// ///////////////////////////////////Gw8YAAAAAAISChP//////////////////////////////
/////////////8bDxgAAAAGBhIKE////////////AAD/AAD/////////AAD/AAD/////////xsPGAAAA /////////////8bDxgAAAAAAhIKE////////////AAD/AAD/////////AAD/AAD/////////xsPGAAAA
AYGEgoT///////////////8AAP8AAP8AAP8AAP/////////////Gw8YAAAABgYSChP////////////// AACEgoT///////////////8AAP8AAP8AAP8AAP/////////////Gw8YAAAAAAISChP//////////////
/////wAA/wAA/////////////////8bDxgAAAAGBhIKE////////////////AAD/AAD/AAD/AAD///// /////wAA/wAA/////////////////8bDxgAAAAAAhIKE////////////////AAD/AAD/AAD/AAD/////
////////xsPGAAAAAYGEgoT///////////8AAP8AAP////////8AAP8AAP/////////Gw8YAAAABgYSC ////////xsPGAAAAAACEgoT///////////8AAP8AAP////////8AAP8AAP/////////Gw8YAAAAAAISC
hP///////////////////////////////////////////8bDxgAAAAGBhIKE//////////////////// hP///////////////////////////////////////////8bDxgAAAAAAhIKE////////////////////
////////////////////////xsPGAAAAAYGEgoT///////////////////////////////////////// ////////////////////////xsPGAAAAAACEgoT/////////////////////////////////////////
///Gw8YAAAABgYSChP///////////////////////////////////////////8bDxgAAAAGBhIKEhIKE ///Gw8YAAAAAAISChP///////////////////////////////////////////8bDxgAAAAAAhIKEhIKE
hIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEAYE= hIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEAAA=
</value> </value>
</data> </data>
<metadata name="deleteColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="deleteColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -162,21 +183,21 @@
<metadata name="printDoc.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="printDoc.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>130, 17</value> <value>130, 17</value>
</metadata> </metadata>
<data name="dataGridViewCellStyle2.NullValue" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="dataGridViewCellStyle4.NullValue" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
Qk32AgAAAAAAADYAAAAoAAAADgAAABAAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAA Qk32AgAAAAAAADYAAAAoAAAADgAAABAAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGEgoTGw8bGw8bGw8bGw8bGw8bGw8bG AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEgoTGw8bGw8bGw8bGw8bGw8bGw8bG
w8bGw8bGw8bGw8bGw8bGw8YAAAABgYSChP///////////////////////////////////////////8bD w8bGw8bGw8bGw8bGw8bGw8YAAAAAAISChP///////////////////////////////////////////8bD
xgAAAAGBhIKE////////////////////////////////////////////xsPGAAAAAYGEgoT///////// xgAAAAAAhIKE////////////////////////////////////////////xsPGAAAAAACEgoT/////////
///////////////////////////////////Gw8YAAAABgYSChP////////////////////////////// ///////////////////////////////////Gw8YAAAAAAISChP//////////////////////////////
/////////////8bDxgAAAAGBhIKE////////////AAD/AAD/////////AAD/AAD/////////xsPGAAAA /////////////8bDxgAAAAAAhIKE////////////AAD/AAD/////////AAD/AAD/////////xsPGAAAA
AYGEgoT///////////////8AAP8AAP8AAP8AAP/////////////Gw8YAAAABgYSChP////////////// AACEgoT///////////////8AAP8AAP8AAP8AAP/////////////Gw8YAAAAAAISChP//////////////
/////wAA/wAA/////////////////8bDxgAAAAGBhIKE////////////////AAD/AAD/AAD/AAD///// /////wAA/wAA/////////////////8bDxgAAAAAAhIKE////////////////AAD/AAD/AAD/AAD/////
////////xsPGAAAAAYGEgoT///////////8AAP8AAP////////8AAP8AAP/////////Gw8YAAAABgYSC ////////xsPGAAAAAACEgoT///////////8AAP8AAP////////8AAP8AAP/////////Gw8YAAAAAAISC
hP///////////////////////////////////////////8bDxgAAAAGBhIKE//////////////////// hP///////////////////////////////////////////8bDxgAAAAAAhIKE////////////////////
////////////////////////xsPGAAAAAYGEgoT///////////////////////////////////////// ////////////////////////xsPGAAAAAACEgoT/////////////////////////////////////////
///Gw8YAAAABgYSChP///////////////////////////////////////////8bDxgAAAAGBhIKEhIKE ///Gw8YAAAAAAISChP///////////////////////////////////////////8bDxgAAAAAAhIKEhIKE
hIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEAYE= hIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEhIKEAAA=
</value> </value>
</data> </data>
</root> </root>