This commit is contained in:
DavidXanatos 2022-07-10 20:00:26 +02:00
parent 7c32af369c
commit 3a2ac57416
7 changed files with 80 additions and 43 deletions

View File

@ -10,6 +10,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).
### Added
- added Swedish translation to Plus UI (thanks pb1)
- added Vintage View Mode to make sandman UI look just lien sbietrl on the first glance
- added alternative tray menu mechanics
- added ability to auto generate sandbox icons based on the border color
- added dedicated box group icon
### Fixed
- fixed DPI issue on Windows 7

View File

@ -316,8 +316,8 @@ swedish.SandboxedBrowser=Sandlådad webläsare
swedish.CustomPageLabel1=Välj installationstyp
swedish.CustomPageLabel2=Hur ska installeringen ske
swedish.CustomPageLabel3=Välj installationsläget
swedish.CustomPageInstallMode=Installera {#Minappsnamn} på denna dator
swedish.CustomPageUpgradeMode=Uppdatera existerande {#Minappsnamn} installation
swedish.CustomPageInstallMode=Installera {#MyAppName} på denna dator
swedish.CustomPageUpgradeMode=Uppdatera existerande {#MyAppName} installation
swedish.CustomPagePortableMode=Extrahera alla filer till en katalog för portabel användning
swedish.RequiresWin7OrLater=Sandboxie-Plus kräver Windows 7 eller senare.
swedish.ClassicFound=Upptäckt en installation av Sandboxie Classic, den behöver avinstalleras först. Vill du avinstallera den nu?

View File

@ -1,5 +1,40 @@
Copyright 2020 - 2022 David Xanatos (xanasoft.com)
This software is provided under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License
Sandboxie-Plus can be used under the following restrictions and obligations:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1. Whomever obtains a copy of the software is permitted
to use it in any noncommercial setting to the full
extend the software permits; however certain functionality
is only available with a support certificate which
can be obtained from xanasoft.com
2. To use the software commercially a business certificate
must be obtained from xanasoft.com; however it is permitted to
use the software commercially for a limited period of time
on no more than 3 machines for evaluation purposes.
3. It is permitted to redistribute the original unmodified
binaries free of charge.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Further licensing information
======================================
Sandboxie-Plus is made up of the following components, governed under various licenses:
* SandMan the primary Sandboxie-Plus UI component, provided under a custom license.
* QSbieAPI a stand alone re implementation of sandboxies API using IPC mechanisms to. communicate with sandboxies core components, license under the LGPL.
* Sandboxie core components, licensed under the GPL v3.
* MiscHelpers a generic Qt based helper library, license under the LGPL.
* The Qt Framework which is license under the LGPL.
* UglobalHotkey is an extension for Qt framework, which implements global hotkeys functionality and is in the Public Domain.
* QtSingleApp a Qt Solutions Component that provides support for applications that can be only started once per user, BSD licensed.

View File

@ -392,22 +392,22 @@ void COptionsWindow::CloseAccessEdit(QTreeWidgetItem* pItem, bool bSave)
if (!pProgram)
return;
QHBoxLayout* pLayout = (QHBoxLayout*)pProgram->layout();
QToolButton* pNot = (QToolButton*)pLayout->itemAt(0)->widget();
QComboBox* pCombo = (QComboBox*)pLayout->itemAt(1)->widget();
QComboBox* pMode = (QComboBox*)ui.treeAccess->itemWidget(pItem, 2);
QLineEdit* pPath = (QLineEdit*)ui.treeAccess->itemWidget(pItem, 3);
QString Program = pCombo->currentText();
int Index = pCombo->findText(Program);
if (Index != -1)
Program = pCombo->itemData(Index, Qt::UserRole).toString();
if (!Program.isEmpty() && Program.left(1) != "<")
m_Programs.insert(Program);
if (bSave)
{
QHBoxLayout* pLayout = (QHBoxLayout*)pProgram->layout();
QToolButton* pNot = (QToolButton*)pLayout->itemAt(0)->widget();
QComboBox* pCombo = (QComboBox*)pLayout->itemAt(1)->widget();
QComboBox* pMode = (QComboBox*)ui.treeAccess->itemWidget(pItem, 2);
QLineEdit* pPath = (QLineEdit*)ui.treeAccess->itemWidget(pItem, 3);
QString Program = pCombo->currentText();
int Index = pCombo->findText(Program);
if (Index != -1)
Program = pCombo->itemData(Index, Qt::UserRole).toString();
if (!Program.isEmpty() && Program.left(1) != "<")
m_Programs.insert(Program);
if (pItem->data(0, Qt::UserRole).toInt() == eCOM && !pPath->text().isEmpty())
{
bool isGUID = pPath->text().length() == 38 && pPath->text().left(1) == "{" && pPath->text().right(1) == "}";

View File

@ -143,7 +143,7 @@ void COptionsWindow::LoadAdvanced()
void COptionsWindow::ShowTriggersTmpl(bool bUpdate)
{
if (ui.chkShowRecoveryTmpl->isChecked())
if (ui.chkShowTriggersTmpl->isChecked())
{
foreach(const QString& Template, m_pBox->GetTemplates())
{

View File

@ -232,14 +232,14 @@ void COptionsWindow::CloseINetEdit(QTreeWidgetItem* pItem, bool bSave)
if (!pProgram)
return;
//QHBoxLayout* pLayout = (QHBoxLayout*)pProgram->layout();
//QComboBox* pCombo = (QComboBox*)pLayout->itemAt(0)->widget();
QComboBox* pCombo = (QComboBox*)pProgram;
QComboBox* pMode = (QComboBox*)ui.treeINet->itemWidget(pItem, 1);
if (bSave)
{
//QHBoxLayout* pLayout = (QHBoxLayout*)pProgram->layout();
//QComboBox* pCombo = (QComboBox*)pLayout->itemAt(0)->widget();
QComboBox* pCombo = (QComboBox*)pProgram;
QComboBox* pMode = (QComboBox*)ui.treeINet->itemWidget(pItem, 1);
QString OldProgram = pItem->data(0, Qt::UserRole).toString();
int OldMode = pItem->data(1, Qt::UserRole).toInt();
if (pItem->checkState(0) == Qt::Unchecked)
@ -591,25 +591,25 @@ void COptionsWindow::CloseNetFwEdit(QTreeWidgetItem* pItem, bool bSave)
if (!pProgram)
return;
QHBoxLayout* pLayout = (QHBoxLayout*)pProgram->layout();
QToolButton* pNot = (QToolButton*)pLayout->itemAt(0)->widget();
QComboBox* pCombo = (QComboBox*)pLayout->itemAt(1)->widget();
QComboBox* pAction = (QComboBox*)ui.treeNetFw->itemWidget(pItem, 1);
QLineEdit* pPort = (QLineEdit*)ui.treeNetFw->itemWidget(pItem, 2);
QLineEdit* pIP = (QLineEdit*)ui.treeNetFw->itemWidget(pItem, 3);
QComboBox* pProt = (QComboBox*)ui.treeNetFw->itemWidget(pItem, 4);
QString Program = pCombo->currentText();
int Index = pCombo->findText(Program);
if (Index != -1)
Program = pCombo->itemData(Index, Qt::UserRole).toString();
if (bSave)
{
QHBoxLayout* pLayout = (QHBoxLayout*)pProgram->layout();
QToolButton* pNot = (QToolButton*)pLayout->itemAt(0)->widget();
QComboBox* pCombo = (QComboBox*)pLayout->itemAt(1)->widget();
QComboBox* pAction = (QComboBox*)ui.treeNetFw->itemWidget(pItem, 1);
QLineEdit* pPort = (QLineEdit*)ui.treeNetFw->itemWidget(pItem, 2);
QLineEdit* pIP = (QLineEdit*)ui.treeNetFw->itemWidget(pItem, 3);
QComboBox* pProt = (QComboBox*)ui.treeNetFw->itemWidget(pItem, 4);
QString Program = pCombo->currentText();
int Index = pCombo->findText(Program);
if (Index != -1)
Program = pCombo->itemData(Index, Qt::UserRole).toString();
pItem->setText(0, (pNot->isChecked() ? "NOT " : "") + pCombo->currentText());
pItem->setData(0, Qt::UserRole, (pNot->isChecked() ? "!" : "") + Program);

View File

@ -144,7 +144,6 @@ COptionsWindow::COptionsWindow(const QSharedPointer<CSbieIni>& pBox, const QStri
ui.tabs->tabBar()->setStyle(new CustomTabStyle(ui.tabs->tabBar()->style()));
//this->setMinimumHeight(490);
ui.tabs->removeTab(8); // misc tab is currently still empty
ui.tabs->setTabIcon(eGeneral, CSandMan::GetIcon("Options"));
ui.tabs->setTabIcon(eGroups, CSandMan::GetIcon("Group"));