1.6.0a
This commit is contained in:
parent
b84b5c5aa2
commit
213d9fbbb9
|
@ -7,15 +7,19 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||
|
||||
## [1.6.0a / 5.61.0] - 2022-??-??
|
||||
|
||||
#changed
|
||||
### Added
|
||||
- added global option to add run menu entries to all boxes
|
||||
|
||||
### Changed
|
||||
- reorganized cmd entried [#2451](https://github.com/sandboxie-plus/Sandboxie/issues/2451)
|
||||
|
||||
#fixed
|
||||
### Fixed
|
||||
- fixed issue with support setting drop down menu multiplying [2502#](https://github.com/sandboxie-plus/Sandboxie/pull/2502) (okrc)
|
||||
- Add translations folder to deprecated [#2500](https://github.com/sandboxie-plus/Sandboxie/pull/2500) (lufog)
|
||||
- fixed issue with boolean settings which can also be set per process [#2495](https://github.com/sandboxie-plus/Sandboxie/issues/2495)
|
||||
|
||||
|
||||
|
||||
## [1.6.0 / 5.61.0] - 2022-11-26
|
||||
|
||||
### Added
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
<enum>QTabWidget::North</enum>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>8</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tabGeneral">
|
||||
<attribute name="title">
|
||||
|
@ -439,6 +439,16 @@
|
|||
<string>Interface Config</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_17">
|
||||
<item row="1" column="0">
|
||||
<widget class="QTabWidget" name="tabsGUI">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tabUI">
|
||||
<attribute name="title">
|
||||
<string>User Interface</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_11">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_15">
|
||||
<item row="10" column="0">
|
||||
|
@ -619,30 +629,115 @@
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tabRun">
|
||||
<attribute name="title">
|
||||
<string>Run Menu</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_22">
|
||||
<item row="1" column="1">
|
||||
<widget class="QToolButton" name="btnAddCmd">
|
||||
<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>Add program</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>You can configure custom entries for all sandboxes run menus.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<spacer name="verticalSpacer_15">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QToolButton" name="btnDelCmd">
|
||||
<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>Remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" rowspan="3">
|
||||
<widget class="QTreeWidget" name="treeRun">
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Command Line</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tabAdvanced">
|
||||
<attribute name="title">
|
||||
<string>Advanced Config</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<item row="1" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_5"/>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<item row="4" column="2" colspan="4">
|
||||
<widget class="QLineEdit" name="ipcRoot"/>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QCheckBox" name="chkSeparateUserFolders">
|
||||
<property name="text">
|
||||
<string>Separate user folders</string>
|
||||
<widget class="QTabWidget" name="tabsAdvanced">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1" colspan="5">
|
||||
<widget class="QCheckBox" name="chkWin32k">
|
||||
<property name="text">
|
||||
<string>Hook selected Win32k system calls to enable GPU acceleration (experimental)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<widget class="QWidget" name="tabSandbox">
|
||||
<attribute name="title">
|
||||
<string>Sandbox Config</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_20">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_18">
|
||||
<item row="2" column="5">
|
||||
<widget class="QCheckBox" name="chkAutoRoot">
|
||||
<property name="text">
|
||||
|
@ -650,42 +745,10 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2" colspan="4">
|
||||
<widget class="QLineEdit" name="regRoot"/>
|
||||
</item>
|
||||
<item row="10" column="3">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="2" colspan="4">
|
||||
<widget class="QLineEdit" name="fileRoot"/>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="text">
|
||||
<string>Sandbox <a href="sbie://docs/keyrootpath">registry root</a>: </string>
|
||||
<string>Sandbox <a href="sbie://docs/ipcrootpath">ipc root</a>: </string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
|
@ -695,19 +758,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QLabel" name="lblBoxFeatures">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
<kerning>true</kerning>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Sandboxing features</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="6">
|
||||
<widget class="QPushButton" name="btnBrowse">
|
||||
<property name="maximumSize">
|
||||
|
@ -721,16 +771,13 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblBoxRoot">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
<kerning>true</kerning>
|
||||
</font>
|
||||
</property>
|
||||
<item row="1" column="2" colspan="4">
|
||||
<widget class="QLineEdit" name="fileRoot"/>
|
||||
</item>
|
||||
<item row="6" column="1" colspan="5">
|
||||
<widget class="QCheckBox" name="chkWFP">
|
||||
<property name="text">
|
||||
<string>Sandbox default</string>
|
||||
<string>Use Windows Filtering Platform to restrict network access</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -747,19 +794,18 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1" colspan="5">
|
||||
<widget class="QCheckBox" name="chkObjCb">
|
||||
<property name="text">
|
||||
<string>Activate Kernel Mode Object Filtering</string>
|
||||
<item row="10" column="3">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1" colspan="5">
|
||||
<widget class="QCheckBox" name="chkWFP">
|
||||
<property name="text">
|
||||
<string>Use Windows Filtering Platform to restrict network access</string>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="10" column="2">
|
||||
<spacer name="verticalSpacer_2">
|
||||
|
@ -774,6 +820,92 @@
|
|||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="9" column="1" colspan="5">
|
||||
<widget class="QCheckBox" name="chkSbieLogon">
|
||||
<property name="text">
|
||||
<string>Use a Sandboxie login instead of an anonymous token (experimental)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<spacer name="horizontalSpacer_4">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lblBoxRoot">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
<kerning>true</kerning>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Sandbox default</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2" colspan="4">
|
||||
<widget class="QLineEdit" name="regRoot"/>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="text">
|
||||
<string>Sandbox <a href="sbie://docs/keyrootpath">registry root</a>: </string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1" colspan="5">
|
||||
<widget class="QCheckBox" name="chkWin32k">
|
||||
<property name="text">
|
||||
<string>Hook selected Win32k system calls to enable GPU acceleration (experimental)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1" colspan="5">
|
||||
<widget class="QCheckBox" name="chkObjCb">
|
||||
<property name="text">
|
||||
<string>Activate Kernel Mode Object Filtering</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2" colspan="4">
|
||||
<widget class="QLineEdit" name="ipcRoot"/>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QCheckBox" name="chkSeparateUserFolders">
|
||||
<property name="text">
|
||||
<string>Separate user folders</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QLabel" name="lblBoxFeatures">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
<kerning>true</kerning>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Sandboxing features</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="4">
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<property name="orientation">
|
||||
|
@ -787,27 +919,83 @@
|
|||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="text">
|
||||
<string>Sandbox <a href="sbie://docs/ipcrootpath">ipc root</a>: </string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="1" colspan="5">
|
||||
<widget class="QCheckBox" name="chkSbieLogon">
|
||||
<property name="text">
|
||||
<string>Use a Sandboxie login instead of an anonymous token (experimental)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tabLock">
|
||||
<attribute name="title">
|
||||
<string>Config Protection</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_21">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_19">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="lblProtection">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
<kerning>true</kerning>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Config protection</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QCheckBox" name="chkClearPass">
|
||||
<property name="text">
|
||||
<string>Clear password when main window becomes hidden</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCheckBox" name="chkAdminOnly">
|
||||
<property name="text">
|
||||
<string>Only Administrator user accounts can make changes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QCheckBox" name="chkAdminOnlyFP">
|
||||
<property name="text">
|
||||
<string>Only Administrator user accounts can use Pause Forcing Programs command</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="chkPassRequired">
|
||||
<property name="text">
|
||||
<string>Password must be entered in order to make changes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QPushButton" name="btnSetPassword">
|
||||
<property name="text">
|
||||
<string>Change Password</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<spacer name="verticalSpacer_7">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
@ -901,78 +1089,6 @@
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tabLock">
|
||||
<attribute name="title">
|
||||
<string>Config Protection</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout" name="gridLayout_12">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_11">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="lblProtection">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
<kerning>true</kerning>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Config protection</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QCheckBox" name="chkClearPass">
|
||||
<property name="text">
|
||||
<string>Clear password when main window becomes hidden</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCheckBox" name="chkAdminOnly">
|
||||
<property name="text">
|
||||
<string>Only Administrator user accounts can make changes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QCheckBox" name="chkAdminOnlyFP">
|
||||
<property name="text">
|
||||
<string>Only Administrator user accounts can use Pause Forcing Programs command</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="chkPassRequired">
|
||||
<property name="text">
|
||||
<string>Password must be entered in order to make changes</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QPushButton" name="btnSetPassword">
|
||||
<property name="text">
|
||||
<string>Change Password</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<spacer name="verticalSpacer_7">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tabCompat">
|
||||
<attribute name="title">
|
||||
<string>Compatibility</string>
|
||||
|
|
|
@ -154,7 +154,7 @@ void COptionsWindow::CreateGeneral()
|
|||
connect(ui.chkRawDiskNotify, SIGNAL(clicked(bool)), this, SLOT(OnGeneralChanged()));
|
||||
|
||||
connect(ui.btnAddCmd, SIGNAL(clicked(bool)), this, SLOT(OnAddCommand()));
|
||||
QMenu* pRunBtnMenu = new QMenu(ui.btnAddFile);
|
||||
QMenu* pRunBtnMenu = new QMenu(ui.btnAddCmd);
|
||||
pRunBtnMenu->addAction(tr("Browse for Program"), this, SLOT(OnBrowsePath()));
|
||||
ui.btnAddCmd->setPopupMode(QToolButton::MenuButtonPopup);
|
||||
ui.btnAddCmd->setMenu(pRunBtnMenu);
|
||||
|
|
|
@ -141,7 +141,7 @@ CSettingsWindow::CSettingsWindow(QWidget* parent)
|
|||
|
||||
ui.tabs->setTabIcon(0, CSandMan::GetIcon("Config"));
|
||||
ui.tabs->setTabIcon(1, CSandMan::GetIcon("Shell"));
|
||||
ui.tabs->setTabIcon(2, CSandMan::GetIcon("GUI"));
|
||||
ui.tabs->setTabIcon(2, CSandMan::GetIcon("Design"));
|
||||
ui.tabs->setTabIcon(3, CSandMan::GetIcon("Advanced"));
|
||||
ui.tabs->setTabIcon(4, CSandMan::GetIcon("Alarm"));
|
||||
ui.tabs->setTabIcon(5, CSandMan::GetIcon("Lock"));
|
||||
|
@ -149,6 +149,12 @@ CSettingsWindow::CSettingsWindow(QWidget* parent)
|
|||
ui.tabs->setTabIcon(7, CSandMan::GetIcon("EditIni"));
|
||||
ui.tabs->setTabIcon(8, CSandMan::GetIcon("Support"));
|
||||
|
||||
ui.tabsGUI->setTabIcon(0, CSandMan::GetIcon("Design"));
|
||||
ui.tabsGUI->setTabIcon(1, CSandMan::GetIcon("Run"));
|
||||
|
||||
ui.tabsAdvanced->setTabIcon(0, CSandMan::GetIcon("Options"));
|
||||
ui.tabsAdvanced->setTabIcon(1, CSandMan::GetIcon("Lock"));
|
||||
|
||||
int size = 16.0;
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
size *= (QApplication::desktop()->logicalDpiX() / 96.0); // todo Qt6
|
||||
|
@ -170,23 +176,7 @@ CSettingsWindow::CSettingsWindow(QWidget* parent)
|
|||
|
||||
AddIconToLabel(ui.lblUpdates, CSandMan::GetIcon("Update").pixmap(size,size));
|
||||
|
||||
|
||||
int iViewMode = theConf->GetInt("Options/ViewMode", 1);
|
||||
int iOptionLayout = theConf->GetInt("Options/NewConfigLayout", 2);
|
||||
if (iOptionLayout == 2)
|
||||
iOptionLayout = 1; // iViewMode != 2 ? 1 : 0;
|
||||
|
||||
// re structure the UI a bit
|
||||
if (iOptionLayout == 1)
|
||||
{
|
||||
QWidget* pWidget = new QWidget(this);
|
||||
QGridLayout* pLayout = new QGridLayout(pWidget);
|
||||
QTabWidget* pTabs = new QTabWidget();
|
||||
pLayout->addWidget(pTabs, 0, 0);
|
||||
ui.tabs->insertTab(3, pWidget, CSandMan::GetIcon("Advanced"), tr("Advanced Config"));
|
||||
pTabs->addTab(ui.tabAdvanced, CSandMan::GetIcon("Options"), tr("Sandbox Config"));
|
||||
pTabs->addTab(ui.tabLock, CSandMan::GetIcon("Lock"), tr("Config Protection"));
|
||||
}
|
||||
|
||||
/*if (iViewMode == 0)
|
||||
{
|
||||
|
@ -282,6 +272,16 @@ CSettingsWindow::CSettingsWindow(QWidget* parent)
|
|||
connect(ui.cmbTrayBoxes, SIGNAL(currentIndexChanged(int)), this, SLOT(OnChange()));
|
||||
connect(ui.chkCompactTray, SIGNAL(stateChanged(int)), this, SLOT(OnChangeGUI()));
|
||||
|
||||
|
||||
connect(ui.btnAddCmd, SIGNAL(clicked(bool)), this, SLOT(OnAddCommand()));
|
||||
QMenu* pRunBtnMenu = new QMenu(ui.btnAddCmd);
|
||||
pRunBtnMenu->addAction(tr("Browse for Program"), this, SLOT(OnBrowsePath()));
|
||||
ui.btnAddCmd->setPopupMode(QToolButton::MenuButtonPopup);
|
||||
ui.btnAddCmd->setMenu(pRunBtnMenu);
|
||||
connect(ui.btnDelCmd, SIGNAL(clicked(bool)), this, SLOT(OnDelCommand()));
|
||||
connect(ui.treeRun, SIGNAL(itemChanged(QTreeWidgetItem *, int)), this, SLOT(OnRunChanged()));
|
||||
|
||||
|
||||
m_FeaturesChanged = false;
|
||||
connect(ui.chkWFP, SIGNAL(stateChanged(int)), this, SLOT(OnFeaturesChanged()));
|
||||
connect(ui.chkObjCb, SIGNAL(stateChanged(int)), this, SLOT(OnFeaturesChanged()));
|
||||
|
@ -405,7 +405,7 @@ void CSettingsWindow::showTab(int Tab, bool bExclusive)
|
|||
case eOptions: pWidget = ui.tabGeneral; break;
|
||||
case eShell: pWidget = ui.tabShell; break;
|
||||
case eGuiConfig: pWidget = ui.tabGUI; break;
|
||||
case eAdvanced: pWidget = ui.tabAdvanced; break;
|
||||
case eAdvanced: pWidget = ui.tabSandbox; break;
|
||||
case eProgCtrl: pWidget = ui.tabAlerts; break;
|
||||
case eConfigLock: pWidget = ui.tabLock; break;
|
||||
case eSoftCompat: pWidget = ui.tabCompat; break;
|
||||
|
@ -458,6 +458,50 @@ bool CSettingsWindow::eventFilter(QObject *source, QEvent *event)
|
|||
return QDialog::eventFilter(source, event);
|
||||
}
|
||||
|
||||
void CSettingsWindow::OnBrowsePath()
|
||||
{
|
||||
QString Value = QFileDialog::getOpenFileName(this, tr("Select Program"), "", tr("Executables (*.exe *.cmd)")).replace("/", "\\");
|
||||
if (Value.isEmpty())
|
||||
return;
|
||||
|
||||
QString Name = QInputDialog::getText(this, "Sandboxie-Plus", tr("Please enter a menu title"), QLineEdit::Normal);
|
||||
if (Name.isEmpty())
|
||||
return;
|
||||
|
||||
AddRunItem(Name, Value);
|
||||
}
|
||||
|
||||
void CSettingsWindow::OnAddCommand()
|
||||
{
|
||||
QString Value = QInputDialog::getText(this, "Sandboxie-Plus", tr("Please enter a command"), QLineEdit::Normal);
|
||||
if (Value.isEmpty())
|
||||
return;
|
||||
|
||||
QString Name = QInputDialog::getText(this, "Sandboxie-Plus", tr("Please enter a menu title"), QLineEdit::Normal);
|
||||
if (Name.isEmpty())
|
||||
return;
|
||||
|
||||
AddRunItem(Name, Value);
|
||||
}
|
||||
|
||||
void CSettingsWindow::AddRunItem(const QString& Name, const QString& Command)
|
||||
{
|
||||
QTreeWidgetItem* pItem = new QTreeWidgetItem();
|
||||
pItem->setText(0, Name);
|
||||
pItem->setText(1, Command);
|
||||
pItem->setFlags(pItem->flags() | Qt::ItemIsEditable);
|
||||
ui.treeRun->addTopLevelItem(pItem);
|
||||
}
|
||||
|
||||
void CSettingsWindow::OnDelCommand()
|
||||
{
|
||||
QTreeWidgetItem* pItem = ui.treeRun->currentItem();
|
||||
if (!pItem)
|
||||
return;
|
||||
|
||||
delete pItem;
|
||||
}
|
||||
|
||||
Qt::CheckState CSettingsWindow__IsContextMenu()
|
||||
{
|
||||
//QSettings Package("HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\PackagedCom\\Package", QSettings::NativeFormat);
|
||||
|
@ -582,6 +626,14 @@ void CSettingsWindow::LoadSettings()
|
|||
|
||||
if (theAPI->IsConnected())
|
||||
{
|
||||
ui.treeRun->clear();
|
||||
foreach(const QString& Value, theAPI->GetGlobalSettings()->GetTextList("RunCommand", false))
|
||||
{
|
||||
StrPair NameCmd = Split2(Value, "|");
|
||||
QTreeWidgetItem* pItem = new QTreeWidgetItem();
|
||||
AddRunItem(NameCmd.first, NameCmd.second);
|
||||
}
|
||||
|
||||
QString FileRootPath_Default = "\\??\\%SystemDrive%\\Sandbox\\%USER%\\%SANDBOX%";
|
||||
QString KeyRootPath_Default = "\\REGISTRY\\USER\\Sandbox_%USER%_%SANDBOX%";
|
||||
QString IpcRootPath_Default = "\\Sandbox\\%USER%\\%SANDBOX%\\Session_%SESSION%";
|
||||
|
@ -883,6 +935,13 @@ void CSettingsWindow::SaveSettings()
|
|||
{
|
||||
try
|
||||
{
|
||||
QStringList RunCommands;
|
||||
for (int i = 0; i < ui.treeRun->topLevelItemCount(); i++) {
|
||||
QTreeWidgetItem* pItem = ui.treeRun->topLevelItem(i);
|
||||
RunCommands.append(pItem->text(0) + "|" + pItem->text(1));
|
||||
}
|
||||
WriteTextList("RunCommand", RunCommands);
|
||||
|
||||
WriteText("FileRootPath", ui.fileRoot->text()); //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%");
|
||||
|
|
|
@ -86,6 +86,10 @@ private slots:
|
|||
|
||||
void OnTab();
|
||||
|
||||
void OnBrowsePath();
|
||||
void OnAddCommand();
|
||||
void OnDelCommand();
|
||||
|
||||
void OnChangeGUI() { m_bRebuildUI = true; }
|
||||
void OnFeaturesChanged() { m_FeaturesChanged = true; }
|
||||
|
||||
|
@ -126,6 +130,8 @@ protected:
|
|||
|
||||
void OnTab(QWidget* pTab);
|
||||
|
||||
void AddRunItem(const QString& Name, const QString& Command);
|
||||
|
||||
void AddWarnEntry(const QString& Name, int type);
|
||||
|
||||
void LoadSettings();
|
||||
|
|
Loading…
Reference in New Issue