summaryrefslogtreecommitdiff
path: root/ui/containerbrowser.h
AgeCommit message (Collapse)Author
2026-03-30This reverts commit 7228ba0b889765bc3474fbd5475870e24efc79ca.Brian Potchik
2026-03-20Add option to disable dedicated Universal architecture picker and use ↵Brian Potchik
Container Browser Add the ui.files.universal.dedicatedPicker setting, allowing users to choose between the dedicated architecture picker dialog and the standard container browser for opening Universal (fat) Mach-O binaries. Previously the dedicated picker was always used with no way to opt out. Implementing this required restructuring how Universal binaries are handled during file open. The previous approach intercepted Universal binaries during container processing, bypassing the container browser's normal pipeline with dedicated routing logic. This tightly coupled Universal-specific behavior into the container system, prevented the container browser from handling Universal binaries natively, and introduced several bugs around exclusion settings, nested containers, and multi-child container hierarchies. Bug fixes: - The previous implementation always intercepted Universal binaries during container processing with its own routing logic, bypassing the container browser entirely. There was no way for the container browser to handle Universal binaries natively, even when that was the desired behavior. - Universal binaries inside multi-child containers were not detected. The previous implementation only traversed single-child paths in the container hierarchy, silently ignoring Universal binaries that appeared as siblings among multiple children. - Nested containers (e.g., archives) inside Universal slices were not handled. The previous implementation intercepted Universal binaries at the transform routing level before the container browser could perform recursive delayering. When the dedicated picker is disabled, the container browser now processes the full hierarchy including Universal slices and any containers within them. - Reverted incorrect IsInteractive to IsUIEnabled change in UniversalTransform. The previous change conflated headless mode with non-interactive processing. The UI can be enabled while still performing a non-interactive auto-open (e.g., container browser auto-resolving with a preferred architecture). The IsInteractive() flag captures the actual intent and enables the transform to produce only the preferred architecture child for non-interactive sessions, avoiding unnecessary BinaryView construction for all slices.
2026-03-16Refactor where architecture selection is performed for universal binariesMark Rowe
Responsibility for selecting an architecture is moved out of `UniversalTransform` and into a new `ContainerOpenRequest` class. `UniversalTransform` still handles architecture selection in headless operation (for now).
2026-02-17Handle Universal binaries through container transform system.Brian Potchik
2026-02-09Add button to open with options from the Container Browser dialog.Brian Potchik
2026-02-05Remember last selected entry in Container Browser.Brian Potchik
2026-01-26Improve initial layout of the container browser dialog.Brian Potchik
2025-11-06Add some minor Container Browser UX improvements.Brian Potchik
2025-11-04Add support for Transforms to pass along metadata for display and storage.Brian Potchik
2025-11-02Prioritize Container Browser for file open actions and enable direct opening ↵Brian Potchik
through the Container Browser dialog.
2025-10-22Add interactive mode support to the container browser.Brian Potchik
2025-10-10Add password prompting for encrypted containers in Container Browser.Brian Potchik
2025-10-02Support loading BNDBs from container files.Brian Potchik
2025-09-30Initial support for opening container formats.Brian Potchik