From bf9484fdabc9b3c27ee10426a0b8c0add425de1f Mon Sep 17 00:00:00 2001 From: Ryan Kurtz Date: Fri, 3 Apr 2026 13:02:53 -0400 Subject: [PATCH] GP-6483: Loader option redesign with tooltip support --- .../ghidra/app/util/opinion/TenetLoader.java | 6 +- .../debug/export/TraceViewXmlExporter.java | 10 +- .../app/util/AbstractOptionBuilder.java | 116 +++++++ .../src/main/java/ghidra/app/util/Option.java | 286 +++++++++++------- .../ghidra/app/util/OptionsEditorPanel.java | 198 +----------- .../app/util/exporter/IntelHexExporter.java | 11 +- .../util/exporter/OriginalFileExporter.java | 12 +- .../app/util/exporter/ProgramTextOptions.java | 121 +++++--- .../LibrarySearchPathDummyOption.java | 59 ---- .../util/importer/options/AbstractOption.java | 65 ++++ .../util/importer/options/AddressOption.java | 118 ++++++++ .../importer/options/AddressSpaceOption.java | 107 +++++++ .../util/importer/options/BooleanOption.java | 107 +++++++ .../{ => options}/DomainFileOption.java | 56 +++- .../{ => options}/DomainFolderOption.java | 53 +++- .../util/importer/options/HexLongOption.java | 106 +++++++ .../util/importer/options/IntegerOption.java | 103 +++++++ .../util/importer/options/StringOption.java | 124 ++++++++ .../opinion/AbstractLibrarySupportLoader.java | 91 ++++-- .../opinion/AbstractOrdinalSupportLoader.java | 6 +- .../util/opinion/AbstractPeDebugLoader.java | 6 +- .../util/opinion/AbstractProgramLoader.java | 12 +- .../ghidra/app/util/opinion/BinaryLoader.java | 28 +- .../ghidra/app/util/opinion/CoffLoader.java | 4 +- .../app/util/opinion/DyldCacheLoader.java | 70 +++-- .../util/opinion/ElfLoaderOptionsFactory.java | 38 ++- .../app/util/opinion/IntelHexLoader.java | 11 +- .../java/ghidra/app/util/opinion/Loader.java | 12 + .../ghidra/app/util/opinion/MachoLoader.java | 7 +- .../app/util/opinion/MotorolaHexLoader.java | 11 +- .../ghidra/app/util/opinion/PeLoader.java | 6 +- .../app/util/opinion/UnixAoutLoader.java | 6 +- .../app/util/xml/XmlProgramOptions.java | 110 ++++--- .../ghidra/app/util/exporter/CppExporter.java | 28 +- .../util/opinion/DyldCacheExtractLoader.java | 50 +-- .../ghidra/file/formats/dump/DumpFile.java | 21 +- .../file/formats/dump/apport/Apport.java | 11 +- .../file/formats/dump/pagedump/Pagedump.java | 6 +- .../main/java/sarif/SarifProgramOptions.java | 114 ++++--- .../format/elf/extend/ARM_ElfExtension.java | 11 +- .../main/java/skeleton/SkeletonExporter.java | 4 +- .../main/java/skeleton/SkeletonLoader.java | 4 +- 42 files changed, 1654 insertions(+), 671 deletions(-) create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/util/AbstractOptionBuilder.java delete mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/util/importer/LibrarySearchPathDummyOption.java create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/util/importer/options/AbstractOption.java create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/util/importer/options/AddressOption.java create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/util/importer/options/AddressSpaceOption.java create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/util/importer/options/BooleanOption.java rename Ghidra/Features/Base/src/main/java/ghidra/app/util/importer/{ => options}/DomainFileOption.java (58%) rename Ghidra/Features/Base/src/main/java/ghidra/app/util/importer/{ => options}/DomainFolderOption.java (60%) create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/util/importer/options/HexLongOption.java create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/util/importer/options/IntegerOption.java create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/util/importer/options/StringOption.java diff --git a/Ghidra/Debug/Debugger-importers/src/main/java/ghidra/app/util/opinion/TenetLoader.java b/Ghidra/Debug/Debugger-importers/src/main/java/ghidra/app/util/opinion/TenetLoader.java index ead74f6b05..7d4bef807c 100644 --- a/Ghidra/Debug/Debugger-importers/src/main/java/ghidra/app/util/opinion/TenetLoader.java +++ b/Ghidra/Debug/Debugger-importers/src/main/java/ghidra/app/util/opinion/TenetLoader.java @@ -29,7 +29,6 @@ import org.jdom2.JDOMException; import db.Transaction; import ghidra.app.util.Option; import ghidra.app.util.bin.ByteProvider; -import ghidra.app.util.importer.DomainFileOption; import ghidra.app.util.importer.MessageLog; import ghidra.framework.model.DomainFile; import ghidra.framework.model.DomainObject; @@ -232,8 +231,9 @@ public class TenetLoader implements Loader { final DomainObject domainObject, final boolean loadIntoProgram, final boolean mirrorFsLayout) { final List