Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Manual installer UI Layout and Styling (#673)
* Setup view stub for body and get Preview working * Added AdvancedInstaller Footer View and styling * Styling and layout for Body of Manual installer * Added stubs for ModContent and Results views * Fix codebehind not using reactive usercontrol * Use Grid for base:MessageBox overlay since StackPanel breaks ScrollViews * Add Overlay view and file structure * Register views in the DI * Fix preview size * Correct center sections colors * Add overlay header translation * Overlay view layout and styling * Add translations for body view * Remove nullable from fixed child vms * Added translations for ModContent heading * Add ModContent header section * Add TreeDataGrid dependency * Add TreeDataGrid to App.UI project to be able to style it. * WIP testing of TreeDataGrid stuff * Add file structure for TreeEntry view * Add File and Folder icons * Add new Accent Pill style. Disable pointerover if it's just a label * Rename old Rounded button * Add Label version for Pill buttons (that don't react to mouseover) * Add Pill style Standard * Add WidgetRounded Button style * Add "AddCircle" icon and update GameWidget Style * Remove old rounded button * Rename WidgetRounded to Rounded * Added Close icon * Add check icon * Added more Tree entry elements * Added Bytton.Rounded.Secondary style * Change button to new style * Register TreeEntryView to DI * Added Active, SemiActive, Accent and SemiActiveAccent rounded button styles * Add plus Icon * Add create Folder button * Add some minimal temporary styling to TreeDataGrid * Add Delete-Outline icon * Add Cancel, Save, Delete buttons for Folder Creation * Add disabled versions of Rounded button styles * Update preview for rounded buttons * Hide most buttons and align filename text * Add Translations for TreeItemView * Add Empty Preview view and add dependencies between view models and interfaces * Add empty right preview view * Translate Preview Text * Fix background for right side * Organize Preview ViewModels * Separate ViewModels for Preview section again, this should make switching simpler. * Formalize Border Styles into classes * Add file structure for SelectLocation view for Preview section * Add some border styles * Implement Layout for Select Folder view for preview section * Fix background colors * Moved: Advanced Installer Content from Real ViewModel to Design ViewModel * Add translations for SelectLocation View * Add file structure for SuggestedEntry View * Fix resizing issues with Tree Entry * Implement layout of SuggestedEntry view * Temporary: Create TreeEntryView from FuncDataTemplate * Add preview for Suggested Entries * Some tree styling * Remove Selection Styling from TreeDataGrid and add hover styling * Added: FileTreeNode to TreeDataGrid Conversion & Cleanup ModContentView * Added Install Location Preview view layout, styling and translations. * Add Unsuppoerted Mod Overlay view * Add Alert-Outline icon * Add Standard SecondaryOutlined button style * Unsupported mod Overlay layout and styling * Update translations for Unsupported Overlay * Hide Header from TreeDataGrid without causing bug with Star columns * Added: Mechanism for 'Selecting' a file * Changed: Split Results Section into 3 Namespaces * Rename TreeDataGridSourceFileNode to ModContentFileNode * Refactor: Move Page Specific Nodes to Relevant Page(s) * Changed: Reworked Namespaces Throughout UI Project * Changed: UI Project Visual Components are now Internal * Changed: Re-marked views as public because Avalonia previewer can't handle internal * WIP: SuggestedEntryNode * Renamed: IModContentFileNode to ModContentNode * Split Location Target Nodes * - Rename ModContentEntryView to TreeEntryView - ITreeEntryVM interface temp implementation wip. - Add TextBox to TreeItemView for CreateFolder text input field. * Added: Some incomplete boilerplate for Preview and SuggestedEntry Nodes * Changed: DeploymentData.RemoveMapping should only unmap from output if it has item (in case GamePath is changed to class) * Added: The ability to force remap items in DeploymentData * Added: Ability to force unmap items [tests included]. And Source node integration with it. * Added: Getters for pill flags in IPreviewEntryNode * Added: Extra clarification in docs. * Removed: A Redundant TODO * Added: Small cleanup of PreviewEntryNode * Fixed: Invalid doc element * Update documentation element for ModContentNode * Hide all elements from the TreeEntryView by default * Update project structure * Add Node property on TreeEntryVM, can be one of three types * Add ModContentNode binding to TreeEntryView * Update translations * Remove leftover stuff from ItreeEntryVM * [WIP] Node Linking * Fix Missing directoryname for link target * Create temporary constructor without parameters to allow previews to work * Added IsTopLevel handling in UI for ModContentNode * Switch ModContentNode.Children to be ITreeItemViewModel to allow view to bind to it. * Fix missing dispose * Added: Remainder of Node Linking * Fix casts due to Children type change * Added: Support for linking/unlinking files w/ Tests * Added: Test for unlinking from Right Hand Side (via UnlinkableItem) * Fix crash in preview * Added: Some work towards Results Section node unlinkability * [Untested - Pushing only for API Availability] Added: PreviewEntryNode Creation * Setup TreeEntryView for PreviewNodes * Added: Results Tree Creation (w/ Tests) * Fixed: Accidental Class Rename in last Commit * Change IPreviewEntryNode.Children to be ITreeEntryVM * Added: Miscellaneous Fixes * Added: Basic (non-recursive) preview linking test * Attempt to show a preview tree on right content * Fix build error * Added: Test for Recursive Linking * Fixed: Borked test for recursive bind * Fixed: GetChild due to merge * Add stub SelectableDirectoryNode implementation * Changed: Linking from ModContentNode now recursively links all children one by one. * Added: Test for recursive unlinking. * Basic view wiring for SelectableDirectoryNode * Added: Test to ensure Child node is deleted in CanUnlinkFolders * Bunch of fixes to fix crash in preview. Crash is fixed but items don't show as wanted still * Changed: AddChild to AddChildren in LocationPreviewVM * Fix IBodyViewModel not extending IViewModel - Avoid tree freeze by showing empty preview on the right for now. * Fix preview trees being broken * Fix Preview tree entry generation and display * [WIP] Added: Tree Creation in SelectableDirectoryNode * Infrastructure for select tree * Added: Tree Creation in SelectableDirectoryNode 2/2 * Changed: Locale is now updated via changing CurrentUICulture * Reuse Shared Components in AdvancedInstaller Projects (fixes #703) * Various fixes for Select location tree view preview. * Fix black expanding caret on select tree view * Add other statuses types to Select tree element preview * Fix placement of remove created folder button * Remove Unneeded Dependency from AdvancedInstaller * Added: Basic [Untested] AdvancedInstaller UI Bootstrapper * Some textbox fixes * Wire up Data for AdvancedInstaller UI Bootstrapping * Fixed: Borked DesignViewModels from Last Commit * Fixed build errors due to merge conflicts * Wire up UnsupportedModOverlay & Remove Unused Using(s) * Removed: Unused using(s) post merge * Added: Misc cleanup of .xaml files tied to ModContentView * Fixed: ModContentView referencing wrong ViewModel * [1/3] [ModContent] Separate out TreeView(s) * Added: Clarification on 'X Select Location' * [2/3] [Results] Separate out TreeView(s) * Optimized TreeEntryView UI XAML * [3/3] [SuggestedEntry] Separate out TreeView(s) * Changed: Rename SelectableDirectoryEntryView as TreeEntryView * Added: Additional Preview for SelectableDirectory TreeEntry * Added: Bugfix for Empty Folder in LocationPreviewTreeView + small cleanup * Removed: Redundant Parenthesis * Added: Wire up SelectLocationViewModel at Runtime * Changed: Excluded Views from Code Coverage for AdvancedInstaller.UI * Removed: Dead Method in SelectableDirectory TreeEntry * Test Some Remaining ViewModels & Exclude Design ViewModels * Add Cancel and Install settable commands to the Advanced installer footer. * Bind the top right close button to decline command * Added: General Tests for Actually Running AdvancedInstaller * Changed: Apply R# refactoring guidance * Add and Bind commands for ModContent TreeEntry * Add CreateFolder entries in the Select tree * Added: Ability for MainBody to receive notifications from sub-controls * Use Encapsulating IAdvancedInstallerCoordinator * Fixed: Remaining Test * Added: Tests for BodyViewModel, Fix bug in SelectableDirectoryNode + Some Cleanup * Changed: UnlinkableItems should be null by default * Changed: OnDirectorySelected Should Check for Regular, not Created * Added: Tests for MultiSelect Support for Binding * Added: Support for re-linking via unlinking last item * Added: Support for unlinking from ModContent * Fixed: Bug where right hand side empty folder was leftover. * - Move coordinator stuff from the View to the VMs of the TreeEntries - Use Subjects and RX to subscribe to changes deeper in the Trees. - Fixed tests. * Fix build after Merge with main * Fix exception because OverlayController wasn't called from UI thread. * Add temporary way to invoke AdvancedInstaller when installing mods for SSE or SLE. * Cleanup Advanced installer ui code structure a bit * Implement Cancel buttons functionality and abort install Bind Install button and make it disabled depending on CanInstall property * Implement full select and deselect functionality for ModContent tree. - Removed previous code that didn't satisfy requirements. * Populate SuggestedEntries list on SelectPrview view * Fix default overlay dimensions * Pass LoadoutId to ModInstaller.GetModsAsync to allow querying loadout Do some workaround to avoid circular dependency * Show mod Name in Advanced installer UI * Dispose of Subjects in AdvancedInstaller BodyVM * WIP: Getting Linking working. This binds all the commands, functionality is broken. * Fix Preview target generation to actually create and link to the item nodes rather than the parent nodes * Fix mapping All Files to Root location creating extra folder * Various fixes for unlinking: - Remove all empty anchestors (root removal is still WIP) - Cleanup with naming * Wip fixes * Wip cleanup * Properly cleanup Root items from Preview view when left empty * Fix always linking subfolders if they were excluded * Show correct linked location name on Mod Content linked items * Code cleanup * Implement unlinking from Preview side as well * - Unlink parent folder when all children are unlinked - Deselect parent folder when all children are deselected * Enable Install button when there is something to install and disable otherwise * WIP: switch to IViewModelInterface from IViewModel * Implement Create Folder functionality: - Editing - Validation - Creation - Removal * General warning and code cleanup * Fix all the AdvancedInstaller Tests * Disable Manual Installer from bethesda games as it breaks Network and CLI tests * Use IViewModelInterface instead of just IViewModel * Fix crash caused by Game adding a file as a LocationId * Remove min size from overlay * Use 1024x576 to better accommodate smaller screen sizes * Localize fallback mod name --------- Co-authored-by: sewer56 <[email protected]> Co-authored-by: Sewer <[email protected]>
- Loading branch information