diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/CompareFunctionsAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/CompareFunctionsAction.java index 11f58c22f8..472f012a11 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/CompareFunctionsAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/CompareFunctionsAction.java @@ -78,10 +78,6 @@ public abstract class CompareFunctionsAction extends DockingAction { return !functions.isEmpty(); } - protected boolean isToolBarAction() { - return true; - } - /** * Returns the icon to use for the action * @@ -104,11 +100,9 @@ public abstract class CompareFunctionsAction extends DockingAction { setPopupMenuData(new MenuData(new String[] { "Compare Selected Functions" }, getToolBarIcon(), CREATE_COMPARISON_GROUP)); - if (isToolBarAction()) { - ToolBarData newToolBarData = - new ToolBarData(getToolBarIcon(), CREATE_COMPARISON_GROUP); - setToolBarData(newToolBarData); - } + ToolBarData newToolBarData = + new ToolBarData(getToolBarIcon(), CREATE_COMPARISON_GROUP); + setToolBarData(newToolBarData); setHelpLocation(new HelpLocation("FunctionComparison", "Function_Comparison")); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/CompareFunctionsFromListingAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/CompareFunctionsFromListingAction.java index e5f7ab0943..f41a791667 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/CompareFunctionsFromListingAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/functioncompare/actions/CompareFunctionsFromListingAction.java @@ -38,12 +38,9 @@ public class CompareFunctionsFromListingAction extends CompareFunctionsAction { */ public CompareFunctionsFromListingAction(PluginTool tool, String owner) { super(tool, owner); - } - @Override - protected boolean isToolBarAction() { // this action is used as a global action--do not add it to the toolbar - return false; + setToolBarData(null); } @Override diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/misc/MyProgramChangesDisplayPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/misc/MyProgramChangesDisplayPlugin.java index fe67383a22..5266188453 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/misc/MyProgramChangesDisplayPlugin.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/misc/MyProgramChangesDisplayPlugin.java @@ -28,7 +28,7 @@ import javax.swing.ImageIcon; import docking.ActionContext; import docking.action.DockingAction; -import docking.action.MenuData; +import docking.action.ToolBarData; import ghidra.app.CorePluginPackage; import ghidra.app.plugin.PluginCategoryNames; import ghidra.app.plugin.ProgramPlugin; @@ -104,11 +104,12 @@ public class MyProgramChangesDisplayPlugin extends ProgramPlugin implements Doma folderListener = new ProgramFolderListener(); transactionListener = new ProgramTransactionListener(); tool.getProject().getProjectData().addDomainFolderChangeListener(folderListener); + + createActions(); } private void createActions() { - String menuGroup = "DomainObjectVersionControl"; ImageIcon icon = ResourceManager.loadImage("images/vcMerge.png"); mergeAction = new DockingAction("Update", getName()) { @Override @@ -122,8 +123,7 @@ public class MyProgramChangesDisplayPlugin extends ProgramPlugin implements Doma } }; - mergeAction.setMenuBarData( - new MenuData(new String[] { "File", "Update..." }, icon, menuGroup)); + mergeAction.setToolBarData(new ToolBarData(icon, "Repository")); mergeAction.setDescription("Update checked out file with latest version"); mergeAction.setHelpLocation(new HelpLocation("VersionControl", mergeAction.getName())); @@ -141,8 +141,7 @@ public class MyProgramChangesDisplayPlugin extends ProgramPlugin implements Doma } }; - checkInAction.setMenuBarData( - new MenuData(new String[] { "File", "Check In..." }, icon, menuGroup)); + checkInAction.setToolBarData(new ToolBarData(icon, "Repository")); checkInAction.setDescription("Check in file"); checkInAction.setHelpLocation(new HelpLocation("VersionControl", checkInAction.getName())); @@ -150,34 +149,6 @@ public class MyProgramChangesDisplayPlugin extends ProgramPlugin implements Doma tool.addAction(checkInAction); } - private void updateActions() { - - if (currentProgram == null || currentProgram.getDomainFile() == null) { - removeVcActions(); - return; - } - - if (currentProgram.getDomainFile().isVersioned()) { - maybeAddVcActions(); - } - } - - private void maybeAddVcActions() { - - if (mergeAction == null) { - createActions(); - } - } - - private void removeVcActions() { - if (mergeAction != null) { - tool.removeAction(mergeAction); - tool.removeAction(checkInAction); - mergeAction = null; - checkInAction = null; - } - } - @Override public void init() { markerService = tool.getService(MarkerService.class); @@ -190,7 +161,6 @@ public class MyProgramChangesDisplayPlugin extends ProgramPlugin implements Doma program.addListener(this); program.addTransactionListener(transactionListener); updateForDomainFileChanged(); - updateActions(); createMarkerSets(program); intializeChangeMarkers(); @@ -199,8 +169,6 @@ public class MyProgramChangesDisplayPlugin extends ProgramPlugin implements Doma @Override protected void programDeactivated(Program program) { - updateActions(); - serverVersion = -1; localVersion = -1; programChangedLocally = false; @@ -381,7 +349,6 @@ public class MyProgramChangesDisplayPlugin extends ProgramPlugin implements Doma } updateManager.update(); - updateActions(); } Worker getWorker() { diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/AbstractNextPreviousAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/AbstractNextPreviousAction.java index 0b0b69d4a0..bf4d93942b 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/AbstractNextPreviousAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/AbstractNextPreviousAction.java @@ -43,7 +43,7 @@ public abstract class AbstractNextPreviousAction extends CodeViewerContextAction this.tool = tool; ToolBarData toolBarData = - new ToolBarData(getIcon(), ToolConstants.TOOLBAR_GROUP_NAV_FOUR); + new ToolBarData(getIcon(), ToolConstants.TOOLBAR_GROUP_FOUR); toolBarData.setToolBarSubGroup(subGroup); setToolBarData(toolBarData); MenuData menuData = diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextHighlightedRangeAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextHighlightedRangeAction.java index 56ee01c90c..9c2b667386 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextHighlightedRangeAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextHighlightedRangeAction.java @@ -40,7 +40,7 @@ public class NextHighlightedRangeAction extends NextRangeAction { setToolBarData(new ToolBarData( ResourceManager.loadImage("images/NextHighlightBlock16.gif"), - ToolConstants.TOOLBAR_GROUP_NAV_THREE, NextPrevHighlightRangePlugin.ACTION_SUB_GROUP)); + ToolConstants.TOOLBAR_GROUP_THREE, NextPrevHighlightRangePlugin.ACTION_SUB_GROUP)); setKeyBindingData( new KeyBindingData(KeyEvent.VK_0, DockingUtils.CONTROL_KEY_MODIFIER_MASK)); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevAddressPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevAddressPlugin.java index 1040183ff1..01980005d5 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevAddressPlugin.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevAddressPlugin.java @@ -309,7 +309,7 @@ public class NextPrevAddressPlugin extends Plugin { this.isNext = isNext; setToolBarData(new ToolBarData(isNext ? nextIcon : previousIcon, - ToolConstants.TOOLBAR_GROUP_NAV_TWO)); + ToolConstants.TOOLBAR_GROUP_TWO)); setHelpLocation(new HelpLocation(HelpTopics.NAVIGATION, name)); int keycode = isNext ? KeyEvent.VK_RIGHT : KeyEvent.VK_LEFT; setKeyBindingData(new KeyBindingData(keycode, InputEvent.ALT_DOWN_MASK)); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPlugin.java index 5b88002d44..aefadcb6fa 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPlugin.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPlugin.java @@ -132,7 +132,7 @@ public class NextPrevCodeUnitPlugin extends Plugin { menuData.setMenuSubGroup(subGroup); setMenuBarData(menuData); setToolBarData(new ToolBarData(forwardIcon, - ToolConstants.TOOLBAR_GROUP_NAV_FOUR, subGroup)); + ToolConstants.TOOLBAR_GROUP_FOUR, subGroup)); setKeyBindingData(new KeyBindingData(KeyEvent.VK_T, InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK)); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPreviousBookmarkAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPreviousBookmarkAction.java index f710ad65b7..aad854689c 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPreviousBookmarkAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPreviousBookmarkAction.java @@ -58,7 +58,7 @@ public class NextPreviousBookmarkAction extends MultiStateDockingAction this.tool = tool; ToolBarData toolBarData = - new ToolBarData(bookmarkIcon, ToolConstants.TOOLBAR_GROUP_NAV_FOUR); + new ToolBarData(bookmarkIcon, ToolConstants.TOOLBAR_GROUP_FOUR); toolBarData.setToolBarSubGroup(subGroup); setToolBarData(toolBarData); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPreviousMarkerAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPreviousMarkerAction.java index 7ba881d33f..14c6738d22 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPreviousMarkerAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextPreviousMarkerAction.java @@ -72,7 +72,7 @@ public class NextPreviousMarkerAction extends MultiStateDockingAction { this.tool = tool; ToolBarData toolBarData = - new ToolBarData(markerIcon, ToolConstants.TOOLBAR_GROUP_NAV_FOUR); + new ToolBarData(markerIcon, ToolConstants.TOOLBAR_GROUP_FOUR); toolBarData.setToolBarSubGroup(subGroup); setToolBarData(toolBarData); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextSelectedRangeAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextSelectedRangeAction.java index 5f11cc0234..073470aeba 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextSelectedRangeAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/NextSelectedRangeAction.java @@ -42,7 +42,7 @@ public class NextSelectedRangeAction extends NextRangeAction { setToolBarData(new ToolBarData( ResourceManager.loadImage("images/NextSelectionBlock16.gif"), - ToolConstants.TOOLBAR_GROUP_NAV_THREE, NextPrevSelectedRangePlugin.ACTION_SUB_GROUP)); + ToolConstants.TOOLBAR_GROUP_THREE, NextPrevSelectedRangePlugin.ACTION_SUB_GROUP)); setKeyBindingData( new KeyBindingData(KeyEvent.VK_BRACERIGHT, DockingUtils.CONTROL_KEY_MODIFIER_MASK)); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/PreviousHighlightedRangeAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/PreviousHighlightedRangeAction.java index db323ddcc8..f83cadee78 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/PreviousHighlightedRangeAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/PreviousHighlightedRangeAction.java @@ -42,7 +42,7 @@ public class PreviousHighlightedRangeAction extends PreviousRangeAction { setToolBarData(new ToolBarData( ResourceManager.loadImage("images/PreviousHighlightBlock16.gif"), - ToolConstants.TOOLBAR_GROUP_NAV_THREE, NextPrevHighlightRangePlugin.ACTION_SUB_GROUP)); + ToolConstants.TOOLBAR_GROUP_THREE, NextPrevHighlightRangePlugin.ACTION_SUB_GROUP)); setKeyBindingData( new KeyBindingData(KeyEvent.VK_9, DockingUtils.CONTROL_KEY_MODIFIER_MASK)); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/PreviousSelectedRangeAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/PreviousSelectedRangeAction.java index 1b646a2baf..0b85432a47 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/PreviousSelectedRangeAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/navigation/PreviousSelectedRangeAction.java @@ -42,7 +42,7 @@ public class PreviousSelectedRangeAction extends PreviousRangeAction { "Previous Selected Range" }, icon, PluginCategoryNames.NAVIGATION, MenuData.NO_MNEMONIC, NextPrevSelectedRangePlugin.ACTION_SUB_GROUP)); - setToolBarData(new ToolBarData(icon, ToolConstants.TOOLBAR_GROUP_NAV_THREE, + setToolBarData(new ToolBarData(icon, ToolConstants.TOOLBAR_GROUP_THREE, NextPrevSelectedRangePlugin.ACTION_SUB_GROUP)); setKeyBindingData( new KeyBindingData(KeyEvent.VK_BRACELEFT, DockingUtils.CONTROL_KEY_MODIFIER_MASK)); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/progmgr/ProgramManagerPlugin.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/progmgr/ProgramManagerPlugin.java index bb2f1962c2..2bf8a64270 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/progmgr/ProgramManagerPlugin.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/progmgr/ProgramManagerPlugin.java @@ -629,7 +629,7 @@ public class ProgramManagerPlugin extends Plugin implements ProgramManager { }; String[] saveMenuPath = { ToolConstants.MENU_FILE, "&Save" }; Icon saveIcon = ResourceManager.loadImage("images/disk.png"); - String saveGroup = ToolConstants.TOOLBAR_GROUP_NAV_ONE; + String saveGroup = ToolConstants.TOOLBAR_GROUP_ONE; subMenuGroupOrder = 0; menuData = new MenuData(saveMenuPath, saveIcon, saveGroup); diff --git a/Ghidra/Framework/Docking/src/main/java/docking/tool/ToolConstants.java b/Ghidra/Framework/Docking/src/main/java/docking/tool/ToolConstants.java index 7ff091d4f6..f5712c2c07 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/tool/ToolConstants.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/tool/ToolConstants.java @@ -122,10 +122,22 @@ public interface ToolConstants extends DockingToolConstants { public static final String MENU_GROUP_NEXT_CODE_UNIT_NAV = "NextPrevCodeUnit"; /** - * + * Primary toolbar group number 1, starting from the left */ - public static final String TOOLBAR_GROUP_NAV_ONE = "1_Toolbar_Navigation_Group"; - public static final String TOOLBAR_GROUP_NAV_TWO = "2_Toolbar_Navigation_Group"; - public static final String TOOLBAR_GROUP_NAV_THREE = "3_Toolbar_Navigation_Group"; - public static final String TOOLBAR_GROUP_NAV_FOUR = "4_Toolbar_Navigation_Group"; + public static final String TOOLBAR_GROUP_ONE = "1_Toolbar_Navigation_Group"; + + /** + * Primary toolbar group number 2, starting from the left + */ + public static final String TOOLBAR_GROUP_TWO = "2_Toolbar_Navigation_Group"; + + /** + * Primary toolbar group number 3, starting from the left + */ + public static final String TOOLBAR_GROUP_THREE = "3_Toolbar_Navigation_Group"; + + /** + * Primary toolbar group number 4, starting from the left + */ + public static final String TOOLBAR_GROUP_FOUR = "4_Toolbar_Navigation_Group"; }