Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -326,5 +326,5 @@ ASALocalRun/
# NVidia Nsight GPU debugger configuration file
*.nvuser

# MFractors (Xamarin productivity tool) working folder
# MFractors (Xamarin productivity tool) working folder
.mfractor/
18 changes: 8 additions & 10 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,14 @@
</PropertyGroup>

<ItemGroup>
<PackageVersion Include="Avalonia" Version="11.2.4" />
<PackageVersion Include="Avalonia.Desktop" Version="11.2.4" />
<PackageVersion Include="Avalonia.Themes.Fluent" Version="11.2.4" />
<PackageVersion Include="Avalonia.Fonts.Inter" Version="11.2.4" />
<PackageVersion Include="Avalonia.Diagnostics" Version="11.2.4" />
<PackageVersion Include="Avalonia.Xaml.Interactions" Version="11.2.0.8" />
<PackageVersion Include="Avalonia.AvaloniaEdit" Version="11.1.0" />
<PackageVersion Include="AvaloniaEdit.TextMate" Version="11.1.0" />
<PackageVersion Include="TextMateSharp.Grammars" Version="1.0.66" />
<PackageVersion Include="FluentAvaloniaUI" Version="2.2.0" />
<PackageVersion Include="Avalonia" Version="12.0.1" />
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="12.0.0" />
<PackageVersion Include="Avalonia.Desktop" Version="12.0.1" />
<PackageVersion Include="Avalonia.Themes.Fluent" Version="12.0.1" />
<PackageVersion Include="Avalonia.Fonts.Inter" Version="12.0.1" />
<PackageVersion Include="Avalonia.AvaloniaEdit" Version="12.0.0" />
<PackageVersion Include="AvaloniaEdit.TextMate" Version="12.0.0" />
<PackageVersion Include="TextMateSharp.Grammars" Version="2.0.3" />

<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.3.0" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.7" />
Expand Down
1 change: 0 additions & 1 deletion src/SharpFM.Plugin.Sample/SharpFM.Plugin.Sample.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
<ItemGroup>
<PackageReference Include="Avalonia" />
<PackageReference Include="Avalonia.Themes.Fluent" />
<PackageReference Include="FluentAvaloniaUI" />
<PackageReference Include="MinVer">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<PackageReference Include="Avalonia.AvaloniaEdit" />
<PackageReference Include="TextMateSharp.Grammars" />
<PackageReference Include="AvaloniaEdit.TextMate" />
<PackageReference Include="FluentAvaloniaUI" />
<PackageReference Include="MinVer">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
Expand Down
33 changes: 19 additions & 14 deletions src/SharpFM/Services/ClipboardService.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Input;
using FluentAvalonia.UI.Data;
using Avalonia.Input.Platform;

namespace SharpFM.Services;

Expand All @@ -19,31 +20,35 @@ public ClipboardService(Window window)

public async Task SetTextAsync(string text)
{
var clipboard = _window.Clipboard
?? throw new InvalidOperationException("Clipboard is not available.");
var clipboard = GetClipboard();
await clipboard.SetTextAsync(text);
}

public async Task SetDataAsync(string format, byte[] data)
{
var clipboard = _window.Clipboard
?? throw new InvalidOperationException("Clipboard is not available.");
var dp = new DataPackage();
dp.SetData(format, data);
await clipboard.SetDataObjectAsync(dp);
var clipboard = GetClipboard();
var dataFormat = DataFormat.CreateBytesPlatformFormat(format);
var transfer = new DataTransfer();
transfer.Add(DataTransferItem.Create(dataFormat, data));
await clipboard.SetDataAsync(transfer);
}

public async Task<string[]> GetFormatsAsync()
{
var clipboard = _window.Clipboard
?? throw new InvalidOperationException("Clipboard is not available.");
return await clipboard.GetFormatsAsync();
var clipboard = GetClipboard();
var formats = await clipboard.GetDataFormatsAsync();
return formats.Select(f => f.Identifier).ToArray();
}

public async Task<object?> GetDataAsync(string format)
{
var clipboard = _window.Clipboard
?? throw new InvalidOperationException("Clipboard is not available.");
return await clipboard.GetDataAsync(format);
var clipboard = GetClipboard();
using var transfer = await clipboard.TryGetDataAsync();
if (transfer is null) return null;
var dataFormat = DataFormat.CreateBytesPlatformFormat(format);
return await transfer.TryGetValueAsync(dataFormat);
}

private IClipboard GetClipboard() =>
_window.Clipboard ?? throw new InvalidOperationException("Clipboard is not available.");
}
7 changes: 1 addition & 6 deletions src/SharpFM/SharpFM.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -57,18 +57,13 @@
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />

<PackageReference Include="Avalonia" />
<PackageReference Include="Avalonia.Controls.DataGrid" />
<PackageReference Include="Avalonia.Desktop" />
<PackageReference Include="Avalonia.Xaml.Interactions" />
<PackageReference Include="Avalonia.Themes.Fluent" />
<PackageReference Include="Avalonia.Fonts.Inter" />
<PackageReference Include="Avalonia.AvaloniaEdit" />
<PackageReference Include="TextMateSharp.Grammars" />
<PackageReference Include="AvaloniaEdit.TextMate" />
<!--Condition
below is needed to remove Avalonia.Diagnostics package from build output in Release
configuration.-->
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" />
<PackageReference Include="FluentAvaloniaUI" />

<PackageReference Include="MinVer">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
Loading