diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2015-01-04 23:51:43 +0100 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2015-01-04 23:53:35 +0100 |
commit | 6a254778e2bcfe7df0b40bf8a0db37159a706315 (patch) | |
tree | 95dd89deaf84c8b0c8fd6d9ae651bbe4afc3c7cd | |
parent | 41607d126a0a045222a5fc2fac5c9e77b40099f7 (diff) | |
download | VeraCrypt-6a254778e2bcfe7df0b40bf8a0db37159a706315.tar.gz VeraCrypt-6a254778e2bcfe7df0b40bf8a0db37159a706315.zip |
Linux/MacOSX: Add wait dialog to the benchmark computation. Correct handling of wait dialog call when changing password and creating volumes.
-rw-r--r-- | src/Main/Forms/BenchmarkDialog.cpp | 45 | ||||
-rw-r--r-- | src/Main/Forms/BenchmarkDialog.h | 13 | ||||
-rw-r--r-- | src/Main/Forms/ChangePasswordDialog.cpp | 3 | ||||
-rw-r--r-- | src/Main/Forms/VolumeCreationWizard.cpp | 3 |
4 files changed, 42 insertions, 22 deletions
diff --git a/src/Main/Forms/BenchmarkDialog.cpp b/src/Main/Forms/BenchmarkDialog.cpp index 9d744ed8..faf85046 100644 --- a/src/Main/Forms/BenchmarkDialog.cpp +++ b/src/Main/Forms/BenchmarkDialog.cpp @@ -60,13 +60,35 @@ namespace VeraCrypt void BenchmarkDialog::OnBenchmarkButtonClick (wxCommandEvent& event) { - try - { - list <BenchmarkResult> results; + list <BenchmarkResult> results; + + wxBusyCursor busy; + Buffer buffer ((size_t) Gui->GetSelectedData <size_t> (BufferSizeChoice)); + + BenchmarkThreadRoutine routine(this, results, buffer); + Gui->ExecuteWaitThreadRoutine (this, &routine); + + BenchmarkListCtrl->DeleteAllItems(); - wxBusyCursor busy; - Buffer buffer ((size_t) Gui->GetSelectedData <size_t> (BufferSizeChoice)); + foreach (const BenchmarkResult &result, results) + { + vector <wstring> fields (BenchmarkListCtrl->GetColumnCount()); + + fields[ColumnAlgorithm] = result.AlgorithmName; + fields[ColumnEncryption] = Gui->SpeedToString (result.EncryptionSpeed); + fields[ColumnDecryption] = Gui->SpeedToString (result.DecryptionSpeed); + fields[ColumnMean] = Gui->SpeedToString (result.MeanSpeed); + Gui->AppendToListCtrl (BenchmarkListCtrl, fields); + } + + BenchmarkListCtrl->SetColumnWidth(0, wxLIST_AUTOSIZE); + } + + void BenchmarkDialog::DoBenchmark (list<BenchmarkResult>& results, Buffer& buffer) + { + try + { EncryptionAlgorithmList encryptionAlgorithms = EncryptionAlgorithm::GetAvailableAlgorithms(); foreach (shared_ptr <EncryptionAlgorithm> ea, encryptionAlgorithms) { @@ -135,19 +157,6 @@ namespace VeraCrypt } } - BenchmarkListCtrl->DeleteAllItems(); - - foreach (const BenchmarkResult &result, results) - { - vector <wstring> fields (BenchmarkListCtrl->GetColumnCount()); - - fields[ColumnAlgorithm] = result.AlgorithmName; - fields[ColumnEncryption] = Gui->SpeedToString (result.EncryptionSpeed); - fields[ColumnDecryption] = Gui->SpeedToString (result.DecryptionSpeed); - fields[ColumnMean] = Gui->SpeedToString (result.MeanSpeed); - - Gui->AppendToListCtrl (BenchmarkListCtrl, fields); - } } catch (exception &e) { diff --git a/src/Main/Forms/BenchmarkDialog.h b/src/Main/Forms/BenchmarkDialog.h index b127295f..a9b42a58 100644 --- a/src/Main/Forms/BenchmarkDialog.h +++ b/src/Main/Forms/BenchmarkDialog.h @@ -36,7 +36,20 @@ namespace VeraCrypt uint64 MeanSpeed; }; + void DoBenchmark (list<BenchmarkResult>& results, Buffer& buffer); void OnBenchmarkButtonClick (wxCommandEvent& event); + + class BenchmarkThreadRoutine : public WaitThreadRoutine + { + public: + BenchmarkDialog* m_pDlg; + list<BenchmarkResult>& m_results; + Buffer& m_buffer; + BenchmarkThreadRoutine(BenchmarkDialog* pDlg, list<BenchmarkResult>& results, Buffer& buffer) + : m_pDlg(pDlg), m_results(results), m_buffer(buffer) { } + virtual ~BenchmarkThreadRoutine() { } + virtual void ExecutionCode(void) { m_pDlg->DoBenchmark (m_results, m_buffer); } + }; }; } diff --git a/src/Main/Forms/ChangePasswordDialog.cpp b/src/Main/Forms/ChangePasswordDialog.cpp index 1bde4bee..1889e5cb 100644 --- a/src/Main/Forms/ChangePasswordDialog.cpp +++ b/src/Main/Forms/ChangePasswordDialog.cpp @@ -136,8 +136,7 @@ namespace VeraCrypt ChangePasswordThreadRoutine routine(Path, Gui->GetPreferences().DefaultMountOptions.PreserveTimestamps, CurrentPasswordPanel->GetPassword(), CurrentPasswordPanel->GetPkcs5Kdf(), CurrentPasswordPanel->GetTrueCryptMode(),CurrentPasswordPanel->GetKeyfiles(), newPassword, newKeyfiles, NewPasswordPanel->GetPkcs5Kdf(), NewPasswordPanel->GetHeaderWipeCount()); - WaitDialog dlg(this, LangString["IDT_STATIC_MODAL_WAIT_DLG_INFO"], &routine); - dlg.Run(); + Gui->ExecuteWaitThreadRoutine (this, &routine); } switch (DialogMode) diff --git a/src/Main/Forms/VolumeCreationWizard.cpp b/src/Main/Forms/VolumeCreationWizard.cpp index 99231a96..bff459a1 100644 --- a/src/Main/Forms/VolumeCreationWizard.cpp +++ b/src/Main/Forms/VolumeCreationWizard.cpp @@ -867,8 +867,7 @@ namespace VeraCrypt Creator.reset (new VolumeCreator); VolumeCreatorThreadRoutine routine(options, Creator); - WaitDialog dlg(this, LangString["IDT_STATIC_MODAL_WAIT_DLG_INFO"], &routine); - dlg.Run(); + Gui->ExecuteWaitThreadRoutine (this, &routine); page->SetKeyInfo (Creator->GetKeyInfo()); |