mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
Revise ttf/otf code
This commit is contained in:
parent
47c4023c2c
commit
ded4940b09
1 changed files with 28 additions and 5 deletions
|
|
@ -7,11 +7,16 @@ using Flow.Launcher.Infrastructure.Logger;
|
||||||
using Flow.Launcher.Infrastructure.UserSettings;
|
using Flow.Launcher.Infrastructure.UserSettings;
|
||||||
using Flow.Launcher.Plugin;
|
using Flow.Launcher.Plugin;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Drawing.Text;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Flow.Launcher.ViewModel
|
namespace Flow.Launcher.ViewModel
|
||||||
{
|
{
|
||||||
public class ResultViewModel : BaseModel
|
public class ResultViewModel : BaseModel
|
||||||
{
|
{
|
||||||
|
private static PrivateFontCollection fontCollection = new();
|
||||||
|
private static Dictionary<string, string> fonts = new();
|
||||||
|
|
||||||
public ResultViewModel(Result result, Settings settings)
|
public ResultViewModel(Result result, Settings settings)
|
||||||
{
|
{
|
||||||
if (result != null)
|
if (result != null)
|
||||||
|
|
@ -23,13 +28,29 @@ namespace Flow.Launcher.ViewModel
|
||||||
// Checks if it's a system installed font, which does not require path to be provided.
|
// Checks if it's a system installed font, which does not require path to be provided.
|
||||||
if (glyph.FontFamily.EndsWith(".ttf") || glyph.FontFamily.EndsWith(".otf"))
|
if (glyph.FontFamily.EndsWith(".ttf") || glyph.FontFamily.EndsWith(".otf"))
|
||||||
{
|
{
|
||||||
var fontPath = Result.Glyph.FontFamily;
|
string fontFamilyPath = glyph.FontFamily;
|
||||||
Glyph = Path.IsPathRooted(fontPath)
|
|
||||||
? Result.Glyph
|
if (!Path.IsPathRooted(fontFamilyPath))
|
||||||
: Result.Glyph with
|
{
|
||||||
|
fontFamilyPath = Path.Combine(Result.PluginDirectory, fontFamilyPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fonts.ContainsKey(fontFamilyPath))
|
||||||
|
{
|
||||||
|
Glyph = glyph with
|
||||||
{
|
{
|
||||||
FontFamily = Path.Combine(Result.PluginDirectory, fontPath)
|
FontFamily = fonts[fontFamilyPath]
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fontCollection.AddFontFile(fontFamilyPath);
|
||||||
|
fonts[fontFamilyPath] = $"{Path.GetDirectoryName(fontFamilyPath)}/#{fontCollection.Families[^1].Name}";
|
||||||
|
Glyph = glyph with
|
||||||
|
{
|
||||||
|
FontFamily = fonts[fontFamilyPath]
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -41,6 +62,8 @@ namespace Flow.Launcher.ViewModel
|
||||||
Settings = settings;
|
Settings = settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private Settings Settings { get; }
|
private Settings Settings { get; }
|
||||||
|
|
||||||
public Visibility ShowOpenResultHotkey =>
|
public Visibility ShowOpenResultHotkey =>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue