VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Main/Forms/VolumePasswordWizardPage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main/Forms/VolumePasswordWizardPage.cpp')
-rw-r--r--src/Main/Forms/VolumePasswordWizardPage.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/Main/Forms/VolumePasswordWizardPage.cpp b/src/Main/Forms/VolumePasswordWizardPage.cpp
new file mode 100644
index 00000000..fd4eaf2c
--- /dev/null
+++ b/src/Main/Forms/VolumePasswordWizardPage.cpp
@@ -0,0 +1,39 @@
+/*
+ Copyright (c) 2008 TrueCrypt Developers Association. All rights reserved.
+
+ Governed by the TrueCrypt License 3.0 the full text of which is contained in
+ the file License.txt included in TrueCrypt binary and source code distribution
+ packages.
+*/
+
+#include "System.h"
+#include "Main/GraphicUserInterface.h"
+#include "VolumePasswordWizardPage.h"
+
+namespace TrueCrypt
+{
+ VolumePasswordWizardPage::VolumePasswordWizardPage (wxPanel* parent, shared_ptr <VolumePassword> password, shared_ptr <KeyfileList> keyfiles, bool enableConfirmation)
+ : VolumePasswordWizardPageBase (parent), ConfirmationMode (enableConfirmation)
+ {
+ PasswordPanel = new VolumePasswordPanel (this, password, keyfiles, false, true, true, enableConfirmation);
+ PasswordPanel->UpdateEvent.Connect (EventConnector <VolumePasswordWizardPage> (this, &VolumePasswordWizardPage::OnPasswordPanelUpdate));
+
+ PasswordPanelSizer->Add (PasswordPanel, 1, wxALL | wxEXPAND);
+ }
+
+ VolumePasswordWizardPage::~VolumePasswordWizardPage ()
+ {
+ PasswordPanel->UpdateEvent.Disconnect (this);
+ }
+
+ bool VolumePasswordWizardPage::IsValid ()
+ {
+ if (ConfirmationMode && !PasswordPanel->PasswordsMatch())
+ return false;
+
+ shared_ptr <KeyfileList> keyfiles (GetKeyfiles());
+ shared_ptr <VolumePassword> password (GetPassword());
+
+ return (password && !GetPassword()->IsEmpty()) || (keyfiles && !keyfiles->empty());
+ }
+}