chore: Upgrade Avalonia to 12.0 and migrate codebase#1673
Conversation
49ae40e to
c71c40c
Compare
c71c40c to
ac43186
Compare
| // needs to know the exact types at compile time. | ||
|
|
||
| [DllImport("/usr/lib/libobjc.A.dylib")] | ||
| private static extern IntPtr objc_getClass(string name); |
| private static extern IntPtr objc_getClass(string name); | ||
|
|
||
| [DllImport("/usr/lib/libobjc.A.dylib")] | ||
| private static extern IntPtr sel_registerName(string name); |
| private static extern IntPtr sel_registerName(string name); | ||
|
|
||
| [DllImport("/usr/lib/libobjc.A.dylib", EntryPoint = "objc_msgSend")] | ||
| private static extern IntPtr objc_msgSend_ret(IntPtr receiver, IntPtr selector); |
| private static extern IntPtr objc_msgSend_ret(IntPtr receiver, IntPtr selector); | ||
|
|
||
| [DllImport("/usr/lib/libobjc.A.dylib", EntryPoint = "objc_msgSend")] | ||
| private static extern void objc_msgSend_arg(IntPtr receiver, IntPtr selector, IntPtr arg); |
| private static extern void objc_msgSend_arg(IntPtr receiver, IntPtr selector, IntPtr arg); | ||
|
|
||
| [DllImport("/usr/lib/libobjc.A.dylib", EntryPoint = "objc_msgSend")] | ||
| private static extern IntPtr objc_msgSend_arg_ret(IntPtr receiver, IntPtr selector, IntPtr arg); |
| private static extern IntPtr objc_msgSend_arg_ret(IntPtr receiver, IntPtr selector, IntPtr arg); | ||
|
|
||
| [DllImport("/usr/lib/libobjc.A.dylib", EntryPoint = "objc_msgSend")] | ||
| private static extern void objc_msgSend_bool(IntPtr receiver, IntPtr selector, [MarshalAs(UnmanagedType.I1)] bool arg); |
| private static extern void objc_msgSend_bool(IntPtr receiver, IntPtr selector, [MarshalAs(UnmanagedType.I1)] bool arg); | ||
|
|
||
| [DllImport("/usr/lib/libobjc.A.dylib", EntryPoint = "objc_msgSend")] | ||
| private static extern void objc_msgSend_long(IntPtr receiver, IntPtr selector, long arg); |
|
|
||
| // remove the toolbar to restore the default thin title bar | ||
| if (_nsWindow != IntPtr.Zero && _selSetToolbar != IntPtr.Zero) | ||
| objc_msgSend_arg(_nsWindow, _selSetToolbar, IntPtr.Zero); |
|
|
||
| // 2. cache ObjC selectors used during setup and fullscreen transitions. | ||
| // sel_registerName returns a stable pointer for the lifetime of the process. | ||
| _selSetToolbar = sel_registerName("setToolbar:"); |
| // 2. cache ObjC selectors used during setup and fullscreen transitions. | ||
| // sel_registerName returns a stable pointer for the lifetime of the process. | ||
| _selSetToolbar = sel_registerName("setToolbar:"); | ||
| _selSetTitlebarAppearsTransparent = sel_registerName("setTitlebarAppearsTransparent:"); |
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
b369dbe to
cefcc81
Compare
Minimum allowed line rate is |
…port and use WithDeveloperTools()
…proved data binding
…ndicator to core object editors
…base main側で追加された新規コードがリベース後も移行前のAPIを参照していたため修正: - FluentAvalonia 3.0 のFA接頭辞付き型へ移行 (ContentDialog/IconSource/PickerFlyoutBase/SymbolIcon 等 -> FA*) - Avalonia 12 で非公開化した Visual.GetVisualRoot() を IsAttachedToVisualTree() へ置換 対象: WindowCaptureDialog, CrashRecoveryPromptTask, ToolWindowExtension, ExtensionsToolWindowExtension, OutputPickerFlyoutPresenter, HistoryView, MarkerEditFlyout, OutputPickerFlyout, OutputTab, MainView, CommandPaletteView, SampleToolWindowExtension
- FluentAvaloniaUI: 3.0.0-preview4 -> 3.0.0 - AvaloniaUI.DiagnosticsSupport: 2.2.2 -> 2.2.3 - Svg.Controls.Skia.Avalonia: 12.0.0.11 -> 12.0.0.13 Claude-Session: https://claude.ai/code/session_01RJjpa89ubCWUGqXcPzb4oS
… rebase The 003 pipeline (#1886) added SaveFrameDialog and the frame-save context menu against FluentAvalonia's ContentDialog, but this branch had already migrated dialogs to FAContentDialog (FluentAvalonia 3.0). The rebase replayed that migration under the newer code, so update these call sites to FAContentDialog/FAContentDialogResult to match the other dialogs. Claude-Session: https://claude.ai/code/session_01GJAqiaJzpB1pQFqnQhMoEf
b6a1014 to
e69347e
Compare
e69347e to
cc1f40c
Compare
There was a problem hiding this comment.
Code Review Bot flagged 1 possible comment/code divergence(s). These are advisory.
Results are for commit cc1f40c. On newer commits, the bot's summary comment reflects the latest run.
| added 1px left margin, otherwise we can get strange artifacts while | ||
| animating, I'm guessing from bad invalidation rects? |
There was a problem hiding this comment.
Comment may no longer match the code (info)
The comment states a 1px left margin was added, but the actual code has a left margin of 2 (Margin="2,0,0,0").
Current comment:
added 1px left margin, otherwise we can get strange artifacts while
animating, I'm guessing from bad invalidation rects?
Suggested update:
added 2px left margin, otherwise we can get strange artifacts while
animating, I'm guessing from bad invalidation rects?
Code Review BotNo comment/code divergences or documentation drift detected. Reviewed 98 file(s); skipped 103. |
|
No TODO comments were found. |
Description
ReflectionBindingfor dynamic bindings,x:DataTypefor compiled bindings,PlaceholderText,FocusChangedEventArgs,Math.Clamp,Avalonia.Input.Platformnamespace, logical-tree traversal, andTopLevel-based scaling.Avalonia.DiagnosticswithAvaloniaUI.DiagnosticsSupport(WithDeveloperTools()), remove the customBcTabItem/BcTabView/DirectoryTreeViewcontrols, and migrate UI to FluentAvalonia (FA) components including the renamedBeutl.FluentIcons.FluentAvaloniapackage.DirectoryViewTestproject and adjust several window/editor views (styles, drag handling,IListEditorViewModel.IsEnabled, etc.) for consistency under the new framework.Breaking changes
BcTabItem/BcTabVieworDirectoryTreeViewcontrols must migrate to the FluentAvalonia equivalents, since these controls were removed.FluentIcons.FluentAvaloniapackage must switch toBeutl.FluentIcons.FluentAvalonia.Fixed issues
None