1.13.5
This commit is contained in:
parent
de1714a60e
commit
bc60e2d9eb
|
@ -18,6 +18,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
- on systems in test signing mode sandboxie will by default try outdated offsets
|
- on systems in test signing mode sandboxie will by default try outdated offsets
|
||||||
- changed Qt5 version to Qt5.15.13 with latest security patches [#3694](https://github.com/sandboxie-plus/Sandboxie/pull/3694) (thanks LumitoLuma)
|
- changed Qt5 version to Qt5.15.13 with latest security patches [#3694](https://github.com/sandboxie-plus/Sandboxie/pull/3694) (thanks LumitoLuma)
|
||||||
- moved network restrictions from general restrictions tab to an own tab on the network page
|
- moved network restrictions from general restrictions tab to an own tab on the network page
|
||||||
|
- improved certificate retrival UI messages.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- fixed Virtualization scheme Version 2 causing extremely slow file deleting speed [#3650](https://github.com/sandboxie-plus/Sandboxie/issues/3650)
|
- fixed Virtualization scheme Version 2 causing extremely slow file deleting speed [#3650](https://github.com/sandboxie-plus/Sandboxie/issues/3650)
|
||||||
|
|
|
@ -203,12 +203,12 @@ void CGetFileJob::Finish(QNetworkReply* pReply)
|
||||||
|
|
||||||
SB_PROGRESS COnlineUpdater::GetSupportCert(const QString& Serial, QObject* receiver, const char* member, const QVariantMap& Params)
|
SB_PROGRESS COnlineUpdater::GetSupportCert(const QString& Serial, QObject* receiver, const char* member, const QVariantMap& Params)
|
||||||
{
|
{
|
||||||
QString UpdateKey = GetArguments(g_Certificate, L'\n', L':').value("UPDATEKEY");
|
QString UpdateKey = Params["key"].toString();
|
||||||
|
|
||||||
QUrlQuery Query;
|
QUrlQuery Query;
|
||||||
if (!Serial.isEmpty()) {
|
if (!Serial.isEmpty()) {
|
||||||
Query.addQueryItem("SN", Serial);
|
Query.addQueryItem("SN", Serial);
|
||||||
if (Serial.length() > 5 && Serial.at(4).toUpper() == 'N') { // node locked business use
|
if (Serial.length() > 5 && Serial.at(4).toUpper() == 'N') {
|
||||||
wchar_t uuid_str[40];
|
wchar_t uuid_str[40];
|
||||||
theAPI->GetDriverInfo(-2, uuid_str, sizeof(uuid_str));
|
theAPI->GetDriverInfo(-2, uuid_str, sizeof(uuid_str));
|
||||||
Query.addQueryItem("HwId", QString::fromWCharArray(uuid_str));
|
Query.addQueryItem("HwId", QString::fromWCharArray(uuid_str));
|
||||||
|
|
|
@ -2880,13 +2880,7 @@ void CSandMan::OnLogSbieMessage(quint32 MsgCode, const QStringList& MsgData, qui
|
||||||
|
|
||||||
if (!Message.isEmpty())
|
if (!Message.isEmpty())
|
||||||
{
|
{
|
||||||
QMessageBox msgBox(this);
|
ShowMessageBox(this, QMessageBox::Critical, Message);
|
||||||
msgBox.setTextFormat(Qt::RichText);
|
|
||||||
msgBox.setIcon(QMessageBox::Critical);
|
|
||||||
msgBox.setWindowTitle("Sandboxie-Plus");
|
|
||||||
msgBox.setText(Message);
|
|
||||||
msgBox.setStandardButtons(QMessageBox::Ok);
|
|
||||||
msgBox.exec();
|
|
||||||
/*msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
|
/*msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
|
||||||
if (msgBox.exec() == QDialogButtonBox::Yes) {
|
if (msgBox.exec() == QDialogButtonBox::Yes) {
|
||||||
OpenUrl(QUrl("https://sandboxie-plus.com/go.php?to=sbie-get-cert"));
|
OpenUrl(QUrl("https://sandboxie-plus.com/go.php?to=sbie-get-cert"));
|
||||||
|
@ -2923,6 +2917,17 @@ void CSandMan::OnLogSbieMessage(quint32 MsgCode, const QStringList& MsgData, qui
|
||||||
m_pPopUpWindow->AddLogMessage(MsgCode, MsgData, ProcessId);
|
m_pPopUpWindow->AddLogMessage(MsgCode, MsgData, ProcessId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSandMan::ShowMessageBox(QWidget* Widget, QMessageBox::Icon Icon, const QString& Message)
|
||||||
|
{
|
||||||
|
QMessageBox msgBox(Widget);
|
||||||
|
msgBox.setTextFormat(Qt::RichText);
|
||||||
|
msgBox.setIcon(Icon);
|
||||||
|
msgBox.setWindowTitle("Sandboxie-Plus");
|
||||||
|
msgBox.setText(Message);
|
||||||
|
msgBox.setStandardButtons(QMessageBox::Ok);
|
||||||
|
msgBox.exec();
|
||||||
|
}
|
||||||
|
|
||||||
void CSandMan::SaveMessageLog(QIODevice* pFile)
|
void CSandMan::SaveMessageLog(QIODevice* pFile)
|
||||||
{
|
{
|
||||||
foreach(const SSbieMsg& Msg, m_MessageLog)
|
foreach(const SSbieMsg& Msg, m_MessageLog)
|
||||||
|
|
|
@ -48,6 +48,7 @@ public:
|
||||||
CAddonManager* GetAddonManager() { return m_AddonManager; }
|
CAddonManager* GetAddonManager() { return m_AddonManager; }
|
||||||
|
|
||||||
static QString GetVersion();
|
static QString GetVersion();
|
||||||
|
static void ShowMessageBox(QWidget* Widget, QMessageBox::Icon Icon, const QString& Message);
|
||||||
|
|
||||||
bool IsImDiskReady() const { return m_ImDiskReady; }
|
bool IsImDiskReady() const { return m_ImDiskReady; }
|
||||||
|
|
||||||
|
|
|
@ -1288,7 +1288,32 @@ void CSettingsWindow::UpdateCert()
|
||||||
|
|
||||||
void CSettingsWindow::OnGetCert()
|
void CSettingsWindow::OnGetCert()
|
||||||
{
|
{
|
||||||
SB_PROGRESS Status = theGUI->m_pUpdater->GetSupportCert(ui.txtSerial->text(), this, SLOT(OnCertData(const QByteArray&, const QVariantMap&)));
|
QByteArray Certificate = ui.txtCertificate->toPlainText().toUtf8();
|
||||||
|
QString Serial = ui.txtSerial->text();
|
||||||
|
|
||||||
|
QString Message;
|
||||||
|
if (Serial.length() > 5 && Serial.at(4).toUpper() == 'U') {
|
||||||
|
Message = tr("You are attempting to use a feature Upgrade-Key without having entered a preexisting supporter certificate. "
|
||||||
|
"Please note that these type of key (<b>as it is clearly stated in bold on the website</b>) require you to have a preexisting valid supporter certificate, it is useless without one."
|
||||||
|
"<br />If you want to use the advanced features you need to obtain booth a standard certificate and the feature upgrade key to unlock advanced functionality.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Serial.length() > 5 && Serial.at(4).toUpper() == 'R') {
|
||||||
|
Message = tr("You are attempting to use a Renew-Key without having a preexisting supporter certificate. "
|
||||||
|
"Please note that these type of key (<b>as it is clearly stated in bold on the website</b>) require you to have a preexisting supporter certificate, it is useless without one.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Message.isEmpty()) {
|
||||||
|
Message += tr("<br /><br /><u>If you have not read the product description and got this key by mistake, please contact us by email (provided on our website) to resolve this issue.</u>");
|
||||||
|
CSandMan::ShowMessageBox(this, QMessageBox::Critical, Message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariantMap Params;
|
||||||
|
if(!Certificate.isEmpty())
|
||||||
|
Params["key"] = GetArguments(Certificate, L'\n', L':').value("UPDATEKEY");
|
||||||
|
|
||||||
|
SB_PROGRESS Status = theGUI->m_pUpdater->GetSupportCert(Serial, this, SLOT(OnCertData(const QByteArray&, const QVariantMap&)), Params);
|
||||||
if (Status.GetStatus() == OP_ASYNC) {
|
if (Status.GetStatus() == OP_ASYNC) {
|
||||||
theGUI->AddAsyncOp(Status.GetValue());
|
theGUI->AddAsyncOp(Status.GetValue());
|
||||||
Status.GetValue()->ShowMessage(tr("Retrieving certificate..."));
|
Status.GetValue()->ShowMessage(tr("Retrieving certificate..."));
|
||||||
|
@ -1297,6 +1322,14 @@ void CSettingsWindow::OnGetCert()
|
||||||
|
|
||||||
void CSettingsWindow::OnCertData(const QByteArray& Certificate, const QVariantMap& Params)
|
void CSettingsWindow::OnCertData(const QByteArray& Certificate, const QVariantMap& Params)
|
||||||
{
|
{
|
||||||
|
if (Certificate.isEmpty())
|
||||||
|
{
|
||||||
|
QString Error = Params["error"].toString();
|
||||||
|
qDebug() << Error;
|
||||||
|
QString Message = tr("Error retriving certificate: %1").arg(Error.isEmpty() ? tr("Unknown Error (probably a network issue)") : Error);
|
||||||
|
CSandMan::ShowMessageBox(this, QMessageBox::Critical, Message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
ui.txtCertificate->setPlainText(Certificate);
|
ui.txtCertificate->setPlainText(Certificate);
|
||||||
ApplyCert();
|
ApplyCert();
|
||||||
}
|
}
|
||||||
|
|
|
@ -355,9 +355,14 @@ bool CCertificatePage::validatePage()
|
||||||
if (m_pEvaluate->isChecked())
|
if (m_pEvaluate->isChecked())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
QByteArray Certificate = m_pCertificate->toPlainText().toUtf8();
|
||||||
QString Serial = m_pSerial->text();
|
QString Serial = m_pSerial->text();
|
||||||
|
|
||||||
if (!Serial.isEmpty()) {
|
if (!Serial.isEmpty()) {
|
||||||
SB_PROGRESS Status = theGUI->m_pUpdater->GetSupportCert(Serial, this, SLOT(OnCertData(const QByteArray&, const QVariantMap&)));
|
QVariantMap Params;
|
||||||
|
if(!Certificate.isEmpty())
|
||||||
|
Params["key"] = GetArguments(Certificate, L'\n', L':').value("UPDATEKEY");
|
||||||
|
SB_PROGRESS Status = theGUI->m_pUpdater->GetSupportCert(Serial, this, SLOT(OnCertData(const QByteArray&, const QVariantMap&)), Params);
|
||||||
if (Status.GetStatus() == OP_ASYNC) {
|
if (Status.GetStatus() == OP_ASYNC) {
|
||||||
theGUI->AddAsyncOp(Status.GetValue());
|
theGUI->AddAsyncOp(Status.GetValue());
|
||||||
Status.GetValue()->ShowMessage(tr("Retrieving certificate..."));
|
Status.GetValue()->ShowMessage(tr("Retrieving certificate..."));
|
||||||
|
@ -365,7 +370,6 @@ bool CCertificatePage::validatePage()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray Certificate = m_pCertificate->toPlainText().toUtf8();
|
|
||||||
if (!Certificate.isEmpty() && Certificate != g_Certificate)
|
if (!Certificate.isEmpty() && Certificate != g_Certificate)
|
||||||
return CSettingsWindow::ApplyCertificate(Certificate, this);
|
return CSettingsWindow::ApplyCertificate(Certificate, this);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue