mirror of
https://github.com/QL-Win/QuickLook.git
synced 2025-09-13 19:19:10 +00:00
Add support for svgaplayerweb in SVGA viewer
This commit is contained in:
@@ -15,21 +15,48 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
using Google.Protobuf.Compiler;
|
||||
using QuickLook.Plugin.ImageViewer.Webview.Svg;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text.Json;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
|
||||
namespace QuickLook.Plugin.ImageViewer.Webview.Svga;
|
||||
|
||||
public class SvgaImagePanel : SvgImagePanel
|
||||
public class SvgaImagePanel(IWebMetaProvider metaWeb) : SvgImagePanel()
|
||||
{
|
||||
private readonly IWebMetaProvider _metaWeb = metaWeb;
|
||||
|
||||
public override void Preview(string path)
|
||||
{
|
||||
FallbackPath = Path.GetDirectoryName(path);
|
||||
|
||||
ObjectForScripting ??= new ScriptHandler(path);
|
||||
ObjectForScripting ??= new ScriptHandler(path, _metaWeb);
|
||||
|
||||
_homePage = _resources["/svga2html.html"];
|
||||
NavigateToUri(new Uri("file://quicklook/"));
|
||||
}
|
||||
}
|
||||
|
||||
[ClassInterface(ClassInterfaceType.AutoDual)]
|
||||
[ComVisible(true)]
|
||||
public sealed class ScriptHandler(string path, IWebMetaProvider metaWeb)
|
||||
{
|
||||
public string Path { get; } = path;
|
||||
public IWebMetaProvider MetaWeb { get; } = metaWeb;
|
||||
|
||||
public async Task<string> GetPath()
|
||||
{
|
||||
return await Task.FromResult(new Uri(Path).AbsolutePath);
|
||||
}
|
||||
|
||||
public async Task<string> GetSize()
|
||||
{
|
||||
var size = MetaWeb.GetSize();
|
||||
string jsonString = JsonSerializer.Serialize(new { width = size.Width, height = size.Height });
|
||||
return await Task.FromResult(jsonString);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user