diff --git a/SandboxiePlus/SandMan/Forms/OptionsWindow.ui b/SandboxiePlus/SandMan/Forms/OptionsWindow.ui index 736ebb03..b80ba149 100644 --- a/SandboxiePlus/SandMan/Forms/OptionsWindow.ui +++ b/SandboxiePlus/SandMan/Forms/OptionsWindow.ui @@ -55,7 +55,7 @@ - 3 + 1 @@ -284,200 +284,196 @@ File Options - + + + + + + 20 + 16777215 + + + + + + + + + + + Encrypt sandbox content + + + + + + + Qt::Horizontal + + + + 410 + 13 + + + + + + + + When <a href="sbie://docs/boxencryption">Box Encryption</a> is enabled the box’s root folder, including its registry hive, is stored in an encrypted disk image, using <a href="https://diskcryptor.org">Disk Cryptor's</a> AES-XTS implementation. + + + true + + + true + + + + + + + Warn when an application opens a harddrive handle + + + + + + + Set Password + + + + + + + Virtualization scheme + + + + + + + + + + Qt::Vertical + + + + 20 + 52 + + + + + + + + + 75 + true + true + + + + Disk/File access + + + + + + + Allow elevated sandboxed applications to read the harddrive + + + + + + + The box structure can only be changed when the sandbox is empty + + + + + + + Partially checked means prevent box removal but not content deletion. + + + Protect this sandbox from deletion or emptying + + + true + + + + + + + Auto delete content when last sandboxed process terminates + + + + + + + <a href="addon://ImDisk">Install ImDisk</a> driver to enable Ram Disk and Disk Image support. + + + - - - - - - 75 - true - true - - - - Disk/File access - - - - - - - Use volume serial numbers for drives, like: \drive\C~1234-ABCD - - - - - - - - 20 - 16777215 - - - - - - - - - - - Qt::Horizontal - - - - 40 - 0 - - - - - - - - Encrypt sandbox content - - - - - - - Auto delete content when last sandboxed process terminates - - - - - - - When <a href="sbie://docs/boxencryption">Box Encryption</a> is enabled the box’s root folder, including its registry hive, is stored in an encrypted disk image, using <a href="https://diskcryptor.org">Disk Cryptor's</a> AES-XTS implementation. - - - true - - - true - - - - - - - - 75 - true - true - - - - Box Delete options - - - - - - - Qt::Vertical - - - - 20 - 0 - - - - - - - - Allow elevated sandboxed applications to read the harddrive - - - - - - - Partially checked means prevent box removal but not content deletion. - - - Protect this sandbox from deletion or emptying - - - true - - - - - - - <a href="addon://ImDisk">Install ImDisk</a> driver to enable Ram Disk and Disk Image support. - - - - - - - Separate user folders - - - false - - - - - - - - 75 - true - true - - - - Box Structure - - - - - - - Store the sandbox content in a Ram Disk - - - - - - - Warn when an application opens a harddrive handle - - - - - - - - - - Set Password - - - - - - - Virtualization scheme - - - - - - - The box structure can only be changed when the sandbox is empty - - - - + + + + 75 + true + true + + + + Box Structure + + + + + + + Separate user folders + + + false + + + + + + + Store the sandbox content in a Ram Disk + + + + + + + + 75 + true + true + + + + Box Delete options + + + + + + + Use volume serial numbers for drives, like: \drive\C~1234-ABCD + + @@ -4522,8 +4518,8 @@ instead of "*". 0 0 - 75 - 16 + 98 + 28 diff --git a/SandboxiePlus/SandMan/Forms/SettingsWindow.ui b/SandboxiePlus/SandMan/Forms/SettingsWindow.ui index 00d4c17c..558c368c 100644 --- a/SandboxiePlus/SandMan/Forms/SettingsWindow.ui +++ b/SandboxiePlus/SandMan/Forms/SettingsWindow.ui @@ -48,7 +48,7 @@ QTabWidget::North - 0 + 5 @@ -449,7 +449,7 @@ - 0 + 1 @@ -1689,6 +1689,7 @@ + 75 true true @@ -1940,7 +1941,7 @@ Unlike the preview channel, it does not include untested, potentially breaking, - 0 + 1 @@ -2159,79 +2160,88 @@ Unlike the preview channel, it does not include untested, potentially breaking, Sandboxie.ini Presets - - - - - - - Change Password - - - - - - - Password must be entered in order to make changes - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - 75 - true - true - - - - Config protection - - - - - - - Only Administrator user accounts can make changes - - - - - - - Watch Sandboxie.ini for changes - - - - - - - Only Administrator user accounts can use Pause Forcing Programs command - - - - - - - Clear password when main window becomes hidden - - - - + + + + + Qt::Vertical + + + + 20 + 211 + + + + + + + + Clear password when main window becomes hidden + + + + + + + Only Administrator user accounts can use Pause Forcing Programs command + + + + + + + Watch Sandboxie.ini for changes + + + + + + + Change Password + + + + + + + Qt::Horizontal + + + + 140 + 20 + + + + + + + + Only Administrator user accounts can make changes + + + + + + + + 75 + true + true + + + + Config protection + + + + + + + Password must be entered in order to make changes + + diff --git a/SandboxiePlus/SandMan/SandMan.cpp b/SandboxiePlus/SandMan/SandMan.cpp index 68e59801..75638726 100644 --- a/SandboxiePlus/SandMan/SandMan.cpp +++ b/SandboxiePlus/SandMan/SandMan.cpp @@ -2283,7 +2283,6 @@ void CSandMan::OnBoxClosed(const CSandBoxPtr& pBox) AddAsyncOp(pProgress, true, tr("Executing OnBoxTerminate: %1").arg(Value2)); } } - if (!pBox->GetBool("NeverDelete", false)) { if (pBox->GetBool("AutoDelete", false)) diff --git a/SandboxiePlus/SandMan/SandManTray.cpp b/SandboxiePlus/SandMan/SandManTray.cpp index 98e4bcc8..dd546d5b 100644 --- a/SandboxiePlus/SandMan/SandManTray.cpp +++ b/SandboxiePlus/SandMan/SandManTray.cpp @@ -537,7 +537,7 @@ void CSandMan::OnSysTray(QSystemTrayIcon::ActivationReason Reason) } } -void CSandMan::OnBoxMenu(const QPoint & point) +void CSandMan::OnBoxMenu(const QPoint& point) { QTreeWidgetItem* pItem = m_pTrayBoxes->currentItem(); if (!pItem) @@ -545,4 +545,4 @@ void CSandMan::OnBoxMenu(const QPoint & point) CTrayBoxesItemDelegate::m_Hold = true; m_pBoxView->PopUpMenu(pItem->data(0, Qt::UserRole).toString()); CTrayBoxesItemDelegate::m_Hold = false; -} \ No newline at end of file +} diff --git a/SandboxiePlus/SandMan/Windows/OptionsAdvanced.cpp b/SandboxiePlus/SandMan/Windows/OptionsAdvanced.cpp index 072c716e..58c4ac4e 100644 --- a/SandboxiePlus/SandMan/Windows/OptionsAdvanced.cpp +++ b/SandboxiePlus/SandMan/Windows/OptionsAdvanced.cpp @@ -106,6 +106,7 @@ void COptionsWindow::CreateAdvanced() connect(ui.chkLessConfidential, SIGNAL(clicked(bool)), this, SLOT(OnLessConfidentialChanged())); connect(ui.chkProtectWindow, SIGNAL(clicked(bool)), this, SLOT(OnProtectChanged())); connect(ui.chkBlockCapture, SIGNAL(clicked(bool)), this, SLOT(OnCaptureChanged())); + //connect(ui.chkLockWhenClose, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); connect(ui.chkNotifyProtect, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged())); connect(ui.treeInjectDll, SIGNAL(itemChanged(QTreeWidgetItem *, int)), this, SLOT(OnToggleInjectDll(QTreeWidgetItem *, int))); @@ -265,8 +266,14 @@ void COptionsWindow::LoadAdvanced() ui.chkNotifyProtect->setChecked(m_pBox->GetBool("NotifyBoxProtected", false)); ui.chkProtectWindow->setChecked(m_pBox->GetBool("IsProtectScreen")); - ui.chkBlockCapture->setChecked(m_pBox->GetBool("IsBlockCapture")); + QString str = m_pBox->GetText("OpenWinClass", ""); + ui.chkBlockCapture->setChecked(m_pBox->GetBool("IsBlockCapture")&& QString::compare(str, "*") != 0); + ui.chkBlockCapture->setCheckable(QString::compare(str, "*") != 0); + /*ui.chkLockWhenClose->setChecked(m_pBox->GetBool("LockWhenClose", false)); + ui.chkLockWhenClose->setCheckable(m_pBox->GetBool("UseFileImage", false)); + ui.chkLockWhenClose->setEnabled(m_pBox->GetBool("UseFileImage", false)); + */ QStringList Users = m_pBox->GetText("Enabled").split(","); ui.lstUsers->clear(); if (Users.count() > 1) @@ -471,6 +478,7 @@ void COptionsWindow::SaveAdvanced() WriteAdvancedCheck(ui.chkProtectWindow, "IsProtectScreen", "y", "n"); WriteAdvancedCheck(ui.chkBlockCapture, "IsBlockCapture", "y", "n"); + //WriteAdvancedCheck(ui.chkLockWhenClose, "LockWhenClose", "y", "n"); QStringList Users; for (int i = 0; i < ui.lstUsers->count(); i++) @@ -1245,8 +1253,12 @@ void COptionsWindow::OnCaptureChanged() if (ui.chkBlockCapture->checkState()) { ui.chkProtectWindow->setChecked(FALSE); ui.chkProtectWindow->setCheckable(FALSE); - } else + ui.chkProtectWindow->setEnabled(FALSE); + } + else { ui.chkProtectWindow->setCheckable(TRUE); + ui.chkProtectWindow->setEnabled(TRUE); + } OnAdvancedChanged(); } @@ -1255,7 +1267,11 @@ void COptionsWindow::OnProtectChanged() if (ui.chkProtectWindow->checkState()) { ui.chkBlockCapture->setChecked(FALSE); ui.chkBlockCapture->setCheckable(FALSE); - } else + ui.chkBlockCapture->setEnabled(FALSE); + } + else { ui.chkBlockCapture->setCheckable(TRUE); + ui.chkBlockCapture->setEnabled(TRUE); + } OnAdvancedChanged(); } diff --git a/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp b/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp index de81c9d6..cf759a01 100644 --- a/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp +++ b/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp @@ -429,6 +429,7 @@ CSettingsWindow::CSettingsWindow(QWidget* parent) connect(ui.btnSetPassword, SIGNAL(clicked(bool)), this, SLOT(OnSetPassword())); connect(ui.chkAdminOnlyFP, SIGNAL(stateChanged(int)), this, SLOT(OnProtectionChange())); connect(ui.chkClearPass, SIGNAL(stateChanged(int)), this, SLOT(OnProtectionChange())); + m_ProtectionChanged = false; // @@ -1663,6 +1664,7 @@ void CSettingsWindow::SaveSettings() WriteAdvancedCheck(ui.chkAdminOnlyFP, "ForceDisableAdminOnly", "y", ""); WriteAdvancedCheck(ui.chkClearPass, "ForgetPassword", "y", ""); + } if (m_WarnProgsChanged)