diff --git a/CHANGELOG.md b/CHANGELOG.md index a812cc0cc1..f498f03d23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,14 +6,18 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## [1.14.9 / 5.69.9] - 2024-09-?? -### Fixed -- fixed Exported encrypted archive files cannot be unpacked by Sandboxie [#4229](https://github.com/sandboxie-plus/Sandboxie/issues/4229) - ### Added - Added a couple alternative default sandbox paths to the box wizard: - \??\%SystemDrive%\Sandbox\%USER%\%SANDBOX% - \??\%SystemDrive%\Sandbox\%SANDBOX% - \??\%SystemDrive%\Users\%USER%\Sandbox\%SANDBOX% +- Added Box Import Dialog + +### Changed +- box root in settings is now a combo box + +### Fixed +- fixed Exported encrypted archive files cannot be unpacked by Sandboxie [#4229](https://github.com/sandboxie-plus/Sandboxie/issues/4229) diff --git a/SandboxiePlus/SandMan/Forms/SettingsWindow.ui b/SandboxiePlus/SandMan/Forms/SettingsWindow.ui index b2a4e76944..581a79425a 100644 --- a/SandboxiePlus/SandMan/Forms/SettingsWindow.ui +++ b/SandboxiePlus/SandMan/Forms/SettingsWindow.ui @@ -2060,7 +2060,7 @@ Unlike the preview channel, it does not include untested, potentially breaking, - + @@ -2147,7 +2147,7 @@ Unlike the preview channel, it does not include untested, potentially breaking, - + @@ -2183,7 +2183,7 @@ Unlike the preview channel, it does not include untested, potentially breaking, - + diff --git a/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp b/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp index d953be1aeb..d6181e399d 100644 --- a/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp +++ b/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp @@ -283,6 +283,14 @@ CSettingsWindow::CSettingsWindow(QWidget* parent) ui.cmbRamLetter->addItem(QString("%1:\\").arg(QChar(search))); } + ui.fileRoot->addItem("\\??\\%SystemDrive%\\Sandbox\\%USER%\\%SANDBOX%"); + ui.fileRoot->addItem("\\??\\%SystemDrive%\\Sandbox\\%SANDBOX%"); + ui.fileRoot->addItem("\\??\\%SystemDrive%\\Users\\%USER%\\Sandbox\\%SANDBOX%"); + + ui.regRoot->addItem("\\REGISTRY\\USER\\Sandbox_%USER%_%SANDBOX%"); + + ui.ipcRoot->addItem("\\Sandbox\\%USER%\\%SANDBOX%\\Session_%SESSION%"); + CPathEdit* pEditor = new CPathEdit(); ui.txtEditor->parentWidget()->layout()->replaceWidget(ui.txtEditor, pEditor); ui.txtEditor->deleteLater(); @@ -416,9 +424,9 @@ CSettingsWindow::CSettingsWindow(QWidget* parent) // Advanced Config connect(ui.cmbDefault, SIGNAL(currentIndexChanged(int)), this, SLOT(OnGeneralChanged())); connect(ui.chkAutoRoot, SIGNAL(stateChanged(int)), this, SLOT(OnRootChanged())); // not sbie ini - connect(ui.fileRoot, SIGNAL(textChanged(const QString&)), this, SLOT(OnGeneralChanged())); - connect(ui.regRoot, SIGNAL(textChanged(const QString&)), this, SLOT(OnGeneralChanged())); - connect(ui.ipcRoot, SIGNAL(textChanged(const QString&)), this, SLOT(OnGeneralChanged())); + connect(ui.fileRoot, SIGNAL(currentTextChanged(const QString&)), this, SLOT(OnGeneralChanged())); + connect(ui.regRoot, SIGNAL(currentTextChanged(const QString&)), this, SLOT(OnGeneralChanged())); + connect(ui.ipcRoot, SIGNAL(currentTextChanged(const QString&)), this, SLOT(OnGeneralChanged())); connect(ui.chkWFP, SIGNAL(stateChanged(int)), this, SLOT(OnFeaturesChanged())); connect(ui.chkObjCb, SIGNAL(stateChanged(int)), this, SLOT(OnFeaturesChanged())); @@ -1008,10 +1016,10 @@ void CSettingsWindow::LoadSettings() QString KeyRootPath_Default = "\\REGISTRY\\USER\\Sandbox_%USER%_%SANDBOX%"; QString IpcRootPath_Default = "\\Sandbox\\%USER%\\%SANDBOX%\\Session_%SESSION%"; - ui.fileRoot->setText(theAPI->GetGlobalSettings()->GetText("FileRootPath", FileRootPath_Default)); + ui.fileRoot->setCurrentText(theAPI->GetGlobalSettings()->GetText("FileRootPath", FileRootPath_Default)); //ui.chkSeparateUserFolders->setChecked(theAPI->GetGlobalSettings()->GetBool("SeparateUserFolders", true)); - ui.regRoot->setText(theAPI->GetGlobalSettings()->GetText("KeyRootPath", KeyRootPath_Default)); - ui.ipcRoot->setText(theAPI->GetGlobalSettings()->GetText("IpcRootPath", IpcRootPath_Default)); + ui.regRoot->setCurrentText(theAPI->GetGlobalSettings()->GetText("KeyRootPath", KeyRootPath_Default)); + ui.ipcRoot->setCurrentText(theAPI->GetGlobalSettings()->GetText("IpcRootPath", IpcRootPath_Default)); ui.chkRamDisk->setEnabled(bImDiskReady); quint32 uDiskLimit = theAPI->GetGlobalSettings()->GetNum64("RamDiskSizeKb"); @@ -1800,10 +1808,10 @@ void CSettingsWindow::SaveSettings() WriteText("DefaultBox", ui.cmbDefault->currentData().toString()); - WriteText("FileRootPath", ui.fileRoot->text()); //ui.fileRoot->setText("\\??\\%SystemDrive%\\Sandbox\\%USER%\\%SANDBOX%"); + WriteText("FileRootPath", ui.fileRoot->currentText()); //ui.fileRoot->setText("\\??\\%SystemDrive%\\Sandbox\\%USER%\\%SANDBOX%"); //WriteAdvancedCheck(ui.chkSeparateUserFolders, "SeparateUserFolders", "", "n"); - WriteText("KeyRootPath", ui.regRoot->text()); //ui.regRoot->setText("\\REGISTRY\\USER\\Sandbox_%USER%_%SANDBOX%"); - WriteText("IpcRootPath", ui.ipcRoot->text()); //ui.ipcRoot->setText("\\Sandbox\\%USER%\\%SANDBOX%\\Session_%SESSION%"); + WriteText("KeyRootPath", ui.regRoot->currentText()); //ui.regRoot->setText("\\REGISTRY\\USER\\Sandbox_%USER%_%SANDBOX%"); + WriteText("IpcRootPath", ui.ipcRoot->currentText()); //ui.ipcRoot->setText("\\Sandbox\\%USER%\\%SANDBOX%\\Session_%SESSION%"); WriteText("RamDiskSizeKb", ui.chkRamDisk->isChecked() ? ui.txtRamLimit->text() : ""); WriteText("RamDiskLetter", ui.chkRamLetter->isChecked() ? ui.cmbRamLetter->currentText() : ""); @@ -2132,7 +2140,7 @@ void CSettingsWindow::OnBrowse() if (Value.isEmpty()) return; - ui.fileRoot->setText(Value + "\\%SANDBOX%"); + ui.fileRoot->setCurrentText(Value + "\\%SANDBOX%"); } void CSettingsWindow::OnRootChanged()