Make "pane-like" UI widgets into full panes

Open
#3,950 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
cpp
Domain
desktop

Research direction

The issue names Pinned Cross References and Search Results but provides no source files, tests, or entry points. First locate their widget implementations and compare them with the full-pane implementation from the Great Pane Migration; completion would require resolving the pane behavior, layout, and persistence questions described here.

Written by the indexing model from the issue text.

Description

Component: UI Effort: Medium Impact: Medium UI: Panes

What is the feature you'd like to have?
There are a few awkward "pane-like" UI widgets remaining after the Great Pane Migration of 3.0 and we should clean those up.

Is your feature request related to a problem?
Two good examples are Pinned Cross References and Search Results. These are missing all of the pane controls (you can't split them or replace them or do other things to them). They take up a fair amount of space, and you are limited in their positioning. They also interact weirdly with panes that have minimum widths like the global area and graph view. It's possible to get them into a state where they're actually just lost unless you can somehow make the containing window bigger. Finally, their headers also don't have the correct spacing between the title on the left and the edge of the bar, which looks bad.

Are any alternative solutions acceptable?
I could see an argument being made for making the search results be a sidebar (far less preferable, even if this is what VS Code does) or global area (more preferable, I think, but possibly annoying if you're trying to copy/paste into the console) widget, rather than a full pane.

I could also see an argument being made for re-implementing pinned cross references as "make an xrefs pane and click a checkbox", rather than continuing with our current UI that makes you take an action on the sidebar. This would solve an additional problem: There is currently no good way to "save and restore" a set of pinned cross references (e.g. if you close a pinned cross reference list, you have to go back to some symbol and then re-pin it), which is annoying if you're flipping between a bunch of stuff.

Additional Information:
There are probably other UI elements that do this, these are just the two I found when using the product for something recently.

Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Vector35/binaryninja-api

All issues in Vector35/binaryninja-api

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.