[PR #201] [MERGED] Options #985

Closed
opened 2026-01-29 16:24:40 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/SabreTools/MPF/pull/201
Author: @mnadareski
Created: 5/7/2020
Status: Merged
Merged: 5/7/2020
Merged by: @mnadareski

Base: masterHead: options


📝 Commits (10+)

  • 6742444 Start reorganizing options and internals
  • 36f1aea Make entire options flow more robust
  • b5898c7 Few more TODOs, slightly cleaner code
  • dc90f9a Simplify Options constructor
  • 230b6ca Fix eject and reset
  • ca753b4 Some other abstractions
  • 9a3c2eb Enforce readonly
  • 0efecd6 Fix tests, like the TODO said
  • 26e7228 Move specific output file parsing to specific parameters
  • 68e0d75 Add some future enums, add notes around .NET Core build path

📊 Changes

20 files changed (+3126 additions, -2225 deletions)

View changed files

📝 DICUI.Check/Program.cs (+51 -18)
📝 DICUI.Library/Aaru/Parameters.cs (+285 -1)
DICUI.Library/CleanRIp/Parameters.cs (+319 -0)
📝 DICUI.Library/DD/Parameters.cs (+15 -0)
📝 DICUI.Library/DICUI.Library.csproj (+2 -2)
📝 DICUI.Library/Data/BaseParameters.cs (+119 -1)
📝 DICUI.Library/Data/Enumerations.cs (+103 -3)
DICUI.Library/Data/Options.cs (+286 -0)
📝 DICUI.Library/DiscImageCreator/Converters.cs (+0 -4)
📝 DICUI.Library/DiscImageCreator/Parameters.cs (+1329 -6)
📝 DICUI.Library/Utilities/Converters.cs (+43 -0)
📝 DICUI.Library/Utilities/DumpEnvironment.cs (+199 -1763)
📝 DICUI.Library/Utilities/Validators.cs (+45 -4)
📝 DICUI.Test/Utilities/DumpEnvironmentTest.cs (+8 -13)
DICUI/Options.cs (+0 -211)
DICUI/UIOptions.cs (+122 -0)
📝 DICUI/ViewModels.cs (+111 -35)
📝 DICUI/Windows/MainWindow.xaml.cs (+40 -126)
📝 DICUI/Windows/OptionsWindow.xaml (+36 -12)
📝 DICUI/Windows/OptionsWindow.xaml.cs (+13 -26)

📄 Description

This PR is a culmination of a bunch of revamps to the Options structure internally, since everything has been getting a bit out of hand with the number of options we are dealing with.

  • Move Options to the library so it can be used by internal pieces
  • Split original Options into library piece and UI piece (that references the library one)
  • Update Options to become a complex dictionary wrapper for better future expansion
  • Update Options UI internals to avoid reflection and use more bindings
  • Fix a couple of tiny pieces that were broken by the complexity of the former Options layout
  • Migrate some of the tool-dependent logic into the library so the frontend doesn't even know about them
  • Further enforce separation between the UI and the library as well as separation between supported programs
  • More properly wrap incompatible .NET Core segments by either skipping or returning a special string.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/SabreTools/MPF/pull/201 **Author:** [@mnadareski](https://github.com/mnadareski) **Created:** 5/7/2020 **Status:** ✅ Merged **Merged:** 5/7/2020 **Merged by:** [@mnadareski](https://github.com/mnadareski) **Base:** `master` ← **Head:** `options` --- ### 📝 Commits (10+) - [`6742444`](https://github.com/SabreTools/MPF/commit/674244418261c46f87a9c28534b6129d5ccb8a4b) Start reorganizing options and internals - [`36f1aea`](https://github.com/SabreTools/MPF/commit/36f1aea509ec068d574687b73fd163953322f21a) Make entire options flow more robust - [`b5898c7`](https://github.com/SabreTools/MPF/commit/b5898c7ea38c28b73870272965068486ea1146e9) Few more TODOs, slightly cleaner code - [`dc90f9a`](https://github.com/SabreTools/MPF/commit/dc90f9af3f30f7743c302e72deb18d061384d2f6) Simplify Options constructor - [`230b6ca`](https://github.com/SabreTools/MPF/commit/230b6ca7219458a614c5b61bbbd0902eec167c01) Fix eject and reset - [`ca753b4`](https://github.com/SabreTools/MPF/commit/ca753b452627ea15703b3a0d1aa714c044affd89) Some other abstractions - [`9a3c2eb`](https://github.com/SabreTools/MPF/commit/9a3c2eb6265a05cf14de9c8c23a5681cc09ce5d1) Enforce readonly - [`0efecd6`](https://github.com/SabreTools/MPF/commit/0efecd6601a6f8e170d945e97ff6f4f9b445e7e8) Fix tests, like the TODO said - [`26e7228`](https://github.com/SabreTools/MPF/commit/26e72284af5efdb1802f939463326e4476d68160) Move specific output file parsing to specific parameters - [`68e0d75`](https://github.com/SabreTools/MPF/commit/68e0d759f7495e92bd4908f00b941f17cf24e182) Add some future enums, add notes around .NET Core build path ### 📊 Changes **20 files changed** (+3126 additions, -2225 deletions) <details> <summary>View changed files</summary> 📝 `DICUI.Check/Program.cs` (+51 -18) 📝 `DICUI.Library/Aaru/Parameters.cs` (+285 -1) ➕ `DICUI.Library/CleanRIp/Parameters.cs` (+319 -0) 📝 `DICUI.Library/DD/Parameters.cs` (+15 -0) 📝 `DICUI.Library/DICUI.Library.csproj` (+2 -2) 📝 `DICUI.Library/Data/BaseParameters.cs` (+119 -1) 📝 `DICUI.Library/Data/Enumerations.cs` (+103 -3) ➕ `DICUI.Library/Data/Options.cs` (+286 -0) 📝 `DICUI.Library/DiscImageCreator/Converters.cs` (+0 -4) 📝 `DICUI.Library/DiscImageCreator/Parameters.cs` (+1329 -6) 📝 `DICUI.Library/Utilities/Converters.cs` (+43 -0) 📝 `DICUI.Library/Utilities/DumpEnvironment.cs` (+199 -1763) 📝 `DICUI.Library/Utilities/Validators.cs` (+45 -4) 📝 `DICUI.Test/Utilities/DumpEnvironmentTest.cs` (+8 -13) ➖ `DICUI/Options.cs` (+0 -211) ➕ `DICUI/UIOptions.cs` (+122 -0) 📝 `DICUI/ViewModels.cs` (+111 -35) 📝 `DICUI/Windows/MainWindow.xaml.cs` (+40 -126) 📝 `DICUI/Windows/OptionsWindow.xaml` (+36 -12) 📝 `DICUI/Windows/OptionsWindow.xaml.cs` (+13 -26) </details> ### 📄 Description This PR is a culmination of a bunch of revamps to the Options structure internally, since everything has been getting a bit out of hand with the number of options we are dealing with. - Move Options to the library so it can be used by internal pieces - Split original Options into library piece and UI piece (that references the library one) - Update Options to become a complex dictionary wrapper for better future expansion - Update Options UI internals to avoid reflection and use more bindings - Fix a couple of tiny pieces that were broken by the complexity of the former Options layout - Migrate some of the tool-dependent logic into the library so the frontend doesn't even know about them - Further enforce separation between the UI and the library as well as separation between supported programs - More properly wrap incompatible .NET Core segments by either skipping or returning a special string. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 16:24:40 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SabreTools/MPF#985