[FileExplorer]Stl Thumbnails color customization (#19928)

This commit is contained in:
Pedro Lamas 2022-08-23 21:45:27 +01:00 коммит произвёл GitHub
Родитель 5c431b5ac5
Коммит c26e23b904
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
6 изменённых файлов: 78 добавлений и 8 удалений

Просмотреть файл

@ -11,6 +11,7 @@ using System.Windows.Media.Media3D;
using Common.ComInterlop;
using Common.Utilities;
using HelixToolkit.Wpf;
using Microsoft.PowerToys.Settings.UI.Library;
using Bitmap = System.Drawing.Bitmap;
namespace Microsoft.PowerToys.ThumbnailHandler.Stl
@ -50,7 +51,7 @@ namespace Microsoft.PowerToys.ThumbnailHandler.Stl
var stlReader = new StLReader
{
DefaultMaterial = new DiffuseMaterial(new SolidColorBrush(Color.FromRgb(255, 201, 36))),
DefaultMaterial = new DiffuseMaterial(new SolidColorBrush(DefaultMaterialColor)),
};
var model = stlReader.Read(stream);
@ -141,5 +142,29 @@ namespace Microsoft.PowerToys.ThumbnailHandler.Stl
}
}
}
/// <summary>
/// Gets a value indicating what color to use.
/// </summary>
public static Color DefaultMaterialColor
{
get
{
try
{
var moduleSettings = new SettingsUtils();
var colorString = moduleSettings.GetSettings<PowerPreviewSettings>(PowerPreviewSettings.ModuleName).Properties.StlThumbnailColor.Value;
return (Color)ColorConverter.ConvertFromString(colorString);
}
catch (FileNotFoundException)
{
// Couldn't read the settings.
// Assume default color value.
return Color.FromRgb(255, 201, 36);
}
}
}
}
}

Просмотреть файл

@ -26,5 +26,6 @@
<ItemGroup>
<ProjectReference Include="..\..\..\common\ManagedTelemetry\Telemetry\ManagedTelemetry.csproj" />
<ProjectReference Include="..\Common\PreviewHandlerCommon.csproj" />
<ProjectReference Include="..\..\..\settings-ui\Settings.UI.Library\Settings.UI.Library.csproj" />
</ItemGroup>
</Project>

Просмотреть файл

@ -12,6 +12,8 @@ namespace Microsoft.PowerToys.Settings.UI.Library
{
public class PowerPreviewProperties
{
public const string DefaultStlThumbnailColor = "#FFC924";
private bool enableSvgPreview = true;
[JsonPropertyName("svg-previewer-toggle-setting")]
@ -182,8 +184,12 @@ namespace Microsoft.PowerToys.Settings.UI.Library
}
}
[JsonPropertyName("stl-thumbnail-color-setting")]
public StringProperty StlThumbnailColor { get; set; }
public PowerPreviewProperties()
{
StlThumbnailColor = new StringProperty(DefaultStlThumbnailColor);
}
public override string ToString()

Просмотреть файл

@ -56,6 +56,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
_pdfThumbnailIsEnabled = Settings.Properties.EnablePdfThumbnail;
_gcodeThumbnailIsEnabled = Settings.Properties.EnableGcodeThumbnail;
_stlThumbnailIsEnabled = Settings.Properties.EnableStlThumbnail;
_stlThumbnailColor = Settings.Properties.StlThumbnailColor.Value;
}
private bool _svgRenderIsEnabled;
@ -68,6 +69,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
private bool _pdfThumbnailIsEnabled;
private bool _gcodeThumbnailIsEnabled;
private bool _stlThumbnailIsEnabled;
private string _stlThumbnailColor;
public bool SVGRenderIsEnabled
{
@ -249,6 +251,24 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
}
}
public string STLThumbnailColor
{
get
{
return _stlThumbnailColor;
}
set
{
if (value != _stlThumbnailColor)
{
_stlThumbnailColor = value;
Settings.Properties.StlThumbnailColor.Value = value;
RaisePropertyChanged();
}
}
}
public string GetSettingsSubPath()
{
return _settingsConfigFileFolder + "\\" + ModuleName;

Просмотреть файл

@ -684,6 +684,9 @@
<value>.stl</value>
<comment>File extension, should not be altered</comment>
</data>
<data name="FileExplorerPreview_Color_Thumbnail_STL.Header" xml:space="preserve">
<value>Color</value>
</data>
<data name="FileExplorerPreview_ToggleSwitch_Thumbnail_PDF.Header" xml:space="preserve">
<value>Portable Document Format</value>
<comment>File type, do not translate</comment>

Просмотреть файл

@ -110,14 +110,29 @@
</controls:Setting.ActionContent>
</controls:Setting>
<controls:Setting x:Uid="FileExplorerPreview_ToggleSwitch_Thumbnail_STL" Icon="&#xE914;">
<controls:Setting.ActionContent>
<ToggleSwitch IsOn="{x:Bind Mode=TwoWay, Path=ViewModel.STLThumbnailIsEnabled}"
x:Uid="ToggleSwitch"/>
</controls:Setting.ActionContent>
</controls:Setting>
<controls:SettingExpander IsExpanded="False">
<controls:SettingExpander.Header>
<controls:Setting x:Uid="FileExplorerPreview_ToggleSwitch_Thumbnail_STL" Icon="&#xE914;">
<controls:Setting.ActionContent>
<ToggleSwitch IsOn="{x:Bind Mode=TwoWay, Path=ViewModel.STLThumbnailIsEnabled}"
x:Uid="ToggleSwitch"/>
</controls:Setting.ActionContent>
</controls:Setting>
</controls:SettingExpander.Header>
<controls:SettingExpander.Content>
<StackPanel>
<controls:Setting x:Uid="FileExplorerPreview_Color_Thumbnail_STL" Style="{StaticResource ExpanderContentSettingStyle}">
<controls:Setting.ActionContent>
<controls:ColorPickerButton SelectedColor="{x:Bind Path=ViewModel.STLThumbnailColor, Mode=TwoWay}"
IsEnabled="{x:Bind ViewModel.STLThumbnailIsEnabled, Mode=OneWay}"/>
</controls:Setting.ActionContent>
</controls:Setting>
</StackPanel>
</controls:SettingExpander.Content>
</controls:SettingExpander>
</controls:SettingsGroup>
</StackPanel>
</controls:SettingsPageControl.ModuleContent>