Private
Public Access
Fixed resource leak when opening files within the same file.
This commit is contained in:
1 parent
b888088f0b
commit
d081500dcb
2 files changed
+18
-10
No files matched your search
+1
@@ -187,6 +187,7 @@ namespace Advanced_Software_Engineering
|
||||
// timer1
|
||||
//
|
||||
this.timer1.Interval = 1000;
|
||||
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
|
||||
//
|
||||
// Text_Editor
|
||||
//
|
||||
|
||||
@@ -39,6 +39,7 @@ namespace Advanced_Software_Engineering {
|
||||
newWindow = false;
|
||||
okToOverwrite = true;
|
||||
UpdateTitle(openFile.FileName);
|
||||
fileStream.Close();
|
||||
}
|
||||
|
||||
void UpdateTitle(string fileName) {
|
||||
@@ -55,14 +56,15 @@ namespace Advanced_Software_Engineering {
|
||||
private void saveFile() {
|
||||
if (!okToOverwrite) saveFileAs();
|
||||
else {
|
||||
StreamWriter fileStream = new StreamWriter(fileName);
|
||||
try {
|
||||
StreamWriter fileStream = new StreamWriter(fileName);
|
||||
fileStream.Write(textBox1.Text);
|
||||
unsavedChanges = false;
|
||||
showSavedMessage();
|
||||
fileStream.Close();
|
||||
} catch (Exception e) {
|
||||
new ErrorWindow("Write Failed!", "The program failed to write the file.", e.Message + "\n" + e.StackTrace, ErrorWindow.ERROR_MESSAGE).Show();
|
||||
} finally {
|
||||
fileStream.Close();
|
||||
UpdateTitle();
|
||||
}
|
||||
}
|
||||
@@ -83,6 +85,7 @@ namespace Advanced_Software_Engineering {
|
||||
unsavedChanges = false;
|
||||
okToOverwrite = true;
|
||||
fileName = saveFileDialog.FileName;
|
||||
showSavedMessage();
|
||||
} catch (Exception e) {
|
||||
new ErrorWindow("Write Failed!", "The program failed to write the file.", e.Message + "\n" + e.StackTrace, ErrorWindow.ERROR_MESSAGE).Show();
|
||||
} finally {
|
||||
@@ -92,6 +95,11 @@ namespace Advanced_Software_Engineering {
|
||||
}
|
||||
}
|
||||
|
||||
private void showSavedMessage() {
|
||||
label1.Text = "File saved";
|
||||
timer1.Start();
|
||||
}
|
||||
|
||||
private void updateRowCol() {
|
||||
int line = textBox1.GetLineFromCharIndex(textBox1.SelectionStart);
|
||||
int column = textBox1.SelectionStart - textBox1.GetFirstCharIndexFromLine(line);
|
||||
@@ -112,13 +120,7 @@ namespace Advanced_Software_Engineering {
|
||||
}
|
||||
|
||||
private void openFile() {
|
||||
DialogResult result = DialogResult.Yes;
|
||||
|
||||
if (unsavedChanges) {
|
||||
result = MessageBox.Show("You have unsaved work. Would you like to discard your work and open a new file?", "Unsaved work!", MessageBoxButtons.YesNo, MessageBoxIcon.None);
|
||||
}
|
||||
|
||||
if (result == DialogResult.Yes) {
|
||||
OpenFileDialog openFileDialog = new OpenFileDialog();
|
||||
|
||||
if (openFileDialog.ShowDialog() == DialogResult.OK) {
|
||||
@@ -127,11 +129,13 @@ namespace Advanced_Software_Engineering {
|
||||
StreamReader fileStream = new StreamReader(openFileDialog.OpenFile());
|
||||
textBox1.Text = fileStream.ReadToEnd();
|
||||
unsavedChanges = false;
|
||||
okToOverwrite = true;
|
||||
newWindow = false;
|
||||
UpdateTitle(openFileDialog.FileName);
|
||||
fileStream.Close();
|
||||
} else new Text_Editor(openFileDialog).Show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void RunCode() {
|
||||
@@ -233,6 +237,9 @@ namespace Advanced_Software_Engineering {
|
||||
|
||||
private void describeToolStripMenuItem_Click(object sender, EventArgs e) => DescribeCode();
|
||||
|
||||
|
||||
private void timer1_Tick(object sender, EventArgs e) {
|
||||
updateRowCol();
|
||||
timer1.Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user