This commit is contained in:
DavidXanatos 2023-04-23 20:08:25 +02:00
parent c912bcce34
commit dbfb45613e
6 changed files with 61 additions and 45 deletions

View File

@ -16,6 +16,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## [1.9.1 / 5.64.1] - 2023-04-?? ## [1.9.1 / 5.64.1] - 2023-04-??
### Added
- added option to disable all force rules of a given sandbox [#2797](https://github.com/sandboxie-plus/Sandboxie/issues/2797)
### Changed ### Changed
- reworked configuration storage for box grouping - reworked configuration storage for box grouping

View File

@ -1045,6 +1045,9 @@ _FX void Process_CreateForceData(
if (! Conf_IsBoxEnabled(section, SidString, SessionId)) if (! Conf_IsBoxEnabled(section, SidString, SessionId))
continue; continue;
if (Conf_Get_Boolean(section, L"DisableForceRules", 0, FALSE))
continue;
// //
// create FORCE_BOX // create FORCE_BOX
// //

View File

@ -1693,6 +1693,16 @@ This is done to prevent rogue processes inside the sandbox from creating a renam
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_35"> <layout class="QGridLayout" name="gridLayout_35">
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label">
<property name="text">
<string>Programs entered here, or programs started from entered locations, will be put in this sandbox automatically, unless they are explicitly started in another sandbox.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="1"> <item row="4" column="1">
<spacer name="verticalSpacer_5"> <spacer name="verticalSpacer_5">
<property name="orientation"> <property name="orientation">
@ -1706,6 +1716,25 @@ This is done to prevent rogue processes inside the sandbox from creating a renam
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="3" column="1">
<widget class="QToolButton" name="btnForceDir">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>Force Folder</string>
</property>
</widget>
</item>
<item row="5" column="1"> <item row="5" column="1">
<widget class="QCheckBox" name="chkShowForceTmpl"> <widget class="QCheckBox" name="chkShowForceTmpl">
<property name="text"> <property name="text">
@ -1713,6 +1742,23 @@ This is done to prevent rogue processes inside the sandbox from creating a renam
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0" rowspan="5">
<widget class="QTreeWidget" name="treeForced">
<property name="sortingEnabled">
<bool>true</bool>
</property>
<column>
<property name="text">
<string>Type</string>
</property>
</column>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
</widget>
</item>
<item row="2" column="1"> <item row="2" column="1">
<widget class="QToolButton" name="btnForceProg"> <widget class="QToolButton" name="btnForceProg">
<property name="sizePolicy"> <property name="sizePolicy">
@ -1739,49 +1785,10 @@ This is done to prevent rogue processes inside the sandbox from creating a renam
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0" rowspan="5"> <item row="7" column="0">
<widget class="QTreeWidget" name="treeForced"> <widget class="QCheckBox" name="chkDisableForced">
<property name="sortingEnabled">
<bool>true</bool>
</property>
<column>
<property name="text"> <property name="text">
<string>Type</string> <string>Disable forced Process and Folder for this sandbox</string>
</property>
</column>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
</widget>
</item>
<item row="3" column="1">
<widget class="QToolButton" name="btnForceDir">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>23</height>
</size>
</property>
<property name="text">
<string>Force Folder</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label">
<property name="text">
<string>Programs entered here, or programs started from entered locations, will be put in this sandbox automatically, unless they are explicitly started in another sandbox.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>

View File

@ -25,6 +25,7 @@ void COptionsWindow::LoadForced()
foreach(const QString& Value, m_pBox->GetTextList("ForceFolderDisabled", m_Template)) foreach(const QString& Value, m_pBox->GetTextList("ForceFolderDisabled", m_Template))
AddForcedEntry(Value, (int)ePath, true); AddForcedEntry(Value, (int)ePath, true);
ui.chkDisableForced->setChecked(m_pBox->GetBool("DisableForceRules", false));
ui.treeBreakout->clear(); ui.treeBreakout->clear();
@ -158,6 +159,7 @@ void COptionsWindow::SaveForced()
WriteTextList("ForceFolder", ForceFolder); WriteTextList("ForceFolder", ForceFolder);
WriteTextList("ForceFolderDisabled", ForceFolderDisabled); WriteTextList("ForceFolderDisabled", ForceFolderDisabled);
WriteAdvancedCheck(ui.chkDisableForced, "DisableForceRules", "y", "");
QStringList BreakoutProcess; QStringList BreakoutProcess;
@ -269,7 +271,7 @@ void COptionsWindow::OnDelBreakout()
OnOptChanged(); OnOptChanged();
} }
void COptionsWindow::OnForcedChanged(QTreeWidgetItem* pItem, int Index) void COptionsWindow::OnForcedChanged()
{ {
//QString Test = pItem->data(1, Qt::UserRole).toString(); //QString Test = pItem->data(1, Qt::UserRole).toString();
//qDebug() << Test; //qDebug() << Test;

View File

@ -452,7 +452,8 @@ COptionsWindow::COptionsWindow(const QSharedPointer<CSbieIni>& pBox, const QStri
//ui.treeForced->setEditTriggers(QAbstractItemView::DoubleClicked); //ui.treeForced->setEditTriggers(QAbstractItemView::DoubleClicked);
ui.treeForced->setItemDelegateForColumn(0, new NoEditDelegate(this)); ui.treeForced->setItemDelegateForColumn(0, new NoEditDelegate(this));
ui.treeForced->setItemDelegateForColumn(1, new ProgramsDelegate(this, ui.treeForced, -1, this)); ui.treeForced->setItemDelegateForColumn(1, new ProgramsDelegate(this, ui.treeForced, -1, this));
connect(ui.treeForced, SIGNAL(itemChanged(QTreeWidgetItem *, int)), this, SLOT(OnForcedChanged(QTreeWidgetItem *, int))); connect(ui.treeForced, SIGNAL(itemChanged(QTreeWidgetItem *, int)), this, SLOT(OnForcedChanged()));
connect(ui.chkDisableForced, SIGNAL(clicked(bool)), this, SLOT(OnForcedChanged()));
connect(ui.btnBreakoutProg, SIGNAL(clicked(bool)), this, SLOT(OnBreakoutProg())); connect(ui.btnBreakoutProg, SIGNAL(clicked(bool)), this, SLOT(OnBreakoutProg()));
QMenu* pFileBtnMenu2 = new QMenu(ui.btnBreakoutProg); QMenu* pFileBtnMenu2 = new QMenu(ui.btnBreakoutProg);

View File

@ -81,7 +81,7 @@ private slots:
void OnForceDir(); void OnForceDir();
void OnDelForce(); void OnDelForce();
void OnShowForceTmpl() { LoadForcedTmpl(true); } void OnShowForceTmpl() { LoadForcedTmpl(true); }
void OnForcedChanged(QTreeWidgetItem* pItem, int Index); void OnForcedChanged();
void OnBreakoutProg(); void OnBreakoutProg();
void OnBreakoutBrowse(); void OnBreakoutBrowse();