Add batch DLL swap: select multiple games and apply in one pass - #913
RafaelHGOliveira wants to merge 13 commits into
Conversation
|
Hey @RafaelHGOliveira, thanks for pushing this. I just wanted to let you know I see this PR, I just have not had time to review it yet. |
|
Looking forward for that PR or a similar solution to be added to the amazing software ! |
beeradmoore
left a comment
There was a problem hiding this comment.
Hey @RafaelHGOliveira , apologies for the long time to review. I still have not had time to do a full review yet but have left some notes on what I have seen so far. I have not run locally yet but looking at the screenshots I think this method will work. It is not what I had invisioned in #157, however I think this has many upsides (assuming filter + search will work while bulk editing) and may be preferred.
I had an idea from when you said these two things:
Every row defaults to Don't change, so nothing is touched unless it is explicitly chosen.
no bulk "reset to original DLL"
To add support for that could there be a row in there after "Don't Change" for "Restore original" (or "Restore original DLL") so that functinality could exist?
These are the pages I have not reviewed yet:
- src/Pages/GameGridPageModel.cs
- src/UserControls/BatchDllPickerControl.xaml
- src/UserControls/BatchDllPickerControlModel.cs
- src/UserControls/BatchDllRowModel.cs
- src/UserControls/BatchSwapSummaryControl.xaml
- src/UserControls/BatchSwapSummaryControlModel.cs
| </AppBarButton.Content> | ||
| </AppBarButton> | ||
| <AppBarButton Icon="Filter" Label="{x:Bind ViewModel.TranslationProperties.FilterText, Mode=OneWay}" Command="{x:Bind ViewModel.FilterGamesButtonCommand}" IsEnabled="{x:Bind ViewModel.IsGameListLoading, Converter={StaticResource BoolNegationConverter}, Mode=OneWay}"> | ||
| <AppBarButton Label="{x:Bind ViewModel.TranslationProperties.SelectText, Mode=OneWay}" Command="{x:Bind ViewModel.ToggleSelectionModeCommand}" IsEnabled="{x:Bind ViewModel.IsGameListLoading, Converter={StaticResource BoolNegationConverter}, Mode=OneWay}"> |
There was a problem hiding this comment.
I think "Select" is not clear what it is doing. "Bulk Update" and "Bulk Swap" may be a better fit, unsure if they will be too long though. (EDIT: Batch is another word to throw in there, but I am not sure if gamers understand what "batch update" will do as much as developers would)
|
Also another question, does this select method work if we are in list mode and not grid mode for the games? I would love to have this in before the v1.3 release with Streamline, DirectStorage, FSR4, etc. But I don't know when that is, and I don't know when you are free to look at the above. If it is it is, if it isn't it isn't. I will have to update this screen after that to add support for them. I think I'll be doing changes on the game page to clean up the DLL selection like adding grouping of technolgoies under tabs or something. I'll look at applying those same changes here so they both match. |
Backups are only created on swap, so a current DLL with no .dlsss backup is the game's original. Report it as a not-applicable skip instead of an actionable one, and make the not-applicable summary text generic so it no longer claims every such change was for a DLL type the game does not use.
Translate the 41 bulk swap strings to pt-BR, rename the summary title from 'Batch swap' to 'Bulk swap' to match the toolbar, and drop General_Clear, which the 'Select none' rename left unused.
|
Thanks for the review @beeradmoore! I've pushed a follow-up that addresses the notes so far: Toolbar / selection bar
Filter + search while bulk editing
Restore original DLL
List mode Translations Screenshots Toolbar with the new Bulk Swap button:
Selection bar in bulk swap mode:
DLL picker with the Restore original DLL option:
Summary after a bulk restore:
|
I think this was a good call. Everything else looks great. I love the extra bug fixes added in as well. I can't wait to find time to re-review and get this merged in. Thanks for the amazing work @RafaelHGOliveira |
|
Code wise this is all approved. I just need to test it and we should be good to go. |




Description of Changes
Adds a selection mode to the games grid so several games can be updated in one operation, instead of opening each game individually.
Flow
1.
Selectin the toolbar enters selection mode — cards become checkable and a bar appears with the selection count,Select all,Apply DLL,ClearandDone.2.
Apply DLLopens a picker listing every DLL type, each with a version dropdown, plus a preset dropdown for the three DLSS types. Every row defaults to Don't change, so nothing is touched unless it is explicitly chosen.3. Applying runs sequentially behind a progress dialog, then shows a summary: how many changes were made across how many games, how many were skipped, how many errored, and a separate count for changes that did not apply because a game does not ship that DLL type.
Notable details
.resw/ResourceHelper. Onlyen-USis populated in this PR — the other locales fall back until translated.GameAssetTypenumbering, the database schema, or the manifest.Type of Change
Issues Resolved
Related to #157.
The design sketched in that issue is not followed exactly here — the differences I am aware of:
Select allis a plain toggle rather than tri-stateHappy to rework any of these, or to split the PR up, if the design in #157 is the direction you want to take. Opening it as a draft so there is something concrete to react to.