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 e63f9ff0b8..80b7d28088 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 @@ -110,7 +110,7 @@ public abstract class AbstractNextPreviousAction extends CodeViewerContextAction void setDirection(boolean isForward) { this.isForward = isForward; - setDescription(getDescription()); + setDescription(getDescriptionString()); } private String getDescriptionString() { 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 bb0aad8be6..dcdf37bc9d 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 @@ -227,7 +227,14 @@ public class NextPreviousBookmarkAction extends MultiStateDockingAction public void setDirection(boolean isForward) { this.isForward = isForward; - setDescription(getDescription()); + setDescription(getToolTipText()); + } + + @Override + public String getToolTipText() { + String description = "Go To " + (isForward ? "Next" : "Previous"); + description += " Bookmark: " + getCurrentState().getName(); + return description; } private String getNavigationTypeName() { diff --git a/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPluginTest.java b/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPluginTest.java index 39e8b632bc..e2b95ed16c 100644 --- a/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPluginTest.java +++ b/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/navigation/NextPrevCodeUnitPluginTest.java @@ -118,36 +118,35 @@ public class NextPrevCodeUnitPluginTest extends AbstractGhidraHeadedIntegrationT Icon downIcon = ResourceManager.loadImage("images/down.png"); assertEquals(downIcon, direction.getToolBarData().getIcon()); - assertEquals("Next Instruction", nextInst.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Data", nextData.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Undefined", nextUndef.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Label", nextLabel.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Function", nextFunc.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Instruction Not In a Function", - nextNonFunc.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Bookmark", nextBookmark.getMenuBarData().getMenuPath()[1]); + assertEquals("Go To Next Instruction", nextInst.getDescription()); + assertEquals("Go To Next Data", nextData.getDescription()); + assertEquals("Go To Next Undefined", nextUndef.getDescription()); + assertEquals("Go To Next Label", nextLabel.getDescription()); + assertEquals("Go To Next Function", nextFunc.getDescription()); + assertEquals("Go To Next Instruction Not In a Function", nextNonFunc.getDescription()); + assertEquals("Go To Next Bookmark: All Types", nextBookmark.getDescription()); performAction(direction, cb.getProvider(), true); + assertEquals(upIcon, direction.getToolBarData().getIcon()); - assertEquals("Previous Instruction", nextInst.getMenuBarData().getMenuPath()[1]); - assertEquals("Previous Data", nextData.getMenuBarData().getMenuPath()[1]); - assertEquals("Previous Undefined", nextUndef.getMenuBarData().getMenuPath()[1]); - assertEquals("Previous Label", nextLabel.getMenuBarData().getMenuPath()[1]); - assertEquals("Previous Function", nextFunc.getMenuBarData().getMenuPath()[1]); - assertEquals("Previous Instruction Not In a Function", - nextNonFunc.getMenuBarData().getMenuPath()[1]); - assertEquals("Previous Bookmark", nextBookmark.getMenuBarData().getMenuPath()[1]); + assertEquals("Go To Previous Instruction", nextInst.getDescription()); + assertEquals("Go To Previous Data", nextData.getDescription()); + assertEquals("Go To Previous Undefined", nextUndef.getDescription()); + assertEquals("Go To Previous Label", nextLabel.getDescription()); + assertEquals("Go To Previous Function", nextFunc.getDescription()); + assertEquals("Go To Previous Instruction Not In a Function", nextNonFunc.getDescription()); + assertEquals("Go To Previous Bookmark: All Types", nextBookmark.getDescription()); performAction(direction, cb.getProvider(), true); + assertEquals(downIcon, direction.getToolBarData().getIcon()); - assertEquals("Next Instruction", nextInst.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Data", nextData.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Undefined", nextUndef.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Label", nextLabel.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Function", nextFunc.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Instruction Not In a Function", - nextNonFunc.getMenuBarData().getMenuPath()[1]); - assertEquals("Next Bookmark", nextBookmark.getMenuBarData().getMenuPath()[1]); + assertEquals("Go To Next Instruction", nextInst.getDescription()); + assertEquals("Go To Next Data", nextData.getDescription()); + assertEquals("Go To Next Undefined", nextUndef.getDescription()); + assertEquals("Go To Next Label", nextLabel.getDescription()); + assertEquals("Go To Next Function", nextFunc.getDescription()); + assertEquals("Go To Next Instruction Not In a Function", nextNonFunc.getDescription()); + assertEquals("Go To Next Bookmark: All Types", nextBookmark.getDescription()); } @Test diff --git a/Ghidra/Framework/Docking/src/main/java/docking/menu/MultiStateDockingAction.java b/Ghidra/Framework/Docking/src/main/java/docking/menu/MultiStateDockingAction.java index a070a47cc9..d09aa02ff5 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/menu/MultiStateDockingAction.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/menu/MultiStateDockingAction.java @@ -235,7 +235,7 @@ public abstract class MultiStateDockingAction extends DockingAction { ToolBarData tbd = getToolBarData(); tbd.setIcon(getIcon(actionState)); - setDescription(getTooTipText()); + setDescription(getToolTipText()); actionStateChanged(actionState, trigger); } @@ -288,7 +288,7 @@ public abstract class MultiStateDockingAction extends DockingAction { throw new UnsupportedOperationException(); } - public String getTooTipText() { + public String getToolTipText() { return getName() + ": " + getCurrentState().getName(); } diff --git a/Ghidra/Framework/Docking/src/test/java/docking/action/ActionBuilderTest.java b/Ghidra/Framework/Docking/src/test/java/docking/action/ActionBuilderTest.java index 11be0fd630..f827e10ddb 100644 --- a/Ghidra/Framework/Docking/src/test/java/docking/action/ActionBuilderTest.java +++ b/Ghidra/Framework/Docking/src/test/java/docking/action/ActionBuilderTest.java @@ -28,7 +28,6 @@ import resources.Icons; public class ActionBuilderTest { private int actionCount = 0; - @Test public void testDescription() { DockingAction action = new ActionBuilder("Test", "Test") @@ -163,7 +162,7 @@ public class ActionBuilderTest { .onAction(e -> actionCount++) .build(); - assertEquals(KeyStroke.getKeyStroke("ALT A"), action.getKeyBinding()); + assertEquals(KeyStroke.getKeyStroke("alt pressed A"), action.getKeyBinding()); } @Test