diff --git a/SandboxiePlus/SandMan/Forms/OptionsWindow.ui b/SandboxiePlus/SandMan/Forms/OptionsWindow.ui
index d872dd69..733f863f 100644
--- a/SandboxiePlus/SandMan/Forms/OptionsWindow.ui
+++ b/SandboxiePlus/SandMan/Forms/OptionsWindow.ui
@@ -7,7 +7,7 @@
0
0
817
- 626
+ 555
@@ -45,7 +45,7 @@
QTabWidget::North
- 1
+ 0
@@ -55,7 +55,7 @@
-
- 1
+ 0
@@ -64,83 +64,11 @@
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 16
- 16777215
-
-
-
-
-
-
+
-
+
- -
-
-
- Always show this sandbox in the systray list (Pinned)
-
-
-
- -
-
-
- Sandbox Indicator in title:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
- cmbBoxIndicator
-
-
-
- -
-
-
- Sandboxed window border:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
- cmbBoxBorder
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 0
-
-
-
-
- -
-
-
- 1
-
-
- 10
-
-
- 1
-
-
+
-
+
-
@@ -158,27 +86,16 @@
- -
-
-
- -
-
+
-
+
-
+ Box Type Preset:
-
-
- -
-
-
-
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
- -
-
-
- Show this box in the 'run in box' selection prompt
+
+ cmbBoxType
@@ -198,7 +115,48 @@
- -
+
-
+
+
+
+
+
+
+ -
+
+
+ Always show this sandbox in the systray list (Pinned)
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 0
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+ Show this box in the 'run in box' selection prompt
+
+
+
+ -
Qt::Vertical
@@ -211,63 +169,22 @@
- -
-
-
- -
-
-
- -
-
-
- Box Type Preset:
+
-
+
+
+
+ 0
+ 0
+
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
- cmbBoxType
-
-
-
- -
-
-
- px Width
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
-
- spinBorderWidth
-
-
-
- -
-
-
-
- 75
- true
- true
-
+
+
+ 16
+ 16777215
+
- General Configuration
-
-
-
- -
-
-
-
- 75
- true
- true
-
-
-
- Appearance
+
@@ -284,6 +201,71 @@
+ -
+
+
+ Sandboxed window border:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ cmbBoxBorder
+
+
+
+ -
+
+
+ 1
+
+
+ 10
+
+
+ 1
+
+
+
+ -
+
+
+ px Width
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
+
+
+ spinBorderWidth
+
+
+
+ -
+
+
+ Sandbox Indicator in title:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ cmbBoxIndicator
+
+
+
+ -
+
+
+
+ true
+ true
+
+
+
+ General Configuration
+
+
+
-
@@ -291,6 +273,45 @@
+ -
+
+
+
+ true
+ true
+
+
+
+ Appearance
+
+
+
+ -
+
+
+ -
+
+
+
+ true
+ true
+
+
+
+ Box Notes
+
+
+
+ -
+
+
+
+ 16777215
+ 100
+
+
+
+
@@ -313,7 +334,6 @@
- 75
true
true
@@ -363,7 +383,6 @@
- 75
true
true
@@ -459,7 +478,6 @@
- 75
true
true
@@ -550,7 +568,6 @@
- 75
true
true
@@ -702,7 +719,6 @@
- 75
true
true
@@ -746,7 +762,6 @@
- 75
true
true
@@ -1126,7 +1141,7 @@
-
- 1
+ 0
@@ -1328,7 +1343,7 @@
-
- Use original Access Control Entries for boxed Files and Folders (for MSIServer enable exemptions)
+ Use original Access Control Entries for boxed Files and Folders (for MSIServer enable excemptions)
@@ -1343,20 +1358,14 @@
-
-
-
-
-
- Qt::Vertical
+
-
+
+
+ Run Processes on an own Sandboxed Desktop
-
-
- 20
- 5
-
-
-
+
- -
+
-
Qt::Horizontal
@@ -1369,6 +1378,22 @@
+ -
+
+
+
+ true
+ true
+
+
+
+ Protect the sandbox integrity itself
+
+
+ Security Isolation & Filtering
+
+
+
-
@@ -1379,6 +1404,20 @@
+ -
+
+
+ Disable Security Filtering (not recommended)
+
+
+
+ -
+
+
+ Disable Security Isolation
+
+
+
-
@@ -1389,6 +1428,19 @@
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 5
+
+
+
+
-
@@ -1399,11 +1451,10 @@
- -
-
+
-
+
- 75
true
true
@@ -1412,21 +1463,14 @@
Protect the sandbox integrity itself
- Security Isolation & Filtering
+ Desktop Isolation
- -
-
+
-
+
- Disable Security Isolation
-
-
-
- -
-
-
- Disable Security Filtering (not recommended)
+ Open Window Station (improves compatybility by reducing desktop isolation)
@@ -1438,7 +1482,7 @@
Box Protection
-
+
-
@@ -1517,7 +1561,7 @@
-
-
+
Qt::Vertical
@@ -1546,7 +1590,6 @@
- 75
true
true
@@ -1645,7 +1688,6 @@
- 75
true
true
@@ -1737,7 +1779,6 @@
- 75
true
true
@@ -1827,7 +1868,6 @@
- 50
false
true
@@ -1842,7 +1882,6 @@
- 75
true
true
@@ -1856,7 +1895,6 @@
- 75
true
true
@@ -1884,7 +1922,6 @@
- 75
true
true
@@ -1931,7 +1968,6 @@
- 75
true
true
@@ -2574,7 +2610,6 @@ Partially checked: No groups will be added to the newly created sandboxed token.
- 75
true
true
@@ -3357,7 +3392,6 @@ To specify a process use '$:program.exe' as path.
- 75
true
true
@@ -3391,7 +3425,6 @@ To specify a process use '$:program.exe' as path.
- 75
true
true
@@ -3682,7 +3715,6 @@ The process match level has a higher priority than the specificity and describes
- 75
true
true
@@ -3795,7 +3827,7 @@ The process match level has a higher priority than the specificity and describes
-
-
-
+
Sandboxed programs can be forced to use a preset SOCKS5 proxy.
@@ -3978,7 +4010,6 @@ The process match level has a higher priority than the specificity and describes
- 75
true
true
@@ -4005,7 +4036,6 @@ The process match level has a higher priority than the specificity and describes
- 75
true
true
@@ -4228,7 +4258,6 @@ The process match level has a higher priority than the specificity and describes
- 50
false
true
@@ -4298,7 +4327,6 @@ The process match level has a higher priority than the specificity and describes
- 75
true
true
@@ -4363,7 +4391,6 @@ The process match level has a higher priority than the specificity and describes
- 75
true
true
@@ -4473,7 +4500,6 @@ This is done to prevent rogue processes inside the sandbox from creating a renam
- 50
false
true
@@ -4854,26 +4880,73 @@ This is done to prevent rogue processes inside the sandbox from creating a renam
-
-
-
- 50
- false
- true
-
-
+
- Privacy
+ Processes
-
+
-
-
+
- Use a custom Locale/LangID
+ Don't allow sandboxed processes to see processes running outside any boxes
- -
+
-
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
+ Remove
+
+
+
+ -
+
+
+
+ true
+ true
+
+
+
+ Process Hiding
+
+
+
+ -
+
+
+ Show Templates
+
+
+
+ -
+
+
+ Add Process
+
+
+
+ -
+
+
+ Don't allow sandboxed processes to see processes running in other boxes
+
+
+
+ -
Hide host processes from processes running in the sandbox.
@@ -4883,24 +4956,7 @@ This is done to prevent rogue processes inside the sandbox from creating a renam
- -
-
-
- Don't allow sandboxed processes to see processes running in other boxes
-
-
-
- -
-
-
- -
-
-
- Add Process
-
-
-
- -
+
-
@@ -4923,62 +4979,50 @@ This is done to prevent rogue processes inside the sandbox from creating a renam
- -
-
-
- Show Templates
-
-
-
- -
-
+
-
+
- Dump the current Firmware Tables to HKCU\System\SbieCustom
+ Some programs read system details through WMI (a Windows built-in database) instead of normal ways. For example, "tasklist.exe" could get full processes list through accessing WMI, even if "HideOtherBoxes" is used. Enable this option to stop this behaviour.
- Dump FW Tables
+ Prevent sandboxed processes from accessing system details through WMI (see tooltip for more info)
- -
-
+
+
+
+
+
+ false
+ true
+
+
+
+ Privacy
+
+
+ -
+
+
+
+
- Remove
+ Hide Firmware Information
- -
-
+
-
+
- Don't allow sandboxed processes to see processes running outside any boxes
+ Hide Disk Serial Number
- -
-
-
-
- 75
- true
- true
-
-
+
-
+
- Data Protection
-
-
-
- -
-
-
-
- 75
- true
- true
-
-
-
- Process Hiding
+ Obfuscate known unique identifiers in the registry
@@ -4995,8 +5039,61 @@ This is done to prevent rogue processes inside the sandbox from creating a renam
- -
-
+
-
+
+
+ Dump the current Firmware Tables to HKCU\System\SbieCustom
+
+
+ Dump FW Tables
+
+
+
+ -
+
+
+ -
+
+
+ Hide Network Adapter MAC Address
+
+
+
+ -
+
+
+
+ true
+ true
+
+
+
+ Data Protection
+
+
+
+ -
+
+
+ Use a custom Locale/LangID
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
Qt::Vertical
@@ -5008,53 +5105,11 @@ This is done to prevent rogue processes inside the sandbox from creating a renam
- -
-
-
- Some programs read system details through WMI (a Windows built-in database) instead of normal ways. For example, "tasklist.exe" could get full processes list through accessing WMI, even if "HideOtherBoxes" is used. Enable this option to stop this behaviour.
-
-
- Prevent sandboxed processes from accessing system details through WMI (see tooltip for more info)
-
-
-
- -
-
-
- Obfuscate known unique identifiers in the registry
-
-
-
- -
-
-
- Hide Network Adapter MAC Address
-
-
-
- -
-
-
- Hide Disk Serial Number
-
-
-
- -
-
-
-
-
-
- Hide Firmware Information
-
-
-
- 50
false
true
@@ -5158,7 +5213,6 @@ Note: Forced Programs and Force Folders settings for a sandbox do not apply to
- 75
true
true
@@ -5287,7 +5341,6 @@ instead of "*".
- 75
true
true
@@ -5331,7 +5384,6 @@ instead of "*".
- 50
false
true
@@ -5387,7 +5439,6 @@ instead of "*".
- 75
true
true
@@ -6058,13 +6109,6 @@ Please note that this values are currently user specific and saved globally for
chkHideSerial
chkHideMac
chkHideUID
- chkHideOtherBoxes
- chkHideNonSystemProcesses
- treeHideProc
- btnAddProcess
- chkShowHiddenProcTmpl
- btnDelProcess
- chkBlockWMI
lstUsers
btnAddUser
btnDelUser
diff --git a/SandboxiePlus/SandMan/Forms/SettingsWindow.ui b/SandboxiePlus/SandMan/Forms/SettingsWindow.ui
index 923bf6ae..e13a4c83 100644
--- a/SandboxiePlus/SandMan/Forms/SettingsWindow.ui
+++ b/SandboxiePlus/SandMan/Forms/SettingsWindow.ui
@@ -459,27 +459,30 @@
-
- 0
+ 1
Windows Shell
-
-
-
+
-
+
- Add 'Run Un-Sandboxed' to the context menu
+ Add 'Run Sandboxed' to the explorer context menu
- -
-
-
- -
-
+
-
+
+
+
+ true
+ true
+
+
- Always use DefaultBox
+ Start Sandbox Manager
@@ -496,48 +499,26 @@
- -
-
-
-
- 75
- true
- true
-
+
-
+
+
+ Qt::Horizontal
-
- Start Menu Integration
+
+
+ 272
+ 13
+
-
+
- -
-
-
- Start UI when a sandboxed process is started
-
-
+
-
+
- -
-
-
- -
-
-
-
- 75
- true
- true
-
-
+
-
+
- Run Sandboxed - Actions
-
-
-
- -
-
-
- Scan shell folders and offer links in run menu
+ Always use DefaultBox
@@ -554,47 +535,6 @@
- -
-
-
- Add 'Set Open Path in Sandbox' to context menu
-
-
-
- -
-
-
-
- 75
- true
- true
-
-
-
- Start Sandbox Manager
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 272
- 13
-
-
-
-
- -
-
-
- Add 'Set Force in Sandbox' to the context menu
-
-
-
-
@@ -624,17 +564,43 @@
- -
-
+
-
+
- Add 'Run Sandboxed' to the explorer context menu
+ Add 'Set Open Path in Sandbox' to context menu
- -
-
+
-
+
- Start UI with Windows
+ Scan shell folders and offer links in run menu
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 154
+
+
+
+
+ -
+
+
+
+ true
+ true
+
+
+
+ Run Sandboxed - Actions
@@ -654,18 +620,76 @@
- -
-
-
- Qt::Vertical
+
-
+
+
+ Start UI when a sandboxed process is started
-
-
- 20
- 154
-
+
+
+ -
+
+
+ -
+
+
+ Start UI with Windows
-
+
+
+ -
+
+
+
+ true
+ true
+
+
+
+ Start Menu Integration
+
+
+
+ -
+
+
+ Add 'Run Un-Sandboxed' to the context menu
+
+
+
+ -
+
+
+ Add 'Set Force in Sandbox' to the context menu
+
+
+
+ -
+
+
+
+ true
+ true
+
+
+
+ Sandboxed Desktop
+
+
+
+ -
+
+
+ Switch to sandboxed desktop when starting a process
+
+
+
+ -
+
+
+ Switch to sandboxed desktop with double click
+
+
diff --git a/SandboxiePlus/SandMan/Views/FileView.cpp b/SandboxiePlus/SandMan/Views/FileView.cpp
index 304dfeb6..af9eb2fd 100644
--- a/SandboxiePlus/SandMan/Views/FileView.cpp
+++ b/SandboxiePlus/SandMan/Views/FileView.cpp
@@ -332,7 +332,7 @@ void CFileView::OnFileMenu(const QPoint&)
{
auto pBoxPlus = m_pBox.objectCast();
if (FoundPin.isEmpty())
- pBoxPlus->InsertText("RunCommand", Split2(Files.first(), "\\", true).second + "|\"" + pBoxPlus->MakeBoxCommand(Files.first()) + "\"");
+ pBoxPlus->AppendText("RunCommand", Split2(Files.first(), "\\", true).second + "|\"" + pBoxPlus->MakeBoxCommand(Files.first()) + "\"");
else
pBoxPlus->DelValue("RunCommand", FoundPin);
break;
diff --git a/SandboxiePlus/SandMan/Views/SbieView.cpp b/SandboxiePlus/SandMan/Views/SbieView.cpp
index f5a91894..847d00b8 100644
--- a/SandboxiePlus/SandMan/Views/SbieView.cpp
+++ b/SandboxiePlus/SandMan/Views/SbieView.cpp
@@ -1707,7 +1707,7 @@ void CSbieView::OnProcessAction(QAction* Action, const QList&
Entry["Name"] = pProcess->GetProcessName();
Entry["WorkingDir"] = pProcess->GetWorkingDir();
Entry["Command"] = pBoxPlus->MakeBoxCommand(pProcess->GetFileName());
- pBoxPlus->InsertText("RunCommand", MakeRunEntry(Entry));
+ pBoxPlus->AppendText("RunCommand", MakeRunEntry(Entry));
}
else if(!m_pMenuPinToRun->data().toString().isEmpty())
pBoxPlus->DelValue("RunCommand", m_pMenuPinToRun->data().toString());
@@ -1982,7 +1982,7 @@ void CSbieView::OnMenuContextAction()
QString Link = m_pCtxPinToRun->data().toString();
if (!Link.isEmpty()) {
if (m_pCtxPinToRun->isChecked())
- pBoxPlus->InsertText("RunCommand", Link);
+ pBoxPlus->AppendText("RunCommand", Link);
else
pBoxPlus->DelValue("RunCommand", Link);
}
diff --git a/SandboxiePlus/SandMan/Windows/OptionsAdvanced.cpp b/SandboxiePlus/SandMan/Windows/OptionsAdvanced.cpp
index 5dd02330..e7583bd0 100644
--- a/SandboxiePlus/SandMan/Windows/OptionsAdvanced.cpp
+++ b/SandboxiePlus/SandMan/Windows/OptionsAdvanced.cpp
@@ -44,6 +44,13 @@ void COptionsWindow::CreateAdvanced()
connect(ui.chkNoSecurityIsolation, SIGNAL(clicked(bool)), this, SLOT(OnIsolationChanged()));
connect(ui.chkNoSecurityFiltering, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged()));
+#ifdef INSIDER_BUILD
+ connect(ui.chkSbieDesktop, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged()));
+#else
+ ui.chkSbieDesktop->setVisible(false);
+#endif
+ connect(ui.chkOpenWndStation, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged()));
+
connect(ui.chkOpenDevCMApi, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged()));
//connect(ui.chkOpenLsaSSPI, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged()));
connect(ui.chkOpenSamEndpoint, SIGNAL(clicked(bool)), this, SLOT(OnAdvancedChanged()));
@@ -187,6 +194,11 @@ void COptionsWindow::LoadAdvanced()
ui.chkNoSecurityIsolation->setChecked(m_pBox->GetBool("NoSecurityIsolation", false));
ui.chkNoSecurityFiltering->setChecked(m_pBox->GetBool("NoSecurityFiltering", false));
+#ifdef INSIDER_BUILD
+ ui.chkSbieDesktop->setChecked(m_pBox->GetBool("UseSandboxDesktop", false));
+#endif
+ ui.chkOpenWndStation->setChecked(m_pBox->GetBool("OpenWndStation", false));
+
ui.chkOpenDevCMApi->setChecked(m_pBox->GetBool("OpenDevCMApi", false));
//ui.chkOpenLsaSSPI->setChecked(!m_pBox->GetBool("BlockPassword", true)); // OpenLsaSSPI
ui.chkOpenSamEndpoint->setChecked(m_pBox->GetBool("OpenSamEndpoint", false));
@@ -442,6 +454,11 @@ void COptionsWindow::SaveAdvanced()
WriteAdvancedCheck(ui.chkNoSecurityIsolation, "NoSecurityIsolation", "y", "");
WriteAdvancedCheck(ui.chkNoSecurityFiltering, "NoSecurityFiltering", "y", "");
+#ifdef INSIDER_BUILD
+ WriteAdvancedCheck(ui.chkSbieDesktop, "UseSandboxDesktop", "y", "");
+#endif
+ WriteAdvancedCheck(ui.chkOpenWndStation, "OpenWndStation", "y", "");
+
WriteAdvancedCheck(ui.chkOpenDevCMApi, "OpenDevCMApi", "y", "");
//WriteAdvancedCheck(ui.chkOpenLsaSSPI, "BlockPassword", "n", ""); // OpenLsaSSPI
WriteAdvancedCheck(ui.chkOpenSamEndpoint, "OpenSamEndpoint", "y", "");
diff --git a/SandboxiePlus/SandMan/Windows/OptionsGeneral.cpp b/SandboxiePlus/SandMan/Windows/OptionsGeneral.cpp
index 8b7ad569..a1067022 100644
--- a/SandboxiePlus/SandMan/Windows/OptionsGeneral.cpp
+++ b/SandboxiePlus/SandMan/Windows/OptionsGeneral.cpp
@@ -242,6 +242,8 @@ void COptionsWindow::CreateGeneral()
connect(ui.btnCmdDown, SIGNAL(clicked(bool)), this, SLOT(OnCommandDown()));
connect(ui.btnDelCmd, SIGNAL(clicked(bool)), this, SLOT(OnDelCommand()));
connect(ui.treeRun, SIGNAL(itemChanged(QTreeWidgetItem *, int)), this, SLOT(OnRunChanged()));
+
+ connect(ui.txtNotes, SIGNAL(textChanged()), this, SLOT(OnGeneralChanged()));
}
void COptionsWindow::LoadGeneral()
@@ -381,6 +383,8 @@ void COptionsWindow::LoadGeneral()
ui.chkAllowEfs->setChecked(m_pBox->GetBool("EnableEFS", false));
+ ui.txtNotes->setPlainText(m_pBox->GetTextList("Note", false).join("\n"));
+
OnGeneralChanged();
m_GeneralChanged = false;
@@ -452,7 +456,7 @@ void COptionsWindow::SaveGeneral()
//WriteTextList("RunCommand", RunCommands);
m_pBox->DelValue("RunCommand");
foreach(const QString& Value, RunCommands)
- m_pBox->InsertText("RunCommand", Value);
+ m_pBox->AppendText("RunCommand", Value);
if (ui.cmbVersion->isEnabled())
@@ -514,6 +518,10 @@ void COptionsWindow::SaveGeneral()
WriteAdvancedCheck(ui.chkAllowEfs, "EnableEFS", "y", "");
+ m_pBox->DelValue("Note");
+ foreach(const QString& Value, ui.txtNotes->toPlainText().split("\n"))
+ m_pBox->AppendText("Note", Value);
+
m_GeneralChanged = false;
}
diff --git a/SandboxiePlus/SandMan/Windows/OptionsWindow.cpp b/SandboxiePlus/SandMan/Windows/OptionsWindow.cpp
index 78c117eb..cef30d49 100644
--- a/SandboxiePlus/SandMan/Windows/OptionsWindow.cpp
+++ b/SandboxiePlus/SandMan/Windows/OptionsWindow.cpp
@@ -254,16 +254,18 @@ COptionsWindow::COptionsWindow(const QSharedPointer& pBox, const QStri
ui.tabsAdvanced->setCurrentIndex(0);
ui.tabsAdvanced->setTabIcon(0, CSandMan::GetIcon("Presets"));
ui.tabsAdvanced->setTabIcon(1, CSandMan::GetIcon("Trigger"));
- ui.tabsAdvanced->setTabIcon(2, CSandMan::GetIcon("Anon"));
- ui.tabsAdvanced->setTabIcon(3, CSandMan::GetIcon("Users"));
- ui.tabsAdvanced->setTabIcon(4, CSandMan::GetIcon("SetLogging"));
- ui.tabsAdvanced->setTabIcon(5, CSandMan::GetIcon("Bug"));
+ ui.tabsAdvanced->setTabIcon(2, CSandMan::GetIcon("Shield2"));
+ ui.tabsAdvanced->setTabIcon(3, CSandMan::GetIcon("Anon"));
+ ui.tabsAdvanced->setTabIcon(4, CSandMan::GetIcon("Users"));
+ ui.tabsAdvanced->setTabIcon(5, CSandMan::GetIcon("SetLogging"));
+ ui.tabsAdvanced->setTabIcon(6, CSandMan::GetIcon("Bug"));
ui.tabsTemplates->setCurrentIndex(0);
ui.tabsTemplates->setTabIcon(0, CSandMan::GetIcon("Template"));
ui.tabsTemplates->setTabIcon(1, CSandMan::GetIcon("Explore"));
ui.tabsTemplates->setTabIcon(2, CSandMan::GetIcon("Accessibility"));
+
int iViewMode = theConf->GetInt("Options/ViewMode", 1);
int iOptionLayout = theConf->GetInt("Options/NewConfigLayout", 2);
if (iOptionLayout == 2)
@@ -367,6 +369,7 @@ COptionsWindow::COptionsWindow(const QSharedPointer& pBox, const QStri
#endif
AddIconToLabel(ui.lblAppearance, CSandMan::GetIcon("Design").pixmap(size,size));
AddIconToLabel(ui.lblBoxType, CSandMan::GetIcon("Maintenance").pixmap(size,size));
+ AddIconToLabel(ui.lblNotes, CSandMan::GetIcon("EditIni").pixmap(size,size));
AddIconToLabel(ui.lblStructure, CSandMan::GetIcon("Structure").pixmap(size,size));
AddIconToLabel(ui.lblMigration, CSandMan::GetIcon("Move").pixmap(size,size));
AddIconToLabel(ui.lblDelete, CSandMan::GetIcon("Erase").pixmap(size,size));
@@ -394,6 +397,7 @@ COptionsWindow::COptionsWindow(const QSharedPointer& pBox, const QStri
AddIconToLabel(ui.lblPrivilege, CSandMan::GetIcon("Token").pixmap(size,size));
AddIconToLabel(ui.lblToken, CSandMan::GetIcon("Sandbox").pixmap(size,size));
AddIconToLabel(ui.lblIsolation, CSandMan::GetIcon("Fence").pixmap(size,size));
+ AddIconToLabel(ui.lblDesktop, CSandMan::GetIcon("Monitor").pixmap(size,size));
AddIconToLabel(ui.lblAccess, CSandMan::GetIcon("NoAccess").pixmap(size,size));
AddIconToLabel(ui.lblProtection, CSandMan::GetIcon("EFence").pixmap(size,size));
@@ -911,7 +915,7 @@ void COptionsWindow::WriteAdvancedCheck(QCheckBox* pCheck, const QString& Name,
}
if (!StrValue.isEmpty()) {
- SB_STATUS Status = m_pBox->InsertText(Name, StrValue);
+ SB_STATUS Status = m_pBox->AppendText(Name, StrValue);
if (!Status)
throw Status;
}
@@ -1325,14 +1329,14 @@ void COptionsWindow::SaveIniSection()
//if (!OldSettings.removeOne(Settings))
// NewSettings.append(Settings);
- m_pBox->InsertText(Settings.first, Settings.second);
+ m_pBox->AppendText(Settings.first, Settings.second);
}
//for (QList>::const_iterator I = OldSettings.begin(); I != OldSettings.end(); ++I)
// m_pBox->DelValue(I->first, I->second);
//
//for (QList>::const_iterator I = NewSettings.begin(); I != NewSettings.end(); ++I)
- // m_pBox->InsertText(I->first, I->second);
+ // m_pBox->AppendText(I->first, I->second);
m_pBox->SetRefreshOnChange(true);
m_pBox->GetAPI()->CommitIniChanges();*/
diff --git a/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp b/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp
index f4cd35c5..aed7b43a 100644
--- a/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp
+++ b/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp
@@ -176,6 +176,7 @@ CSettingsWindow::CSettingsWindow(QWidget* parent)
AddIconToLabel(ui.lblStartUp, CSandMan::GetIcon("Start").pixmap(size,size));
AddIconToLabel(ui.lblRunBoxed, CSandMan::GetIcon("Run").pixmap(size,size));
AddIconToLabel(ui.lblStartMenu, CSandMan::GetIcon("StartMenu").pixmap(size,size));
+ AddIconToLabel(ui.lblDesktop, CSandMan::GetIcon("Monitor").pixmap(size,size));
AddIconToLabel(ui.lblSysTray, CSandMan::GetIcon("Maintenance").pixmap(size,size));
AddIconToLabel(ui.lblInterface, CSandMan::GetIcon("GUI").pixmap(size,size));
@@ -348,6 +349,15 @@ CSettingsWindow::CSettingsWindow(QWidget* parent)
connect(ui.chkScanMenu, SIGNAL(stateChanged(int)), this, SLOT(OnOptChanged()));
connect(ui.cmbIntegrateMenu, SIGNAL(currentIndexChanged(int)), this, SLOT(OnOptChanged()));
connect(ui.cmbIntegrateDesk, SIGNAL(currentIndexChanged(int)), this, SLOT(OnOptChanged()));
+
+#ifdef INSIDER_BUILD
+ connect(ui.chkDeskAutoSwitch, SIGNAL(stateChanged(int)), this, SLOT(OnOptChanged()));
+ connect(ui.chkDeskQuickSwitch, SIGNAL(stateChanged(int)), this, SLOT(OnOptChanged()));
+#else
+ ui.lblDesktop->setVisible(false);
+ ui.chkDeskAutoSwitch->setVisible(false);
+ ui.chkDeskQuickSwitch->setVisible(false);
+#endif
connect(ui.cmbSysTray, SIGNAL(currentIndexChanged(int)), this, SLOT(OnOptChanged()));
connect(ui.cmbTrayBoxes, SIGNAL(currentIndexChanged(int)), this, SLOT(OnOptChanged()));
@@ -434,7 +444,6 @@ CSettingsWindow::CSettingsWindow(QWidget* parent)
connect(ui.chkObjCb, SIGNAL(stateChanged(int)), this, SLOT(OnFeaturesChanged()));
if (CurrentVersion.value("CurrentBuild").toInt() < 14393) // Windows 10 RS1 and later
ui.chkWin32k->setEnabled(false);
- //connect(ui.chkForceExplorerChild, SIGNAL(stateChanged(int)), this, SLOT(OnFeaturesChanged()));
//connect(ui.chkWin32k, SIGNAL(stateChanged(int)), this, SLOT(OnFeaturesChanged()));
m_FeaturesChanged = false;
connect(ui.chkWin32k, SIGNAL(stateChanged(int)), this, SLOT(OnGeneralChanged()));
@@ -987,7 +996,12 @@ void CSettingsWindow::LoadSettings()
ui.chkScanMenu->setChecked(theConf->GetBool("Options/ScanStartMenu", true));
ui.cmbIntegrateMenu->setCurrentIndex(theConf->GetInt("Options/IntegrateStartMenu", 0));
ui.cmbIntegrateDesk->setCurrentIndex(theConf->GetInt("Options/IntegrateDesktop", 0));
-
+
+#ifdef INSIDER_BUILD
+ ui.chkDeskAutoSwitch->setChecked(theConf->GetBool("Options/AutoDesktopSwitch", true));
+ ui.chkDeskQuickSwitch->setChecked(theConf->GetBool("Options/QuickDesktopSwitch", true));
+#endif
+
ui.cmbSysTray->setCurrentIndex(theConf->GetInt("Options/SysTrayIcon", 1));
ui.cmbTrayBoxes->setCurrentIndex(theConf->GetInt("Options/SysTrayFilter", 0));
ui.chkCompactTray->setChecked(theConf->GetBool("Options/CompactTray", false));
@@ -996,7 +1010,6 @@ void CSettingsWindow::LoadSettings()
ui.chkMinimize->setChecked(theConf->GetBool("Options/MinimizeToTray", false));
ui.chkSingleShow->setChecked(theConf->GetBool("Options/TraySingleClick", false));
- //ui.chkForceExplorerChild->setChecked(strcmp(theAPI->GetGlobalSettings()->GetText("ForceExplorerChild").toStdString().c_str(), theAPI->GetGlobalSettings()->GetText("DefaultBox").toStdString().c_str())==0);
OnLoadAddon();
bool bImDiskReady = theGUI->IsImDiskReady();
@@ -1773,6 +1786,11 @@ void CSettingsWindow::SaveSettings()
theGUI->SyncStartMenu();
}
+#ifdef INSIDER_BUILD
+ theConf->SetValue("Options/AutoDesktopSwitch", ui.chkDeskAutoSwitch->isChecked());
+ theConf->SetValue("Options/QuickDesktopSwitch", ui.chkDeskQuickSwitch->isChecked());
+#endif
+
theConf->SetValue("Options/SysTrayIcon", ui.cmbSysTray->currentIndex());
theConf->SetValue("Options/SysTrayFilter", ui.cmbTrayBoxes->currentIndex());
theConf->SetValue("Options/CompactTray", ui.chkCompactTray->isChecked());
@@ -1811,7 +1829,7 @@ void CSettingsWindow::SaveSettings()
//WriteTextList("RunCommand", RunCommands);
theAPI->GetGlobalSettings()->DelValue("RunCommand");
foreach(const QString & Value, RunCommands)
- theAPI->GetGlobalSettings()->InsertText("RunCommand", Value);
+ theAPI->GetGlobalSettings()->AppendText("RunCommand", Value);
}
if (m_GeneralChanged)