diff --git a/CHANGELOG.md b/CHANGELOG.md index 974ba875..b3318ea7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,15 +10,17 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## [1.12.0 / 5.67.0] - 2023-10- ### Added -- added "get_cert SBIEX-XXXXX-XXXXX-XXXXX-XXXXX" command to UpdUtil.exe allowing to get a cert by serial using command line -- added mechanism to revoke leaked or refunded certificates - added mechanism to automatically set USB drives as forced folders - added troubleshooting script for issue [#3318](https://github.com/sandboxie-plus/Sandboxie/issues/3318) with parental controls - started german translation of the troubleshooting scripts ...\SandboxiePlus\SandMan\Troubleshooting\lang_de.json [#3293](https://github.com/sandboxie-plus/Sandboxie/issues/3293) +- added "get_cert SBIEX-XXXXX-XXXXX-XXXXX-XXXXX" command to UpdUtil.exe allowing to get a cert by serial using command line +- added mechanism to revoke leaked or refunded certificates +- added new global hot key to bring sandman in fron as top most ALT+Break [#3320](https://github.com/sandboxie-plus/Sandboxie/issues/3320) ### Changed - improved suspend process ahndling [#3375](https://github.com/sandboxie-plus/Sandboxie/issues/3375) - improved handling of issue reports +- updated reminder schedule ### Fixed - fixed issue with auto updater not offering version updates diff --git a/SandboxiePlus/SandMan/Forms/SettingsWindow.ui b/SandboxiePlus/SandMan/Forms/SettingsWindow.ui index c6d1a4e5..9ed3a8c9 100644 --- a/SandboxiePlus/SandMan/Forms/SettingsWindow.ui +++ b/SandboxiePlus/SandMan/Forms/SettingsWindow.ui @@ -48,7 +48,7 @@ QTabWidget::North - 2 + 0 @@ -67,104 +67,6 @@ - - - - Count and display the disk space occupied by each sandbox - - - - - - - Show file recovery window when emptying sandboxes - - - - - - - - 75 - true - true - - - - SandMan Options - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 75 - true - true - - - - Recovery Options - - - - - - - Show the Recovery Window as Always on Top - - - - - - - Run box operations asynchronously whenever possible (like content deletion) - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - @@ -179,6 +81,22 @@ + + + + + true + true + + + + SandMan Options + + + + + + @@ -189,6 +107,86 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Count and display the disk space occupied by each sandbox + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Run box operations asynchronously whenever possible (like content deletion) + + + + + + + Show file recovery window when emptying sandboxes + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Show the Recovery Window as Always on Top + + + + + + + + true + true + + + + Recovery Options + + + @@ -199,6 +197,20 @@ + + + + + + Hotkey for bringing sandman to the top: + + + + + + + + @@ -259,7 +271,6 @@ - 75 true true @@ -292,7 +303,6 @@ - 75 true true @@ -1669,7 +1679,6 @@ - 75 true true @@ -1901,7 +1910,6 @@ Unlike the preview channel, it does not include untested, potentially breaking, - 75 true true @@ -2014,7 +2022,6 @@ Unlike the preview channel, it does not include untested, potentially breaking, - 75 true true @@ -2106,7 +2113,6 @@ Unlike the preview channel, it does not include untested, potentially breaking, - 75 true true @@ -2532,6 +2538,16 @@ Unlike the preview channel, it does not include untested, potentially breaking, + + + + Edit ini + + + false + + + @@ -2545,16 +2561,6 @@ Unlike the preview channel, it does not include untested, potentially breaking, - - - - Edit ini - - - false - - - diff --git a/SandboxiePlus/SandMan/SandMan.cpp b/SandboxiePlus/SandMan/SandMan.cpp index 7f1c39e9..f9ac25ab 100644 --- a/SandboxiePlus/SandMan/SandMan.cpp +++ b/SandboxiePlus/SandMan/SandMan.cpp @@ -2551,7 +2551,8 @@ void CSandMan::CheckSupport() } } -#define HK_PANIC 1 +#define HK_PANIC 1 +#define HK_TOP 2 void CSandMan::SetupHotKeys() { @@ -2559,6 +2560,9 @@ void CSandMan::SetupHotKeys() if (theConf->GetBool("Options/EnablePanicKey", false)) m_pHotkeyManager->registerHotkey(theConf->GetString("Options/PanicKeySequence", "Shift+Pause"), HK_PANIC); + + if (theConf->GetBool("Options/EnableTopMostKey", false)) + m_pHotkeyManager->registerHotkey(theConf->GetString("Options/PanicTopMostSequence", "Alt+Pause"), HK_TOP); } void CSandMan::OnHotKey(size_t id) @@ -2568,6 +2572,25 @@ void CSandMan::OnHotKey(size_t id) case HK_PANIC: theAPI->TerminateAll(); break; + + case HK_TOP: + if (this->isActiveWindow() && m_pWndTopMost->isCheckable()) { + m_pWndTopMost->setChecked(false); + OnAlwaysTop(); + return; + } + + if (!isVisible()) { + CheckSupport(); + show(); + } + m_pWndTopMost->setChecked(true); + OnAlwaysTop(); + QTimer::singleShot(100, [this]() { + this->setWindowState((this->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); + SetForegroundWindow(MainWndHandle); + } ); + break; } } diff --git a/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp b/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp index 527ec9f2..4aa3da4a 100644 --- a/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp +++ b/SandboxiePlus/SandMan/Windows/SettingsWindow.cpp @@ -295,6 +295,8 @@ CSettingsWindow::CSettingsWindow(QWidget* parent) connect(ui.chkMonitorSize, SIGNAL(stateChanged(int)), this, SLOT(OnOptChanged())); connect(ui.chkPanic, SIGNAL(stateChanged(int)), this, SLOT(OnOptChanged())); connect(ui.keyPanic, SIGNAL(keySequenceChanged(const QKeySequence &)), this, SLOT(OnOptChanged())); + connect(ui.chkTop, SIGNAL(stateChanged(int)), this, SLOT(OnOptChanged())); + connect(ui.keyTop, SIGNAL(keySequenceChanged(const QKeySequence &)), this, SLOT(OnOptChanged())); connect(ui.chkAsyncBoxOps, SIGNAL(stateChanged(int)), this, SLOT(OnOptChanged())); connect(ui.chkSilentMode, SIGNAL(stateChanged(int)), this, SLOT(OnOptChanged())); @@ -909,6 +911,9 @@ void CSettingsWindow::LoadSettings() ui.chkPanic->setChecked(theConf->GetBool("Options/EnablePanicKey", false)); ui.keyPanic->setKeySequence(QKeySequence(theConf->GetString("Options/PanicKeySequence", "Shift+Pause"))); + ui.chkTop->setChecked(theConf->GetBool("Options/EnableTopMostKey", false)); + ui.keyTop->setKeySequence(QKeySequence(theConf->GetString("Options/TopMostKeySequence", "Alt+Pause"))); + ui.chkMonitorSize->setChecked(theConf->GetBool("Options/WatchBoxSize", false)); ui.chkWatchConfig->setChecked(theConf->GetBool("Options/WatchIni", true)); @@ -1502,6 +1507,9 @@ void CSettingsWindow::SaveSettings() theConf->SetValue("Options/EnablePanicKey", ui.chkPanic->isChecked()); theConf->SetValue("Options/PanicKeySequence", ui.keyPanic->keySequence().toString()); + + theConf->SetValue("Options/EnableTopMostKey", ui.chkTop->isChecked()); + theConf->SetValue("Options/TopMostKeySequence", ui.keyTop->keySequence().toString()); theConf->SetValue("Options/WatchBoxSize", ui.chkMonitorSize->isChecked());