feat(prune): R3 guarded deletion — confirm-to-delete + panel button
Extend BANK_PRUNE_FOLDER from report-only to dry-run→confirm-with-manifest→ delete exactly the pure-core orphan set (fresh recompute, stale entries skipped). Windows routes to Recycle Bin (SHFileOperation+FOF_ALLOWUNDO), else unlink. New pure prune_button module + footer button dispatching the action id. No ext-state write, no undo point (deletion is not REAPER-undoable).
This commit is contained in:
@@ -66,6 +66,12 @@ bool bankHandleCommand(int command);
|
||||
// rec==nullptr (before g_session is torn down).
|
||||
void bankUnregisterActions(reaper_plugin_info_t* rec);
|
||||
|
||||
// The registered command id for the "Prune bank folder" action (Phase R, R3), or 0 before
|
||||
// registration. The bank_panel prune button fires the action THROUGH this id via
|
||||
// Main_OnCommand (fork R-E: the button dispatches the command, it does not call the session
|
||||
// directly) so the panel affordance and the bindable action share one guarded code path.
|
||||
int bankPruneCommandId();
|
||||
|
||||
// Persists a completed bank-index verb as a single REAPER undo point (R-B).
|
||||
// Wraps persistBook() (= SetProjExtState) in a Begin/End block with UNDO_STATE_MISCCFG
|
||||
// so the bank op is one Ctrl-Z. On an unsaved / no-active project persistBook() no-ops
|
||||
|
||||
Reference in New Issue
Block a user