From fd696d8cf080c37c1cbe7696f21fe8d5b8c468e4 Mon Sep 17 00:00:00 2001 From: blasty Date: Sun, 26 Jul 2026 14:36:12 +0200 Subject: app: delete DisasmView, superseded by the unified listing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DisasmView was the function-scoped code view from before the unification. The app hasn't instantiated it since — compose() yields only ListingView, and even the test harness's Ctx.dis returns ListingView with a comment saying so. Its CursorMoved messages had no handler, so every one it posted went nowhere. 304 lines of rendering, search, cursor and navigation logic that never ran. It also cost real time this week: it made assembly highlighting look like a job that needed doing twice, and its isinstance branches in the follow and xrefs handlers were unreachable twins of the ListingView branch directly below them, which is exactly the kind of thing you read carefully before realising it can't execute. Gone with it: the dead branches (folded into the ListingView ones, keeping the fall-through-edge comment that was worth keeping), its CSS rule, and the comments that pointed at it as though it were a live alternative. DisasmModel STAYS — the domain still uses it to index a function's instructions (_do_edit_item resolves a row within a function that way). Only the widget was dead. 209/0 scenarios, 26/0 blob, 30/0 project UI, 36/0 index, 32/0 formats, 39/0 project, 27/0 pool. Smoke-tested a live pane afterwards: the listing renders, highlighted, and `drive where` answers. --- tests/test_scenarios.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/test_scenarios.py b/tests/test_scenarios.py index abffe3c..53dad91 100644 --- a/tests/test_scenarios.py +++ b/tests/test_scenarios.py @@ -25,7 +25,7 @@ import traceback sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from idatui.app import ( # noqa: E402 - ConfirmScreen, DecompView, DisasmView, FunctionsPanel, HexView, IdaTui, + ConfirmScreen, DecompView, FunctionsPanel, HexView, IdaTui, HelpScreen, ListingView, QuitScreen, StringsPalette, StructEditor, SymbolPalette, XrefsScreen, _str_display, _word_occurrences, ) @@ -1907,7 +1907,7 @@ async def s_region_define(c: Ctx): c.check("listing spans the whole segment (more heads than one function)", seg is not None and c.lst.total > 1, f"total={c.lst.total} seg={seg}") - # 'p' on the entry head (re)creates the function and UPGRADES to DisasmView + # 'p' on the entry head (re)creates the function c.lst.focus() c.lst.cursor, c.lst.cursor_x = c.lst.model.index_of_ea(addr), 0 await c.pause(0.05) -- cgit v1.3.1-sl0p