1.8.4
This commit is contained in:
parent
fec0473e09
commit
7477b76935
|
@ -16,10 +16,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- added installer icon
|
- added installer icon
|
||||||
|
- added token type indicator to process list
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- fixed compatybility issue with MSEdge 112.x
|
- fixed compatybility issue with MSEdge 112.x
|
||||||
|
- fixed updter issue [#2790](https://github.com/sandboxie-plus/Sandboxie/issues/2790)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -391,6 +391,11 @@ bool CSbieModel::Sync(const CSandBoxPtr& pBox, const QList<QVariant>& Path, cons
|
||||||
Icon = theGUI->IconAddOverlay(Icon, ":/Actions/SystemShield.png", 20);
|
Icon = theGUI->IconAddOverlay(Icon, ":/Actions/SystemShield.png", 20);
|
||||||
else if(pProcess->HasElevatedToken())
|
else if(pProcess->HasElevatedToken())
|
||||||
Icon = theGUI->IconAddOverlay(Icon, ":/Actions/AdminShield.png", 20);
|
Icon = theGUI->IconAddOverlay(Icon, ":/Actions/AdminShield.png", 20);
|
||||||
|
else if(pProcess->HasAppContainerToken())
|
||||||
|
Icon = theGUI->IconAddOverlay(Icon, ":/Actions/AppContainer.png", 20); // AppContainer is also Restricted
|
||||||
|
else if(pProcess->HasRestrictedToken())
|
||||||
|
Icon = theGUI->IconAddOverlay(Icon, ":/Actions/Restricted.png", 20);
|
||||||
|
|
||||||
|
|
||||||
pNode->Icon = Icon;
|
pNode->Icon = Icon;
|
||||||
Changed = 1;
|
Changed = 1;
|
||||||
|
|
|
@ -417,7 +417,7 @@ bool COnlineUpdater::AskDownload(const QVariantMap& Data)
|
||||||
mb.setCheckBoxVisible(m_CheckMode != eManual);
|
mb.setCheckBoxVisible(m_CheckMode != eManual);
|
||||||
|
|
||||||
if (!UpdateUrl.isEmpty() || !DownloadUrl.isEmpty() || Data.contains("files")) {
|
if (!UpdateUrl.isEmpty() || !DownloadUrl.isEmpty() || Data.contains("files")) {
|
||||||
mb.setStandardButtons(QDialogButtonBox::Yes | QDialogButtonBox::No);
|
mb.setStandardButtons(QDialogButtonBox::Yes | QDialogButtonBox::No | QDialogButtonBox::Cancel);
|
||||||
mb.setDefaultButton(QDialogButtonBox::Yes);
|
mb.setDefaultButton(QDialogButtonBox::Yes);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -434,8 +434,16 @@ bool COnlineUpdater::AskDownload(const QVariantMap& Data)
|
||||||
else
|
else
|
||||||
QDesktopServices::openUrl(UpdateUrl);
|
QDesktopServices::openUrl(UpdateUrl);
|
||||||
}
|
}
|
||||||
else if (mb.isChecked())
|
else
|
||||||
|
{
|
||||||
|
if (mb.clickedStandardButton() == QDialogButtonBox::Cancel) {
|
||||||
|
theConf->SetValue("Updater/PendingUpdate", "");
|
||||||
|
theGUI->UpdateLabel();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mb.isChecked())
|
||||||
theConf->SetValue("Options/IgnoredUpdates", m_IgnoredUpdates << VersionStr);
|
theConf->SetValue("Options/IgnoredUpdates", m_IgnoredUpdates << VersionStr);
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
|
@ -145,6 +145,8 @@
|
||||||
<file>Actions/Editor2.png</file>
|
<file>Actions/Editor2.png</file>
|
||||||
<file>Actions/Folders.png</file>
|
<file>Actions/Folders.png</file>
|
||||||
<file>IconSun.png</file>
|
<file>IconSun.png</file>
|
||||||
|
<file>Actions/Restricted.png</file>
|
||||||
|
<file>Actions/AppContainer.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="/Boxes">
|
<qresource prefix="/Boxes">
|
||||||
<file alias="Empty3">Boxes/sandbox-b-empty.png</file>
|
<file alias="Empty3">Boxes/sandbox-b-empty.png</file>
|
||||||
|
|
|
@ -1432,7 +1432,7 @@ void CSandMan::timerEvent(QTimerEvent* pEvent)
|
||||||
|
|
||||||
bool bUpdatePending = !theConf->GetString("Updater/PendingUpdate").isEmpty();
|
bool bUpdatePending = !theConf->GetString("Updater/PendingUpdate").isEmpty();
|
||||||
|
|
||||||
if (m_bIconEmpty != (ActiveProcesses == 0) || m_bIconBusy != bIconBusy || m_iIconDisabled != (bForceProcessDisabled ? 1 : 0) || bUpdatePending)
|
if (m_bIconEmpty != (ActiveProcesses == 0) || m_bIconBusy != bIconBusy || m_iIconDisabled != (bForceProcessDisabled ? 1 : 0) || bUpdatePending || m_bIconSun)
|
||||||
{
|
{
|
||||||
m_bIconEmpty = (ActiveProcesses == 0);
|
m_bIconEmpty = (ActiveProcesses == 0);
|
||||||
m_bIconBusy = bIconBusy;
|
m_bIconBusy = bIconBusy;
|
||||||
|
|
|
@ -110,7 +110,7 @@ QString CSbieProcess::GetStatusStr() const
|
||||||
if (m_ProcessInfo.IsSystem)
|
if (m_ProcessInfo.IsSystem)
|
||||||
Status += tr(" as System");
|
Status += tr(" as System");
|
||||||
|
|
||||||
if(m_SessionId != theAPI->GetSessionID())
|
if(m_SessionId != theAPI->GetSessionID() && m_SessionId != -1)
|
||||||
Status += tr(" in session %1").arg(m_SessionId);
|
Status += tr(" in session %1").arg(m_SessionId);
|
||||||
|
|
||||||
quint32 ImageType = GetImageType();
|
quint32 ImageType = GetImageType();
|
||||||
|
@ -146,6 +146,17 @@ void CSbieProcess::InitProcessInfoImpl(void* ProcessHandle)
|
||||||
m_ProcessInfo.IsSystem = RtlEqualSid(((PTOKEN_USER)tokenUserBuff)->User.Sid, &SeLocalSystemSid);
|
m_ProcessInfo.IsSystem = RtlEqualSid(((PTOKEN_USER)tokenUserBuff)->User.Sid, &SeLocalSystemSid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ULONG restricted;
|
||||||
|
if (NT_SUCCESS(NtQueryInformationToken(TokenHandle, (TOKEN_INFORMATION_CLASS)TokenIsRestricted, &restricted, sizeof(ULONG), &returnLength))) {
|
||||||
|
m_ProcessInfo.IsRestricted = !!restricted;
|
||||||
|
}
|
||||||
|
|
||||||
|
BYTE appContainerBuffer[0x80];
|
||||||
|
if (NT_SUCCESS(NtQueryInformationToken(TokenHandle, (TOKEN_INFORMATION_CLASS)TokenAppContainerSid, appContainerBuffer, sizeof(appContainerBuffer), &returnLength))) {
|
||||||
|
PTOKEN_APPCONTAINER_INFORMATION appContainerInfo = (PTOKEN_APPCONTAINER_INFORMATION)appContainerBuffer;
|
||||||
|
m_ProcessInfo.IsAppContainer = appContainerInfo->TokenAppContainer != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
CloseHandle(TokenHandle);
|
CloseHandle(TokenHandle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,8 @@ public:
|
||||||
|
|
||||||
virtual bool HasElevatedToken() { return m_ProcessInfo.IsElevated; }
|
virtual bool HasElevatedToken() { return m_ProcessInfo.IsElevated; }
|
||||||
virtual bool HasSystemToken() { return m_ProcessInfo.IsSystem; }
|
virtual bool HasSystemToken() { return m_ProcessInfo.IsSystem; }
|
||||||
|
virtual bool HasRestrictedToken() { return m_ProcessInfo.IsRestricted; }
|
||||||
|
virtual bool HasAppContainerToken() { return m_ProcessInfo.IsAppContainer; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
@ -45,7 +47,9 @@ protected:
|
||||||
quint32
|
quint32
|
||||||
IsElevated : 1,
|
IsElevated : 1,
|
||||||
IsSystem : 1,
|
IsSystem : 1,
|
||||||
Spare : 30;
|
IsRestricted : 1,
|
||||||
|
IsAppContainer : 1,
|
||||||
|
Spare : 28;
|
||||||
};
|
};
|
||||||
} m_ProcessInfo;
|
} m_ProcessInfo;
|
||||||
};
|
};
|
Loading…
Reference in New Issue