Surfaced by DeslanStudio milestone 4e (the desktop DAW port needs QFileDialog equivalents for session Open/Save/Save-As, WAV import/export, MIDI export and drum-kit folder selection).
Gap 1 — no file browser. lib/ui has no file/path picker of any kind. Every desktop app that opens or saves files must hand-roll one.
Gap 2 — dialog cannot be extended into one. The dialog widget (lib/ui_w_dialog.eigs) is title + message + buttons only — it has no children and its renderer/hit-test know nothing about hosting widgets, so a text_input or item_list cannot be placed inside it. A custom file dialog therefore cannot reuse the modal machinery (show_dialog/push_modal) and must be built as a raw overlay panel.
Downstream workaround (DeslanStudio src/client/dialogs.eigs): a hand-rolled full-window overlay panel appended LAST to the root for z-order, holding a path text_input, an item_list directory listing fed from ls, and OK/Cancel/Up buttons; a full-window empty label (w/h stamped, #561) backs it as the click-catcher that makes it modal, because container panels are hit-transparent where no child sits.
Suggested shape: either (a) let dialog host children (a children list + container hit-test/render), or (b) ship a file_dialog widget on top of that.
Surfaced by DeslanStudio milestone 4e (the desktop DAW port needs QFileDialog equivalents for session Open/Save/Save-As, WAV import/export, MIDI export and drum-kit folder selection).
Gap 1 — no file browser. lib/ui has no file/path picker of any kind. Every desktop app that opens or saves files must hand-roll one.
Gap 2 —
dialogcannot be extended into one. Thedialogwidget (lib/ui_w_dialog.eigs) is title + message + buttons only — it has nochildrenand its renderer/hit-test know nothing about hosting widgets, so atext_inputoritem_listcannot be placed inside it. A custom file dialog therefore cannot reuse the modal machinery (show_dialog/push_modal) and must be built as a raw overlay panel.Downstream workaround (DeslanStudio
src/client/dialogs.eigs): a hand-rolled full-window overlay panel appended LAST to the root for z-order, holding a pathtext_input, anitem_listdirectory listing fed fromls, and OK/Cancel/Up buttons; a full-window emptylabel(w/h stamped, #561) backs it as the click-catcher that makes it modal, because container panels are hit-transparent where no child sits.Suggested shape: either (a) let
dialoghost children (achildrenlist + container hit-test/render), or (b) ship afile_dialogwidget on top of that.