Add SVG Thumbnail Provider for Windows Explorer (#5048)

* Add SVG Thumbnail Provider

* Some cleanup

* Small settings changes

* Update PowerToys.sln

Remove Any CPU entries

* Fix project configuration issues

* Fix bad merge

* Update output path for SVG thumbnail provider

* Sync with latest
This commit is contained in:
Chris Davis
2020-07-21 16:27:12 -07:00
committed by GitHub
parent 8e5a877997
commit 40d2ef4f0a
28 changed files with 1610 additions and 687 deletions

View File

@@ -26,6 +26,20 @@ void PowerPreviewModule::destroy()
}
}
for (auto thumbnailProvider : this->m_thumbnailProviders)
{
if (thumbnailProvider != NULL)
{
// Disable all the active thumbnail providers.
if (this->m_enabled && thumbnailProvider->GetToggleSettingState())
{
thumbnailProvider->DisablePreview();
}
delete thumbnailProvider;
}
}
delete this;
}
@@ -67,6 +81,15 @@ bool PowerPreviewModule::get_config(_Out_ wchar_t* buffer, _Out_ int* buffer_siz
previewHandler->GetToggleSettingState());
}
for (auto thumbnailProvider : this->m_thumbnailProviders)
{
settings.add_bool_toggle(
thumbnailProvider->GetToggleSettingName(),
thumbnailProvider->GetToggleSettingDescription(),
thumbnailProvider->GetToggleSettingState());
}
return settings.serialize_to_buffer(buffer, buffer_size);
}
@@ -82,6 +105,11 @@ void PowerPreviewModule::set_config(const wchar_t* config)
previewHandler->UpdateState(settings, this->m_enabled);
}
for (auto thumbnailProvider : this->m_thumbnailProviders)
{
thumbnailProvider->UpdateState(settings, this->m_enabled);
}
settings.save_to_settings_file();
}
catch (std::exception const& e)
@@ -106,6 +134,19 @@ void PowerPreviewModule::enable()
}
}
for (auto thumbnailProvider : this->m_thumbnailProviders)
{
if (thumbnailProvider->GetToggleSettingState())
{
// Enable all the thumbnail providers with initial state set as true.
thumbnailProvider->EnableThumbnailProvider();
}
else
{
thumbnailProvider->DisableThumbnailProvider();
}
}
if (!this->m_enabled)
{
Trace::EnabledPowerPreview(true);
@@ -122,6 +163,11 @@ void PowerPreviewModule::disable()
previewHandler->DisablePreview();
}
for (auto thumbnailProvider : this->m_thumbnailProviders)
{
thumbnailProvider->DisableThumbnailProvider();
}
if (this->m_enabled)
{
Trace::EnabledPowerPreview(false);
@@ -156,6 +202,12 @@ void PowerPreviewModule::init_settings()
{
previewHandler->LoadState(settings);
}
for (auto thumbnailProvider : this->m_thumbnailProviders)
{
thumbnailProvider->LoadState(settings);
}
}
catch (std::exception const& e)
{