feat(wallets): in-app folder picker + roomier, full-width list controls
Wallets dialog refinements: - More space between wallet cards (cardGap: spacingSm -> spacingMd). - "Scan another folder" is now always visible as a full-width button (no expandable toggle) that opens the new picker. - The Create-wallet row and the scan button span the full list width, so their right edges align with the wallet cards / Open|Import buttons. New in-app folder picker (folder_picker.h): a Material-styled modal replacing the raw path input. Browse the filesystem (Up / Home / click a sub-folder), see the *.dat wallet files present + a count, and pick a folder to scan. The picker takes over the modal surface while open (the overlay framework doesn't nest); it remembers the last browsed location across opens. Fixed-height card (no auto-height feedback), UTF-8-aware truncation, full-node icons confirmed in the embedded MaterialIcons range. Added a modal-folder-picker sweep surface; verified at 100% + 150%, dark + light. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -404,6 +404,22 @@ void App::buildSweepCatalog()
|
||||
add("modal-console-commands", ui::NavPage::Console,
|
||||
[](App& a) { a.console_tab_.sweepSetCommandsPopup(true); },
|
||||
[](App& a) { a.console_tab_.sweepSetCommandsPopup(false); });
|
||||
|
||||
// In-app folder picker (Wallets → Scan another folder). Populate a small demo tree so the
|
||||
// list shows sub-folders + wallet files, then open the wallets dialog + the picker over it.
|
||||
add("modal-folder-picker", ui::NavPage::Settings,
|
||||
[](App& a) {
|
||||
std::error_code ec;
|
||||
const std::string demo = util::Platform::getConfigDir() + "picker-demo";
|
||||
for (const char* sub : {"Documents", "Downloads", "Backups", "wallet-archive"})
|
||||
fs::create_directories(demo + "/" + sub, ec);
|
||||
for (const char* f : {"wallet-cold.dat", "wallet-2023.dat"})
|
||||
if (!fs::exists(demo + "/" + f, ec))
|
||||
std::ofstream(demo + "/" + f, std::ios::binary) << std::string(66000, '\0');
|
||||
ui::WalletsDialog::show(&a);
|
||||
ui::FolderPicker::open(demo, [](const std::string&) {});
|
||||
},
|
||||
[](App&) { ui::FolderPicker::close(); ui::WalletsDialog::hide(); });
|
||||
}
|
||||
|
||||
// ── State machine ───────────────────────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user