/[RomCheater]/trunk/RomCheater.ScratchPad/ScratchPadDocument.cs
ViewVC logotype

Diff of /trunk/RomCheater.ScratchPad/ScratchPadDocument.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 775 by william, Thu Jun 20 22:59:40 2013 UTC revision 776 by william, Thu Jun 20 23:07:32 2013 UTC
# Line 51  namespace RomCheater.ScratchPad Line 51  namespace RomCheater.ScratchPad
51    
52          private bool ShouldAskSave()          private bool ShouldAskSave()
53          {          {
54              bool shouldAskSave = false;              return !DocumentSaved;
             return shouldAskSave;  
55          }          }
56    
57          
58            private bool _DocumentSaved;
59            public bool DocumentSaved { get { return _DocumentSaved; } private set { _DocumentSaved = value; } }
60    
61          private string _DocumentFilename;          private string _DocumentFilename;
62          public string DocumentFilename { get { return _DocumentFilename; } set { _DocumentFilename = value; } }          public string DocumentFilename { get { return _DocumentFilename; } set { _DocumentFilename = value; } }
63          private TabPage _DocumentTab;          private TabPage _DocumentTab;
# Line 63  namespace RomCheater.ScratchPad Line 65  namespace RomCheater.ScratchPad
65          private int _DocumentIndex;          private int _DocumentIndex;
66          public int DocumentIndex { get { return _DocumentIndex; } set { _DocumentIndex = value; } }          public int DocumentIndex { get { return _DocumentIndex; } set { _DocumentIndex = value; } }
67    
68            private void UpdateTabName(string name)
69            {
70                this.DocumentTab.Text = name;
71            }
72          private TabControl GetParentTabControl()          private TabControl GetParentTabControl()
73          {          {
74              var parent = this.DocumentTab.Parent;              var parent = this.DocumentTab.Parent;
# Line 117  namespace RomCheater.ScratchPad Line 123  namespace RomCheater.ScratchPad
123                                  SyntaxLanguage language = SyntaxLanguage.Text;                                  SyntaxLanguage language = SyntaxLanguage.Text;
124                                  CodeEditorSyntaxLoader.SetSyntax(txtEditor, language);                                  CodeEditorSyntaxLoader.SetSyntax(txtEditor, language);
125                                  txtEditor.Document.ReParse();                                  txtEditor.Document.ReParse();
126                                    this.UpdateTabName(fi.Name);
127                              }                              }
128                              catch (Exception ex)                              catch (Exception ex)
129                              {                              {
# Line 141  namespace RomCheater.ScratchPad Line 148  namespace RomCheater.ScratchPad
148          {          {
149              DialogResult result = FileSaver.ShowDialog();              DialogResult result = FileSaver.ShowDialog();
150              if (result != DialogResult.OK) return;              if (result != DialogResult.OK) return;
151                FileInfo fi = new FileInfo(FileSaver.FileName);
152                try
153                {
154                    using (FileStream fs = new FileStream(fi.FullName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read))
155                    {
156                        try
157                        {
158                            using (StreamWriter sw = new StreamWriter(fs))
159                            {
160                                try
161                                {
162                                    foreach (var t in txtEditor.Document.Lines)
163                                    {
164                                        sw.WriteLine(t);
165                                    }
166                                    sw.Flush();
167                                    sw.Close();
168                                    this.DocumentSaved = true;
169                                }
170                                catch (Exception ex)
171                                {
172                                    throw ex;
173                                }
174                            }
175                        }
176                        catch (Exception ex)
177                        {
178                            throw ex;
179                        }
180                    }
181                }
182                catch (Exception ex)
183                {
184                    this.DocumentSaved = false;
185                    MessageBox.Show(string.Format("Failed to save: '{0}'", fi.Name), "", MessageBoxButtons.OK, MessageBoxIcon.Error);
186                    logger.Error.WriteLine("Failed to save: '{0}'", fi.FullName);
187                    logger.Error.WriteLine(ex.ToString());
188                }
189          }          }
190    
191          private void CloseDocument(bool quiting)          private void CloseDocument(bool quiting)
# Line 156  namespace RomCheater.ScratchPad Line 201  namespace RomCheater.ScratchPad
201                  this.DocumentClosing.Invoke(new ControlClosingEventArgs<int>(this, this.DocumentIndex));                  this.DocumentClosing.Invoke(new ControlClosingEventArgs<int>(this, this.DocumentIndex));
202              }              }
203          }          }
204    
205            private void txtEditor_TextChanged(object sender, EventArgs e)
206            {
207                this.DocumentSaved = false;
208            }
209      }      }
210  }  }

Legend:
Removed from v.775  
changed lines
  Added in v.776

  ViewVC Help
Powered by ViewVC 1.1.22