Avalonia UI#975
Conversation
This reverts commit 0ce6c7d.
There was a problem hiding this comment.
Many of the inline comments pertain to multiple locations, but there were a couple of overarching comments that I wanted to mention as well:
- There are basically no code comments. For anything that was based on existing WPF code, please copy the comment wholesale. For anything that is new functionality, add at the bare minimum a
summarystatement about what it is doing. I know that many are self-explanatory once you read the method, but those comments are used to get an understanding while coding to avoid having to look at the source for all details. - All loops, such as
for,foreach, andwhileshould have curly braces, regardless of the number of lines that are contained within. - I am seeing the use of
global::in many places and I would like to understand more about why this pattern is being used. - Unless there is ambiguity about what method or property is being invoked, you can avoid use of the
this.qualifier. - There are many places, such as large lists of constants/variables or OS-specific methods, that could do with
#regiontags. This can help break up the code into more distinct sections and allows collapsing away logical groupings.
…d handler for event wiring
…-only volume label check
…artials, macOS chrome service rename, one array item per line
|
The failing build is due to Redump login settings going from |
…ers, static file picker lists, split StringResource ternary
Replaces the load/save loops and name-to-site-code mapping arrays with two-way bindings in the markup, matching the original WPF window. The special field dictionaries are created before the DataContext is assigned so the bindings always have a write target.
Follows the Redump-to-RedumpOrg rename in MPF.Frontend (upstream commit 9e6e0f6), fixing the merged CI build: the credential test handler and the two login binding paths in OptionsWindow now use RedumpOrgUsername, RedumpOrgPassword, and GetRedumpOrgLoginResult.
|
Thanks for the pointer — that was exactly it. The branch was based on a master from before the One parity note from the merge: master also removed the split hash fields (Size/CRC-32/MD5/SHA-1) from the WPF |
Folds the helper into the property getter using the field keyword so the name is computed once per drive, and drops the redundant length check before trimming: the empty-string fallback already returns the raw name for single-character cases like the root path.
Removing those isn't strictly necessary as a part of this PR, but it would help the cleanup effort after. |
Mirrors upstream e39f4b5, which removed the Size/CRC-32/MD5/SHA-1 fields from the WPF MediaInformationWindow.
This PR adds an alternate UI framework for MPF based on Avalonia, allowing for Linux and macOS UI builds.
There may be some small tweaks needed before merging during my testing, but I want to open the PR now to begin the review process as this is a big change.
Thanks to 7 (@whatev-indus) for putting in the work on this, I've just helped with guidance and then cleaned it up to use SabreTools styles and build processes. I will also be responding to any PR review comments. If you want to make changes to the branch directly and cannot, ask 7 for contributor access to the repo.
This does not replace the WPF UI, currently both are built separately. The images (icon, ringcode pics) are referenced from the WPF folder, but the Strings XAML are duplicated. The new MPF.Avalonia namespace is intended to reference the MPF.Frontend namespace as much as possible, so that it can be a drop-in replacement for the old WPF UI.
It is also 7's request to have AppImage builds for Linux and other build changes required for icons and niceties on macOS, although these changes can come in a later PR (to minimize the review burden)