diff --git a/Ghidra/Features/Base/src/main/java/ghidra/GhidraOptions.java b/Ghidra/Features/Base/src/main/java/ghidra/GhidraOptions.java
index 4c3ca57cc3..476d3c14c1 100644
--- a/Ghidra/Features/Base/src/main/java/ghidra/GhidraOptions.java
+++ b/Ghidra/Features/Base/src/main/java/ghidra/GhidraOptions.java
@@ -35,8 +35,6 @@ public interface GhidraOptions {
* Category name for the Browser options that affect the display.
*/
final String CATEGORY_BROWSER_DISPLAY = "Listing Display";
- @Deprecated //remove a few versions after 8.0
- final String OLD_CATEGORY_BROWSER_DISPLAY = "Browser Display";
/**
* Category name for the Browser Navigation Marker options.
@@ -101,8 +99,6 @@ public interface GhidraOptions {
* Options name for Browser fields
*/
final String CATEGORY_BROWSER_FIELDS = "Listing Fields";
- @Deprecated //remove a few versions after 8.0
- final String OLD_CATEGORY_BROWSER_FIELDS = "Browser Fields";
/**
* Options title for Mnemonic group.
@@ -125,8 +121,6 @@ public interface GhidraOptions {
* Category name for Browser Popup options
*/
final String CATEGORY_BROWSER_POPUPS = "Listing Popups";
- @Deprecated //remove a few versions after 8.0
- final String OLD_CATEGORY_BROWSER_POPUPS = "Browser Popups";
/**
* Category name for Decompiler Popup options
diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/codebrowser/CodeBrowserPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/codebrowser/CodeBrowserPlugin.java
index de7032c04c..e58c3d4a4c 100644
--- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/codebrowser/CodeBrowserPlugin.java
+++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/codebrowser/CodeBrowserPlugin.java
@@ -131,12 +131,7 @@ public class CodeBrowserPlugin extends Plugin
public CodeBrowserPlugin(PluginTool tool) {
super(tool);
- tool.registerOptionsNameChange(GhidraOptions.OLD_CATEGORY_BROWSER_FIELDS,
- GhidraOptions.CATEGORY_BROWSER_FIELDS);
- tool.registerOptionsNameChange(GhidraOptions.OLD_CATEGORY_BROWSER_DISPLAY,
- GhidraOptions.CATEGORY_BROWSER_DISPLAY);
- tool.registerOptionsNameChange(GhidraOptions.OLD_CATEGORY_BROWSER_POPUPS,
- GhidraOptions.CATEGORY_BROWSER_POPUPS);
+
ToolOptions displayOptions = tool.getOptions(GhidraOptions.CATEGORY_BROWSER_DISPLAY);
ToolOptions fieldOptions = tool.getOptions(GhidraOptions.CATEGORY_BROWSER_FIELDS);
displayOptions.registerOptionsEditor(new ListingDisplayOptionsEditor(displayOptions));
diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/graph/GraphDisplayBrokerPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/graph/GraphDisplayBrokerPlugin.java
index dd3d6e7a42..251002d61e 100644
--- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/graph/GraphDisplayBrokerPlugin.java
+++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/graph/GraphDisplayBrokerPlugin.java
@@ -20,6 +20,7 @@ import java.util.*;
import docking.ActionContext;
import docking.action.MenuData;
import docking.action.ToggleDockingAction;
+import docking.tool.ToolConstants;
import ghidra.app.CorePluginPackage;
import ghidra.app.plugin.PluginCategoryNames;
import ghidra.app.services.GraphDisplayBroker;
@@ -39,7 +40,7 @@ import ghidra.util.task.TaskMonitor;
shortDescription = "Manages the active Graph Display Service",
description = "This plugin searches for available graph display providers and if it finds more" +
"than one, it provides menu options for the user to choose the active provider.",
- servicesProvided = { GraphDisplayBroker.class }
+ servicesProvided = { GraphDisplayBroker.class }
)
//@formatter:on
public class GraphDisplayBrokerPlugin extends Plugin
@@ -90,7 +91,7 @@ public class GraphDisplayBrokerPlugin extends Plugin
private void initializeServices() {
for (GraphDisplayProvider service : graphDisplayProviders) {
- ToolOptions options = tool.getOptions("Graph");
+ ToolOptions options = tool.getOptions(ToolConstants.GRAPH_OPTIONS);
options.addOptionsChangeListener(this);
service.initialize(tool, options);
}
@@ -148,7 +149,7 @@ public class GraphDisplayBrokerPlugin extends Plugin
@Override
public GraphDisplay getDefaultGraphDisplay(boolean reuseGraph, Map properties,
- TaskMonitor monitor) throws GraphException {
+ TaskMonitor monitor) throws GraphException {
if (defaultGraphDisplayProvider != null) {
return defaultGraphDisplayProvider.getGraphDisplay(reuseGraph, properties, monitor);
}
diff --git a/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/FGActionManager.java b/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/FGActionManager.java
index f6b77414f3..3c58dc4885 100644
--- a/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/FGActionManager.java
+++ b/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/FGActionManager.java
@@ -665,7 +665,7 @@ class FGActionManager {
@Override
public void actionPerformed(ActionContext context) {
OptionsService service = tool.getService(OptionsService.class);
- service.showOptionsDialog(FunctionGraphPlugin.PLUGIN_OPTIONS_NAME,
+ service.showOptionsDialog(FunctionGraphPlugin.OPTIONS_NAME_PATH,
"Function Graph");
}
diff --git a/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/FunctionGraphPlugin.java b/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/FunctionGraphPlugin.java
index 982c26efc0..c519a0a3ae 100644
--- a/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/FunctionGraphPlugin.java
+++ b/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/FunctionGraphPlugin.java
@@ -21,6 +21,7 @@ import javax.swing.ImageIcon;
import org.jdom.Element;
+import docking.tool.ToolConstants;
import ghidra.GhidraOptions;
import ghidra.app.CorePluginPackage;
import ghidra.app.events.*;
@@ -57,7 +58,8 @@ import resources.ResourceManager;
//@formatter:on
public class FunctionGraphPlugin extends ProgramPlugin implements OptionsChangeListener {
static final String FUNCTION_GRAPH_NAME = "Function Graph";
- static final String PLUGIN_OPTIONS_NAME = FUNCTION_GRAPH_NAME;
+ static final String OPTIONS_NAME_PATH =
+ ToolConstants.GRAPH_OPTIONS + Options.DELIMITER + FUNCTION_GRAPH_NAME;
static final ImageIcon ICON = ResourceManager.loadImage("images/function_graph.png");
@@ -147,14 +149,20 @@ public class FunctionGraphPlugin extends ProgramPlugin implements OptionsChangeL
}
private void initializeOptions() {
- ToolOptions options = tool.getOptions(PLUGIN_OPTIONS_NAME);
+ ToolOptions options = tool.getOptions(ToolConstants.GRAPH_OPTIONS);
options.addOptionsChangeListener(this);
- functionGraphOptions.registerOptions(options);
- functionGraphOptions.loadOptions(options);
+
+ // Graph -> Function Graph
+ Options fgOptions = options.getOptions(FUNCTION_GRAPH_NAME);
+
+ functionGraphOptions.registerOptions(fgOptions);
+ functionGraphOptions.loadOptions(fgOptions);
for (FGLayoutProvider layoutProvider : layoutProviders) {
+
+ // Graph -> Function Graph -> Layout Name
String layoutName = layoutProvider.getLayoutName();
- Options layoutToolOptions = options.getOptions(layoutName);
+ Options layoutToolOptions = fgOptions.getOptions(layoutName);
FGLayoutOptions layoutOptions = layoutProvider.createLayoutOptions(layoutToolOptions);
if (layoutOptions == null) {
continue; // many layouts do not have options
@@ -170,7 +178,9 @@ public class FunctionGraphPlugin extends ProgramPlugin implements OptionsChangeL
public void optionsChanged(ToolOptions options, String optionName, Object oldValue,
Object newValue) {
- functionGraphOptions.loadOptions(options);
+ // Graph -> Function Graph
+ Options fgOptions = options.getOptions(FUNCTION_GRAPH_NAME);
+ functionGraphOptions.loadOptions(fgOptions);
connectedProvider.optionsChanged();
diff --git a/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/graph/FGComponent.java b/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/graph/FGComponent.java
index 5ff8fb5e7d..ba23771b28 100644
--- a/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/graph/FGComponent.java
+++ b/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/graph/FGComponent.java
@@ -220,8 +220,8 @@ public class FGComponent extends GraphComponent
edgeLabelRenderer.setRotateEdgeLabels(false);
renderContext.setEdgeLabelRenderer(edgeLabelRenderer);
- viewer.setGraphOptions(options);
- Color bgColor = options.getGraphBackgroundColor();
+ viewer.setGraphOptions(vgOptions);
+ Color bgColor = vgOptions.getGraphBackgroundColor();
if (bgColor.equals(VisualGraphOptions.DEFAULT_GRAPH_BACKGROUND_COLOR)) {
// Give user notice when seeing the graph for a non-function (such as an undefined
@@ -259,7 +259,7 @@ public class FGComponent extends GraphComponent
renderContext.setVertexFillPaintTransformer(new FGVertexPickableBackgroundPaintTransformer(
pickedVertexState, Color.YELLOW, START_COLOR, END_COLOR));
- viewer.setGraphOptions(options);
+ viewer.setGraphOptions(vgOptions);
return viewer;
}
@@ -287,7 +287,7 @@ public class FGComponent extends GraphComponent
//==================================================================================================
public FunctionGraphOptions getFucntionGraphOptions() {
- return (FunctionGraphOptions) options;
+ return (FunctionGraphOptions) vgOptions;
}
public void ensureCursorVisible(FGVertex vertex) {
diff --git a/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/mvc/FunctionGraphOptions.java b/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/mvc/FunctionGraphOptions.java
index ea22f1cf44..4012f68efd 100644
--- a/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/mvc/FunctionGraphOptions.java
+++ b/Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/mvc/FunctionGraphOptions.java
@@ -22,7 +22,8 @@ import java.util.Map.Entry;
import ghidra.app.plugin.core.functiongraph.FunctionGraphPlugin;
import ghidra.app.plugin.core.functiongraph.graph.layout.FGLayoutOptions;
import ghidra.framework.options.Options;
-import ghidra.graph.viewer.options.*;
+import ghidra.graph.viewer.options.RelayoutOption;
+import ghidra.graph.viewer.options.VisualGraphOptions;
import ghidra.program.model.symbol.FlowType;
import ghidra.util.HelpLocation;
@@ -162,7 +163,7 @@ public class FunctionGraphOptions extends VisualGraphOptions {
public void registerOptions(Options options) {
HelpLocation help = new HelpLocation(OWNER, "Options");
- options.setOptionsHelpLocation(help);
+ super.registerOptions(options, help);
options.registerOption(RELAYOUT_OPTIONS_KEY, relayoutOption, help,
RELAYOUT_OPTIONS_DESCRIPTION);
@@ -170,24 +171,9 @@ public class FunctionGraphOptions extends VisualGraphOptions {
options.registerOption(NAVIGATION_HISTORY_KEY, navigationHistoryChoice, help,
NAVIGATION_HISTORY_DESCRIPTION);
- options.registerOption(SHOW_ANIMATION_OPTIONS_KEY, useAnimation(), help,
- SHOW_ANIMATION_DESCRIPTION);
-
- options.registerOption(USE_MOUSE_RELATIVE_ZOOM_KEY, useMouseRelativeZoom(), help,
- USE_MOUSE_RELATIVE_ZOOM_DESCRIPTION);
-
options.registerOption(USE_CONDENSED_LAYOUT_KEY, useCondensedLayout(),
new HelpLocation(OWNER, "Layout_Compressing"), USE_CONDENSED_LAYOUT_DESCRIPTION);
- options.registerOption(VIEW_RESTORE_OPTIONS_KEY, ViewRestoreOption.START_FULLY_ZOOMED_OUT,
- help, VIEW_RESTORE_OPTIONS_DESCRIPTION);
-
- options.registerOption(SCROLL_WHEEL_PANS_KEY, getScrollWheelPans(), help,
- SCROLL_WHEEL_PANS_DESCRIPTION);
-
- options.registerOption(GRAPH_BACKGROUND_COLOR_KEY, DEFAULT_GRAPH_BACKGROUND_COLOR, help,
- GRAPH_BACKGROUND_COLOR_DESCRPTION);
-
options.registerOption(DEFAULT_VERTEX_BACKGROUND_COLOR_KEY, DEFAULT_VERTEX_BACKGROUND_COLOR,
help, DEFAULT_VERTEX_BACKGROUND_COLOR_DESCRPTION);
@@ -222,7 +208,11 @@ public class FunctionGraphOptions extends VisualGraphOptions {
}
+ @Override
public void loadOptions(Options options) {
+
+ super.loadOptions(options);
+
conditionalJumpEdgeColor =
options.getColor(EDGE_COLOR_CONDITIONAL_JUMP_KEY, conditionalJumpEdgeColor);
@@ -245,23 +235,8 @@ public class FunctionGraphOptions extends VisualGraphOptions {
navigationHistoryChoice =
options.getEnum(NAVIGATION_HISTORY_KEY, NavigationHistoryChoices.VERTEX_CHANGES);
- useAnimation = options.getBoolean(SHOW_ANIMATION_OPTIONS_KEY, useAnimation);
-
- useMouseRelativeZoom =
- options.getBoolean(USE_MOUSE_RELATIVE_ZOOM_KEY, useMouseRelativeZoom);
-
- useCondensedLayout = options.getBoolean(USE_CONDENSED_LAYOUT_KEY, useCondensedLayout);
-
useFullSizeTooltip = options.getBoolean(USE_FULL_SIZE_TOOLTIP_KEY, useFullSizeTooltip);
- viewRestoreOption =
- options.getEnum(VIEW_RESTORE_OPTIONS_KEY, ViewRestoreOption.START_FULLY_ZOOMED_OUT);
-
- scrollWheelPans = options.getBoolean(SCROLL_WHEEL_PANS_KEY, scrollWheelPans);
-
- graphBackgroundColor =
- options.getColor(GRAPH_BACKGROUND_COLOR_KEY, DEFAULT_GRAPH_BACKGROUND_COLOR);
-
defaultVertexBackgroundColor =
options.getColor(DEFAULT_VERTEX_BACKGROUND_COLOR_KEY, DEFAULT_VERTEX_BACKGROUND_COLOR);
diff --git a/Ghidra/Features/GraphFunctionCalls/src/main/help/help/topics/FunctionCallGraphPlugin/Function_Call_Graph.html b/Ghidra/Features/GraphFunctionCalls/src/main/help/help/topics/FunctionCallGraphPlugin/Function_Call_Graph.html
index 0544e44289..8697cf287d 100644
--- a/Ghidra/Features/GraphFunctionCalls/src/main/help/help/topics/FunctionCallGraphPlugin/Function_Call_Graph.html
+++ b/Ghidra/Features/GraphFunctionCalls/src/main/help/help/topics/FunctionCallGraphPlugin/Function_Call_Graph.html
@@ -232,6 +232,15 @@
+ Options
+
+
+ The Function Call Graph options are currently a subset of the
+
+ Function Graph's Options.
+
+
+
@@ -240,8 +249,7 @@
Related Topics: