Skip to content

Global widget switch history on seek change #3605

Description

@tsogp

Is your feature request related to a problem? Please describe.

Right now when seeking into some address from the Graph widget, user can be redirected onto another widget (Disassembly or Hexdump) to avoid showing "No graph detected. Cannot display graph" sign.

However, when using undo or redo buttons, the user stays on the same widget, which may be weird and most likely not what the user expects.

Screencast_20260419_233707.mov

Describe the solution you'd like

I would like to propose and implement the global widget switch history, which would be configurable in the Preferences (turned on by default, can be turned off). It will keep track of all the widget switches on seek change and switch to the corresponding widget on undo and redo actions (e.g. if switched from Graph to Hexdump, pressing undo would switch back to Graph).

In this issue I want to hear the opinions of the maintainers about what pitfalls may happen while developing it.

Some points to consider:

  • If there are multiple same widgets (e.g. 2 Disassemblys), should it keep the history of the exact one where it was open or switching to any is fine?
  • Where should it switch if the original widget was closed and there are no other widgets of this type? Would just creating a new one be enough?
  • Disassembly widget now maintains it's own history tracking through DisassemblyWidget::on_seekChanged, should it rather be cenralized in a classed and be owned by MainWindow?

Describe alternatives you've considered

Additional context
May possibly close #3505

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions