Skip to content

Commit cd1a7a2

Browse files
committed
Avalonia 12.0.0-preview1
1 parent 46900f9 commit cd1a7a2

File tree

6 files changed

+43
-44
lines changed

6 files changed

+43
-44
lines changed

src/PicView.Avalonia.Win32/Program.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public static AppBuilder BuildAvaloniaApp()
2727
UseOpacitySaveLayer = true
2828
})
2929
.UseWin32()
30+
.UseHarfBuzz()
3031
.UseSkia();
3132
}
3233
}

src/PicView.Avalonia/Clipboard/ClipboardImageOperations.cs

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
using System.Runtime.InteropServices;
2-
using Avalonia.Controls;
32
using Avalonia.Input;
43
using Avalonia.Input.Platform;
54
using Avalonia.Media.Imaging;
6-
using ImageMagick;
75
using PicView.Avalonia.Navigation;
8-
using PicView.Avalonia.UI;
96
using PicView.Avalonia.ViewModels;
107
using PicView.Core.DebugTools;
118
using PicView.Core.ImageDecoding;
@@ -170,22 +167,22 @@ public static async Task PasteClipboardImage(MainViewModel vm)
170167

171168
foreach (var format in formats)
172169
{
173-
try
174-
{
175-
var data = await clipboard.GetDataAsync(format);
176-
if (data is not byte[] dataBytes)
177-
{
178-
continue;
179-
}
180-
181-
using var memoryStream = new MemoryStream(dataBytes);
182-
return new Bitmap(memoryStream);
183-
}
184-
catch (Exception ex)
185-
{
186-
// Ignore format errors and try next format
187-
DebugHelper.LogDebug(nameof(ClipboardImageOperations), nameof(TryGetBitmapFromClipboard), ex);
188-
}
170+
// try
171+
// {
172+
// var data = await clipboard.GetDataAsync(format);
173+
// if (data is not byte[] dataBytes)
174+
// {
175+
// continue;
176+
// }
177+
//
178+
// using var memoryStream = new MemoryStream(dataBytes);
179+
// return new Bitmap(memoryStream);
180+
// }
181+
// catch (Exception ex)
182+
// {
183+
// // Ignore format errors and try next format
184+
// DebugHelper.LogDebug(nameof(ClipboardImageOperations), nameof(TryGetBitmapFromClipboard), ex);
185+
// }
189186
}
190187

191188
return null;

src/PicView.Avalonia/Clipboard/ClipboardTextOperations.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using Avalonia.Input.Platform;
2+
13
namespace PicView.Avalonia.Clipboard;
24

35
/// <summary>

src/PicView.Avalonia/CustomControls/CopyButton.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Avalonia;
22
using Avalonia.Controls;
3+
using Avalonia.Input.Platform;
34
using Avalonia.Interactivity;
45
using PicView.Core.DebugTools;
56

src/PicView.Avalonia/DragAndDrop/DragAndDropHelper.cs

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,34 +27,28 @@ public static async Task Drop(DragEventArgs e, MainViewModel vm)
2727
{
2828
RemoveDragDropView();
2929

30-
var files = e.Data.GetFiles();
30+
var files = e.DataTransfer.TryGetFiles();
3131
if (files == null)
3232
{
3333
await HandleDropFromUrl(e, vm);
3434
return;
3535
}
3636

37-
var storageItems = files as IStorageItem[] ?? files.ToArray();
38-
var firstFile = storageItems.FirstOrDefault();
37+
var firstFile = files.FirstOrDefault();
3938
if (firstFile == null)
4039
{
4140
return;
4241
}
4342

4443
// Handle opening additional files in new windows if needed
45-
if (storageItems.Length > 1)
44+
if (files.Length > 1)
4645
{
47-
_ = Task.Run(() => HandleAdditionalFiles(storageItems.Skip(1)));
46+
_ = Task.Run(() => HandleAdditionalFiles(files.Skip(1)));
4847
}
4948

5049
var path = firstFile.Path.LocalPath;
5150

52-
if (e.Data.Contains("text/x-moz-url"))
53-
{
54-
await HandleDropFromUrl(e, vm);
55-
await EnsureImageViewerDisplayed(vm);
56-
}
57-
else if (path.IsSupported())
51+
if (path.IsSupported())
5852
{
5953
await EnsureImageViewerDisplayed(vm);
6054
await LoadSupportedFile(path, vm);
@@ -73,15 +67,17 @@ public static async Task Drop(DragEventArgs e, MainViewModel vm)
7367

7468
public static async Task DragEnter(DragEventArgs e, MainViewModel vm, Control control)
7569
{
76-
var files = e.Data.GetFiles();
70+
var files = e.DataTransfer.TryGetFiles();
7771
if (files != null)
7872
{
7973
await HandleDragEnterWithFiles(files, vm, control);
8074
}
8175
else
8276
{
83-
// Try handling as URL
84-
var handled = await HandleDragEnterFromUrl(e.Data.Get("text/x-moz-url"), vm);
77+
// // Try handling as URL
78+
var value = e.DataTransfer.Items[0];
79+
80+
var handled = await HandleDragEnterFromUrl(value, vm);
8581
if (!handled)
8682
{
8783
RemoveDragDropView();
@@ -129,15 +125,17 @@ private static void HandleAdditionalFiles(IEnumerable<IStorageItem> additionalFi
129125

130126
private static async Task HandleDropFromUrl(DragEventArgs e, MainViewModel vm)
131127
{
132-
var urlObject = e.Data.Get("text/x-moz-url");
133-
if (urlObject is byte[] bytes)
128+
var item = e.DataTransfer.Items[0].TryGetRaw(DataFormat.CreateBytesPlatformFormat("text/x-moz-url"));
129+
if (item is not byte[] bytes)
134130
{
135-
var dataStr = Encoding.Unicode.GetString(bytes);
136-
var url = dataStr.Split((char)10).FirstOrDefault();
137-
if (url != null)
138-
{
139-
await LoadFromUrl(url, vm);
140-
}
131+
return;
132+
}
133+
134+
var dataStr = Encoding.Unicode.GetString(bytes);
135+
var url = dataStr.Split((char)10).FirstOrDefault();
136+
if (url != null)
137+
{
138+
await LoadFromUrl(url, vm);
141139
}
142140
}
143141

src/PicView.Avalonia/PicView.Avalonia.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,9 @@
149149
</ItemGroup>
150150

151151
<ItemGroup>
152-
<PackageReference Include="Avalonia" Version="11.3.12"/>
153-
<PackageReference Include="Avalonia.Desktop" Version="11.3.12"/>
154-
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="AvaloniaUI.DiagnosticsSupport" Version="2.1.1" />
152+
<PackageReference Include="Avalonia" Version="12.0.0-preview1"/>
153+
<PackageReference Include="Avalonia.Desktop" Version="12.0.0-preview1"/>
154+
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="AvaloniaUI.DiagnosticsSupport" Version="2.2.0-beta2"/>
155155
<PackageReference Include="Magick.NET.AvaloniaMediaImaging" Version="1.1.9"/>
156156
<PackageReference Include="R3Extensions.Avalonia" Version="1.3.0" />
157157
<PackageReference Include="Svg.Controls.Skia.Avalonia" Version="11.3.9.2"/>

0 commit comments

Comments
 (0)