Skip to content

Commit 2277927

Browse files
committed
Fixed Encrypt/Decrypt not working unless DevForm has been opened atleast once and changed progress bars to include text
- Added text to progress bars to better show progress - Changed BackgroundWorkers for Threads - Updated built-in CLI support to reflect the recent FileAES-CLI updates - Fixed Encrypt/Decrypt not working unless DevForm has been opened atleast once
1 parent 2216f67 commit 2277927

File tree

9 files changed

+229
-148
lines changed

9 files changed

+229
-148
lines changed

FileAES/DevForm.Designer.cs

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

FileAES/MainForm.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using FAES;
2+
using FAES_GUI.CustomControls;
23
using System;
34
using System.Drawing;
5+
using System.Threading;
46
using System.Windows.Forms;
57

68
namespace FAES_GUI
@@ -19,6 +21,10 @@ public MainForm(FAES_File faesFile = null)
1921
titleLabel.Text += Program.GetVersion();
2022
this.Text = titleLabel.Text;
2123

24+
// Hacky solution to the RichTextBox Console.SetOut causing issues if the DevForm is not opened at least once before encryption/decryption (otherwise it hangs)
25+
_devForm.Show();
26+
_devForm.Hide();
27+
2228
autoSelectMenuButton.registerDetoggles(new CustomControls.SubMenuButton[3] { encryptMenuButton, decryptMenuButton, settingsMenuButton });
2329
encryptMenuButton.registerDetoggles(new CustomControls.SubMenuButton[3] { autoSelectMenuButton, decryptMenuButton, settingsMenuButton });
2430
decryptMenuButton.registerDetoggles(new CustomControls.SubMenuButton[3] { autoSelectMenuButton, encryptMenuButton, settingsMenuButton });
@@ -183,7 +189,11 @@ private void CopyrightLabel_Click(object sender, EventArgs e)
183189
{
184190
_devForm.WindowState = FormWindowState.Normal;
185191
}
186-
else _devForm.Visible = !_devForm.Visible;
192+
else
193+
{
194+
_devForm.Visible = !_devForm.Visible;
195+
if (_devForm.Visible) _devForm.WindowState = FormWindowState.Normal;
196+
}
187197
}
188198
}
189199
}

FileAES/MenuPanels/DecryptPanel.Designer.cs

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

FileAES/MenuPanels/DecryptPanel.cs

Lines changed: 54 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ public decryptPanel(FAES_File faesFile)
3131
throw new Exception("Input file cannot be decrypted!");
3232
}
3333

34+
public bool GetInProgress()
35+
{
36+
return _inProgress;
37+
}
38+
3439
public void setCloseAfterOperationSuccessful(bool close)
3540
{
3641
_closeAfterOp = close;
@@ -53,6 +58,8 @@ public void ResetFile()
5358
Locked(true);
5459
_fileToDecrypt = null;
5560
fileInfoLabel.Text = "No File Selected!";
61+
progressBar.CustomText = "";
62+
progressBar.VisualMode = CustomControls.ProgressBarDisplayMode.Percentage;
5663
passTextbox.Text = "";
5764
passHintTextbox.Text = "";
5865
encryptedFileMetaData.Text = "";
@@ -116,17 +123,17 @@ private void Locked(bool lockChanges)
116123

117124
private void doDecrypt()
118125
{
119-
try
120-
{
121-
setNoteLabel("Decrypting... Please wait.", 0);
126+
setNoteLabel("Decrypting... Please wait.", 0);
122127

123-
_inProgress = true;
124-
_decryptSuccessful = false;
128+
_inProgress = true;
129+
_decryptSuccessful = false;
125130

126-
while (!backgroundDecrypt.CancellationPending)
131+
Thread mainDecryptThread = new Thread(() =>
132+
{
133+
try
127134
{
128135
FileAES_Decrypt decrypt = new FileAES_Decrypt(_fileToDecrypt, passTextbox.Text);
129-
136+
130137
Thread dThread = new Thread(() =>
131138
{
132139
_decryptSuccessful = decrypt.decryptFile();
@@ -138,48 +145,54 @@ private void doDecrypt()
138145
_progress = decrypt.GetDecryptionPercentComplete();
139146
}
140147

141-
backgroundDecrypt.CancelAsync();
148+
{
149+
_inProgress = false;
150+
Locked(false);
151+
152+
if (_decryptSuccessful)
153+
{
154+
setNoteLabel("Decryption Complete", 0);
155+
progressBar.CustomText = "Done";
156+
progressBar.VisualMode = CustomControls.ProgressBarDisplayMode.TextAndPercentage;
157+
if (_closeAfterOp) Application.Exit();
158+
else ResetFile();
159+
}
160+
else
161+
{
162+
decryptionTimer.Stop();
163+
progressBar.ProgressColor = Color.Red;
164+
progressBar.Value = progressBar.Maximum;
165+
166+
setNoteLabel("Password Incorrect!", 3);
167+
progressBar.CustomText = "Password Incorrect!";
168+
progressBar.VisualMode = CustomControls.ProgressBarDisplayMode.TextAndPercentage;
169+
passTextbox.Focus();
170+
}
171+
}
142172
}
143-
}
144-
catch (Exception e)
145-
{
146-
setNoteLabel(FileAES_Utilities.FAES_ExceptionHandling(e, true), 3);
147-
}
148-
}
149-
150-
private void backgroundDecrypt_DoWork(object sender, DoWorkEventArgs e)
151-
{
152-
doDecrypt();
153-
}
154-
155-
private void backgroundDecrypt_Complete(object sender, RunWorkerCompletedEventArgs e)
156-
{
157-
_inProgress = false;
158-
Locked(false);
159-
160-
if (_decryptSuccessful)
161-
{
162-
setNoteLabel("Decryption Complete", 0);
163-
if (_closeAfterOp) Application.Exit();
164-
else ResetFile();
165-
}
166-
else
167-
{
168-
decryptionTimer.Stop();
169-
progressBar.ProgressColor = Color.Red;
170-
progressBar.Value = progressBar.Maximum;
171-
172-
setNoteLabel("Password Incorrect!", 3);
173-
passTextbox.Focus();
174-
}
173+
catch (Exception e)
174+
{
175+
setNoteLabel(FileAES_Utilities.FAES_ExceptionHandling(e, true), 3);
176+
}
177+
});
178+
mainDecryptThread.Start();
175179
}
176180

177181
private void decryptionTimer_Tick(object sender, EventArgs e)
178182
{
179183
if (_progress < 100)
184+
{
185+
if (_progress < 99) progressBar.CustomText = "Decrypting";
186+
else progressBar.CustomText = "Uncompressing";
187+
progressBar.VisualMode = CustomControls.ProgressBarDisplayMode.TextAndPercentage;
180188
progressBar.Value = Convert.ToInt32(Math.Ceiling(_progress));
189+
}
181190
else
191+
{
192+
progressBar.CustomText = "Finishing";
193+
progressBar.VisualMode = CustomControls.ProgressBarDisplayMode.TextAndPercentage;
182194
progressBar.Value = 100;
195+
}
183196
}
184197

185198
private void decryptButton_Click(object sender, EventArgs e)
@@ -189,8 +202,7 @@ private void decryptButton_Click(object sender, EventArgs e)
189202
progressBar.ProgressColor = Color.Lime;
190203
progressBar.Value = progressBar.Minimum;
191204
decryptionTimer.Start();
192-
193-
backgroundDecrypt.RunWorkerAsync();
205+
doDecrypt();
194206
Locked(true);
195207
}
196208
else if (_inProgress) setNoteLabel("Decryption already in progress.", 1);

FileAES/MenuPanels/DecryptPanel.resx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,6 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120-
<metadata name="backgroundDecrypt.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
121-
<value>17, 17</value>
122-
</metadata>
123120
<metadata name="openFileToDecrypt.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
124121
<value>345, 27</value>
125122
</metadata>

FileAES/MenuPanels/EncryptPanel.Designer.cs

Lines changed: 0 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)