mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-06 19:26:39 +02:00
[File Explorer] Fix enable/disable for File Explorer PowerToy (#6883)
* Commented out enable/disable for File Explorer * Revert UI changes * Disable the toggles if PT is not running elevated * Fixed compilation errors in tests * Cleaned up preview pane code to separate thumbnail and preview panes as separate classes * Fixed broken settings format and added elevation check and registry updated required logic. Preview Handler tested manually working, Thumbnail Enable/Disable needs to be fixed * Updated Thumbnail enable/disable logic and added warning messages * Update tests for File Explorer * Fixed RegGetValue failing in Release config * Renamed new classes * Split wrappers for disable to work * Modified enabled flag check to also check if user is on new settings. Fixed casing issue in powerpreview.h that caused a dialog prompt on first launch after install * Update fontweight and margin * Fixed release build not working * Move UseNewSettings usage to powerpreview.cpp to avoid tests breaking. For new settings the enable check is done in constructor and for old settings it is done in enable * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Moved dup code to method * Use correct versions of general settings for backwards compat test Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
This commit is contained in:
53
src/modules/previewpane/powerpreview/preview_handler.cpp
Normal file
53
src/modules/previewpane/powerpreview/preview_handler.cpp
Normal file
@@ -0,0 +1,53 @@
|
||||
#include "pch.h"
|
||||
#include "preview_handler.h"
|
||||
|
||||
namespace PowerPreviewSettings
|
||||
{
|
||||
const LPCWSTR PreviewHandlerSettings::preview_handlers_subkey = L"Software\\Microsoft\\Windows\\CurrentVersion\\PreviewHandlers";
|
||||
|
||||
// Function to enable the preview handler in registry
|
||||
LONG PreviewHandlerSettings::Enable()
|
||||
{
|
||||
// Add registry value to enable preview.
|
||||
return this->m_registryWrapper->SetRegistryValue(HKEY_LOCAL_MACHINE, preview_handlers_subkey, this->GetCLSID(), REG_SZ, (LPBYTE)this->GetRegistryValueData().c_str(), (DWORD)(this->GetRegistryValueData().length() * sizeof(wchar_t)));
|
||||
}
|
||||
|
||||
// Function to disable the preview handler in registry
|
||||
LONG PreviewHandlerSettings::Disable()
|
||||
{
|
||||
// Delete the registry key to disable preview.
|
||||
return this->m_registryWrapper->DeleteRegistryValue(HKEY_LOCAL_MACHINE, preview_handlers_subkey, this->GetCLSID());
|
||||
}
|
||||
|
||||
// Function to check if the preview handler is enabled in registry
|
||||
bool PreviewHandlerSettings::CheckRegistryState()
|
||||
{
|
||||
DWORD dataType;
|
||||
DWORD byteCount = 255;
|
||||
wchar_t regValue[255] = { 0 };
|
||||
|
||||
LONG errorCode = this->m_registryWrapper->GetRegistryValue(HKEY_LOCAL_MACHINE, preview_handlers_subkey, this->GetCLSID(), &dataType, regValue, &byteCount);
|
||||
|
||||
// Registry value was found
|
||||
if (errorCode == ERROR_SUCCESS)
|
||||
{
|
||||
// Check if the value type is string
|
||||
if (dataType == REG_SZ)
|
||||
{
|
||||
// Check if the current registry value matches the expected value
|
||||
if (wcscmp(regValue, this->GetRegistryValueData().c_str()) == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Function to retrieve the registry subkey
|
||||
LPCWSTR PreviewHandlerSettings::GetSubkey()
|
||||
{
|
||||
return preview_handlers_subkey;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user