private void EditForm_FormClosing(object sender, FormClosingEventArgs e) { this.parent.CancelClosing = false; this.parent.ActivateMdiForm(this); if (this.Dirty) { string scriptToSave = ScriptName; if (LSLIPathHelper.IsExpandedLSL(ScriptName)) { // Expanded scripts will always be saved as LSLI's scriptToSave = LSLIPathHelper.CreateCollapsedScriptName(scriptToSave); } DialogResult dialogResult = MessageBox.Show(this, @"Save """ + scriptToSave + @"""?", "File has changed", MessageBoxButtons.YesNoCancel); if (dialogResult == DialogResult.Yes) { e.Cancel = !this.parent.SaveFile(this, false); } else { e.Cancel = (dialogResult == DialogResult.Cancel); } } if (!e.Cancel) { // Close related readonly's if this is an expanded script if (LSLIPathHelper.IsExpandedLSL(ScriptName)) { // Check if a LSLI readonly is open EditForm readOnlyLSLI = (EditForm)parent.GetForm(Path.GetFileName(LSLIPathHelper.GetReadOnlyTabName(ScriptName))); if (readOnlyLSLI != null) { readOnlyLSLI.Close(); } } if (!this.parent.IsReadOnly(this)) // If this is not a readonly (LSLI) { // Delete expanded file when closing string expandedFile = LSLIPathHelper.CreateExpandedPathAndScriptName(FullPathName); EditForm expandedForm = (EditForm)parent.GetForm(LSLIPathHelper.GetExpandedTabName(Path.GetFileName(expandedFile))); if (expandedForm != null && !LSLIPathHelper.IsExpandedLSL(ScriptName)) { expandedForm.Close(); } if (File.Exists(expandedFile)) { File.Delete(expandedFile); } } } this.parent.CancelClosing = e.Cancel; }
public void SaveCurrentFile(string strPath) { // Check if this is an expanded.lsl if (LSLIPathHelper.IsExpandedLSL(strPath)) { string LSLIfilePath = LSLIPathHelper.CreateCollapsedPathAndScriptName(strPath); // Check if an LSLI version of this script exists if (File.Exists(LSLIfilePath)) { // Save the LSLI file as well File.WriteAllText(LSLIfilePath, LSLIConverter.CollapseToLSLI(this.numberedTextBoxUC1.TextBox.Text)); EditForm form = null; // If it's currently open, then refresh it for (int i = 0; i < Application.OpenForms.Count; i++) { Form openForm = Application.OpenForms[i]; string filename = LSLIPathHelper.TrimStarsAndWhiteSpace(openForm.Text); if (filename == Path.GetFileName(LSLIfilePath)) { form = (EditForm)openForm; } } if (form != null && form.Enabled) { parent.OpenFile(LSLIfilePath, Guid.NewGuid(), true); form.Close(); } } this.numberedTextBoxUC1.TextBox.Dirty = false; this.Text = LSLIPathHelper.GetExpandedTabName(strPath); } else { this.FullPathName = strPath; Encoding encodeAs = this.encodedAs; if (this.IsScript && encodeAs == null) { switch (Properties.Settings.Default.OutputFormat) { case "UTF8": encodeAs = Encoding.UTF8; break; case "Unicode": encodeAs = Encoding.Unicode; break; case "BigEndianUnicode": encodeAs = Encoding.BigEndianUnicode; break; default: encodeAs = Encoding.Default; break; } } else if (encodeAs == null) { encodeAs = Encoding.UTF8; } this.numberedTextBoxUC1.TextBox.SaveCurrentFile(strPath, encodeAs); this.encodedAs = encodeAs; } this.m_IsNew = false; }